diff --git a/src/dynamic_graph/entity.py b/src/dynamic_graph/entity.py index f3e7e12871dc53011c571c201cc7c5d92b9aac58..53a31fe8f23292b67ae26e27c2fc588571a53fdf 100644 --- a/src/dynamic_graph/entity.py +++ b/src/dynamic_graph/entity.py @@ -5,7 +5,7 @@ """ import wrap, signal_base -entityList = [] +entityClassNameList = [] def initEntity(self, name): """ @@ -13,9 +13,9 @@ def initEntity(self, name): """ Entity.__init__(self, self.class_name, name) -def updateEntityClasses(): - entityTypeList = wrap.factory_get_entity_class_list() - for e in entityTypeList: +def updateEntityClasses(dictionary): + cxx_entityList = wrap.factory_get_entity_class_list() + for e in filter(lambda x: not x in entityClassNameList, cxx_entityList): class metacls(type): def __new__(mcs, name, bases, dict): return type.__new__(mcs, name, bases, dict) @@ -24,11 +24,12 @@ def updateEntityClasses(): a = metacls(e, (Entity,), {}) # Store class name in class member a.class_name = e - print ("new class %s"%e) # set class constructor setattr(a, '__init__', initEntity) # Store new class in dictionary with class name - globals()[e] = a + dictionary[e] = a + # Store class name in local list + entityClassNameList.append(e) class Entity (object) :