def load_config_file(config_file, ignore_names): """ Loads and builds the model from the configuration Arguments: config_file: The configuration file ignore_names: A set of names that should be ignored during the loading. """ config_dicts = parsing.parse_file(config_file) config_file.close() log("INI file is parsed.") # first load the configuration into a dictionary if "main" not in config_dicts: raise Exception("Configuration does not contain the main block.") existing_objects = dict() main_config = config_dicts['main'] configuration = dict() # TODO ensure tf_manager goes last in a better way for key, value in sorted(main_config.items(), key=lambda t: t[0] if t[0] != 'tf_manager' else 'zzz'): if key not in ignore_names: try: configuration[key] = build_object(value, config_dicts, existing_objects, 0) except Exception as exc: raise ConfigBuildException(key, exc) from None return configuration
def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("config", metavar="INI-FILE", help="a configuration file") parser.add_argument("--code", "-c", action="store_true", help="instead of building the config, generate " "equivalent Python code and write it to stdout") args = parser.parse_args() with open(args.config, "r", encoding="utf-8") as f: _, config_dict = parse_file(f) if args.code: imports, statements = _patch_config_builder() config, _ = build_config(config_dict, ignore_names=set()) if args.code: print("import argparse\nimport tensorflow as tf") print(*sorted(imports), sep="\n", end="\n\n") print(*statements, sep="\n", end="\n\n") print("model = argparse.Namespace({})".format(",".join( "\n {}={}".format(key, config[key]) for key in config)))
def load_config_file(config_file, ignore_names): """ Loads and builds the model from the configuration Arguments: config_file: The configuration file ignore_names: A set of names that should be ignored during the loading. """ config_dicts = parsing.parse_file(config_file) config_file.close() log("INI file is parsed.") # first load the configuration into a dictionary if "main" not in config_dicts: raise Exception("Configuration does not contain the main block.") existing_objects = dict() main_config = config_dicts['main'] configuration = dict() for key, value in main_config.items(): if key not in ignore_names: try: configuration[key] = build_object( value, config_dicts, existing_objects, 0) except Exception as exc: raise ConfigBuildException(key, exc) from None return configuration
def load_file(self, path: str) -> None: log("Loading INI file: '{}'".format(path), color='blue') try: with open(path, 'r', encoding='utf-8') as file: self.config_dict = parse_file(file) log("INI file is parsed.") arguments = self.make_namespace(self.config_dict['main']) # pylint: disable=broad-except except Exception as exc: log("Failed to load INI file: {}".format(exc), color='red') traceback.print_exc() exit(1) self.args = arguments
def load_file(self, path: str, changes: Optional[List[str]] = None) -> None: log("Loading INI file: '{}'".format(path), color="blue") try: with open(path, "r", encoding="utf-8") as file: self.raw_config, self.config_dict = parse_file(file, changes) log("INI file is parsed.") arguments = self.make_namespace(self.config_dict["main"]) # pylint: disable=broad-except except Exception as exc: log("Failed to load INI file: {}".format(exc), color="red") traceback.print_exc() exit(1) self.args = arguments
def load_file(self, path: str, changes: Optional[List[str]] = None) -> None: log("Loading INI file: '{}'".format(path), color="blue") try: with open(path, "r", encoding="utf-8") as file: raw_config, config_dict = parse_file(file, changes) log("INI file is parsed.") self.raw_config.update(raw_config) self.config_dict.update(config_dict) # pylint: disable=broad-except except Exception as exc: log("Failed to load INI file: {}".format(exc), color="red") traceback.print_exc() exit(1) if "main" in self.config_dict: self.args = self.make_namespace(self.config_dict["main"])