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
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)
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)
def default(cls): config_file = load_file_from_module(cls.default_config_module, 'config.yaml') config = load_yaml(config_file) return cls(config)
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)