diff --git a/src/dynamic_graph/entity.py b/src/dynamic_graph/entity.py index 552ca06eac45570bc293245de95f13594bcdc959..37a09973a212f306903e921a9ee9ddadb132d8ad 100644 --- a/src/dynamic_graph/entity.py +++ b/src/dynamic_graph/entity.py @@ -19,10 +19,19 @@ class PyEntityFactoryClass(type): The class build dynamically a new class type, and return the reference on the class-type object. The class type is not added to any context. """ - def __new__(factory, className ): - EntityClass = type.__new__(factory, className, (Entity,), {}) - EntityClass.className = className - EntityClass.__init__ = Entity.initEntity + def __new__(factory, className,bases=(), dict={} ): + if len(bases)==0: + # Initialize a basic Entity class + EntityClass = type.__new__(factory, className, (Entity,), dict) + EntityClass.className = className + EntityClass.__init__ = Entity.initEntity + else: + # Initialize a heritated class + EntityClass = type.__new__(factory, className, bases, dict) + for c in bases: + if issubclass(c,Entity): + EntityClass.className = c.className + break EntityClass.commandCreated = False return EntityClass