Module lang_main.config
Functions
def get_config_paths(root_folder: Path, cfg_name: str, cyto_stylesheet_name: str) ‑> tuple[pathlib.Path, pathlib.Path]-
Expand source code
def get_config_paths( root_folder: Path, cfg_name: str, cyto_stylesheet_name: str, ) -> tuple[Path, Path]: cfg_path_internal = (root_folder / cfg_name).resolve() cyto_stylesheet_path = (root_folder / cyto_stylesheet_name).resolve() return cfg_path_internal, cyto_stylesheet_path def load_cfg(starting_path: Path,
glob_pattern: str,
stop_folder_name: str | None,
lookup_cwd: bool = False) ‑> dict[str, typing.Any]-
Expand source code
def load_cfg( starting_path: Path, glob_pattern: str, stop_folder_name: str | None, lookup_cwd: bool = False, ) -> dict[str, Any]: """Look for configuration file. Internal configs are not used any more because the library behaviour is only guaranteed by external configurations. Parameters ---------- starting_path : Path path to start for the lookup glob_pattern : str pattern of the config file naming scheme stop_folder_name : str | None folder name at which the lookup should stop, the parent folder is also searched, e.g. if starting_path is path/to/start/folder and stop_folder_name is 'to', then path/ is also searched Returns ------- dict[str, Any] loaded config file Raises ------ LangMainConfigNotFoundError if no config file was found """ cfg_path: Path | None = None if lookup_cwd: print('Looking for cfg file in CWD.', flush=True) cfg_path = search_cwd(glob_pattern) if cfg_path is None: print( ( f'Looking iteratively for config file. Start: {starting_path}, ' f'stop folder: {stop_folder_name}' ), flush=True, ) cfg_path = search_iterative( starting_path=starting_path, glob_pattern=glob_pattern, stop_folder_name=stop_folder_name, ) if cfg_path is None: raise LangMainConfigNotFoundError('Config file was not found.') config = load_toml_config(path_to_toml=cfg_path) print(f'Loaded config from: >>{cfg_path}<<') return config.copy()Look for configuration file. Internal configs are not used any more because the library behaviour is only guaranteed by external configurations.
Parameters
starting_path:Path- path to start for the lookup
glob_pattern:str- pattern of the config file naming scheme
stop_folder_name:str | None- folder name at which the lookup should stop, the parent folder is also searched, e.g. if starting_path is path/to/start/folder and stop_folder_name is 'to', then path/ is also searched
Returns
dict[str, Any]- loaded config file
Raises
LangMainConfigNotFoundError- if no config file was found
def load_toml_config(path_to_toml: str | Path) ‑> dict[str, typing.Any]-
Expand source code
def load_toml_config( path_to_toml: str | Path, ) -> dict[str, Any]: with open(path_to_toml, 'rb') as f: data = tomllib.load(f) print('Loaded TOML config file successfully.', flush=True) return data