Source code for component_factory

import argparse
import sys
import zerorpc
from pipert.core.class_factory import ClassFactory
from pipert.core.component import BaseComponent
from pipert.utils.useful_methods import open_config_file

[docs]COMPONENTS_FOLDER_PATH = "pipert/contrib/components"
if __name__ == '__main__':
[docs] parser = argparse.ArgumentParser()
parser.add_argument('-cp', '--config_path', help='Configuration file path', type=str, default='pipert/core/config.yaml') parser.add_argument('-p', '--port', help='ZeroRPC port', type=str, default=None) opts, unknown = parser.parse_known_args() if opts.port is None: sys.exit("Must get port for the zeroRPC server in the script parameters") component_config = open_config_file(opts.config_path) if isinstance(component_config, str): sys.exit(component_config) component_factory = ClassFactory(COMPONENTS_FOLDER_PATH) _, component_params = list(component_config.items())[0] # Checks if special component is needed or base component if "component_type_name" in component_params: component_class = component_factory.get_class(component_params["component_type_name"]) else: component_class = BaseComponent zpc = zerorpc.Server(component_class(component_config)) zpc.bind("tcp://0.0.0.0:{0}".format(opts.port)) zpc.run()