def server_classes(self): """Yield all server classes for the entity.""" # Loop through all server classes for the entity for server_class in server_classes.get_entity_server_classes(self): # Yield the server class yield server_class
def server_classes(self): """Yield all server classes for the entity.""" return { server_class: make_object(server_class, self.pointer) for server_class in reversed( server_classes.get_entity_server_classes(self)) }
def _get_input(target, input_name): """Return input function based on target and input name.""" for server_class in server_classes.get_entity_server_classes(target): if input_name in server_class.inputs: return getattr( make_object( server_class._inputs, target.pointer ), input_name ) return None
def get_entities_data(base_entity, dir=None, plugin=False): if plugin: frame = currentframe().f_back filename = frame.f_code.co_filename path = Path(filename) if filename.startswith(PLUGIN_PATH): dir = path.relative_to(PLUGIN_PATH).parts[0] elif filename.startswith(CUSTOM_PACKAGES_PATH): dir = path.relative_to(CUSTOM_PACKAGES_PATH).parts[0] else: raise ValueError("Unable to identify the Plugin/Custom Packages.") if dir is not None: path = ENTITIES_DATA_PATH / dir if path.exists() and path.is_dir(): paths = [path] else: raise ValueError("Invalid data path: {path}".format(path=path)) else: paths = [ path for path in ENTITIES_DATA_PATH.iterdir() if path.is_dir() ] entity_data = dict() entity_server_classes = [ server_class.__name__ for server_class in reversed( server_classes.get_entity_server_classes(base_entity)) ] for class_name in entity_server_classes: file_name = class_name + ".ini" entity_data.update(get_data_from_file(_managers_path / file_name)) for path in paths: entity_data.update(get_data_from_file(str(path / file_name))) return entity_data
def server_classes(self): """Yield all server classes for the entity.""" yield from server_classes.get_entity_server_classes(self)
def on_entity_created(base_entity): server_classes.get_entity_server_classes(base_entity) update_data()