def _get_lom_id_by_lom_object(self, lom_object): if is_cplusplus_lom_object(lom_object): return self.manager.get_lom_id(lom_object) for id, object in self.appointed_lom_ids.iteritems(): if object == lom_object: return id id = -len(self.appointed_lom_ids) self.appointed_lom_ids[id] = lom_object if isinstance(lom_object, Disconnectable): def unregister_lom_object(f): @wraps(f) def wrapper(*a, **k): try: del self.appointed_lom_ids[id] except KeyError: pass return f(*a, **k) return wrapper lom_object.disconnect = unregister_lom_object(lom_object.disconnect) return id
def _get_lom_id_by_lom_object(self, lom_object): if is_cplusplus_lom_object(lom_object): return self.manager.get_lom_id(lom_object) for id, object in self.appointed_lom_ids.iteritems(): if object == lom_object: return id id = -len(self.appointed_lom_ids) self.appointed_lom_ids[id] = lom_object if isinstance(lom_object, Disconnectable): def unregister_lom_object(f): @wraps(f) def wrapper(*a, **k): try: del self.appointed_lom_ids[id] except KeyError: pass return f(*a, **k) return wrapper lom_object.disconnect = unregister_lom_object( lom_object.disconnect) return id
def _get_lom_id_by_lom_object(self, lom_object): if is_cplusplus_lom_object(lom_object): return self.manager.get_lom_id(lom_object) for id, object in self.appointed_lom_ids.iteritems(): if object == lom_object: return id id = -len(self.appointed_lom_ids) self.appointed_lom_ids[id] = lom_object return id
def _tuple_element_from_path(self, path_components): lom_object = None parent = None attribute = path_components[-1] if len(path_components) > 1: parent = self._calculate_object_from_path(path_components[:-1]) if not (attribute in ('cs', 'control_surfaces') and parent == None): raise AssertionError lom_object = TupleWrapper.get_tuple_wrapper(parent, 'control_surfaces') elif parent != None and hasattr(parent, attribute): selector = self._list_manager.get_list_wrapper if is_cplusplus_lom_object(parent) else TupleWrapper.get_tuple_wrapper lom_object = selector(parent, attribute) return lom_object