Exemple #1
0
    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
Exemple #2
0
 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))
     }
Exemple #3
0
    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
Exemple #4
0
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
Exemple #5
0
 def server_classes(self):
     """Yield all server classes for the entity."""
     yield from server_classes.get_entity_server_classes(self)
Exemple #6
0
 def server_classes(self):
     """Yield all server classes for the entity."""
     yield from server_classes.get_entity_server_classes(self)
Exemple #7
0
def on_entity_created(base_entity):
    server_classes.get_entity_server_classes(base_entity)
    update_data()