Ejemplo n.º 1
0
def get_config_params(config_file=None, **kwargs):
    if config_file is None:
        config_params = ConfigParams.default()
    else:
        config_params = ConfigParams.from_file(config_file)

    experiment = kwargs.get("experiment")
    approach = kwargs.get("approach")

    if experiment is not None:
        experiments = load_file_from_module('experiments.config',
                                            'config.yaml')
        experiment_config = {
            experiment: load_yaml(experiments).get(experiment)
        }
        config_params.update(**experiment_config.pop(experiment),
                             experiment=experiment)

    if approach is not None:
        approaches = load_file_from_module('mrs.config.default',
                                           'approaches.yaml')
        approach_config = {approach: load_yaml(approaches).get(approach)}
        config_params.update(**approach_config.pop(approach),
                             approach=approach)

    return config_params
Ejemplo n.º 2
0
def load_yaml_file_from_module(module, file_name):
    try:
        file = load_file_from_module(module, file_name)
        data = load_yaml(file)
        return data
    except FileNotFoundError as e:
        logging.error(e)
Ejemplo n.º 3
0
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    parser.add_argument('--file',
                        type=str,
                        action='store',
                        help='Path to the config file')
    group.add_argument('--approach',
                       type=str,
                       action='store',
                       help='Experiment_name')
    group.add_argument('--all', action='store_true')
    args = parser.parse_args()

    if args.file is None:
        config_params = ConfigParams.default()
    else:
        config_params = ConfigParams.from_file(args.file)

    approaches = load_file_from_module('mrs.config.default', 'approaches.yaml')
    approaches_config = load_yaml(approaches)
    n_robots_ = len(config_params.get("fleet"))

    if args.all:
        print(approaches_config)
        for approach_ in approaches_config.keys():
            generate_docker_compose_file(n_robots_, approach_)
    else:
        generate_docker_compose_file(n_robots_, args.approach)
Ejemplo n.º 4
0
 def default(cls):
     config_file = load_file_from_module(cls.default_config_module, 'config.yaml')
     config = load_yaml(config_file)
     return cls(config)
Ejemplo n.º 5
0
def load_yaml_file(file_name):
    with open(file_name, 'r') as file_handle:
        config = load_yaml(file_handle)
    return config
Ejemplo n.º 6
0
def generate_docker_compose_file(n_robots, component_kwargs, experiment_args):
    file_generator = ExperimentComposeFileGenerator(n_robots, component_kwargs,
                                                    experiment_args)
    file_path = "./"
    experiment_name = component_kwargs.get("experiment")
    approach = component_kwargs.get("approach")
    file_name = "exp-" + experiment_number.get(
        experiment_name) + "-approach-" + approach_number.get(approach)
    file_generator.generate_docker_compose_file(file_path, file_name)


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--experiment_name',
                       type=str,
                       action='store',
                       help='Experiment_name')
    group.add_argument('--all', action='store_true')
    args = parser.parse_args()

    experiments = load_file_from_module('experiments.config', 'config.yaml')
    experiments_config = load_yaml(experiments)

    if args.all:
        for experiment_name_, config in experiments_config.items():
            generate_docker_compose_files(experiment_name_, config)
    else:
        config = experiments_config.get(args.experiment_name)
        generate_docker_compose_files(args.experiment_name, config)