import sys from typing import cast import yaml from pathlib import Path def _get_all_yml(path: Path) -> list: """Returns list of all yml files.""" return list(path.rglob(r"**/*.y*ml")) def _read_yml(path: Path) -> dict | None: try: with open(path, "r") as f: return yaml.safe_load(f) except FileNotFoundError as e: print(e) return None def load(yml_path: Path | str) -> list[dict]: """Main data process routine. Extracts all necessary data from yaml files returns it. """ contents = [_read_yml(source) for source in _get_all_yml(Path(yml_path))] if not contents: return [] contents = cast(list[dict], contents) for study in contents: del study["annotation"] return contents if __name__ == "__main__": if len(sys.argv) == 2: res = load(Path(sys.argv[1])) print(res) else: print("Please provide path to yml files.")