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.")
