docker_etl/file_utils.py (15 lines of code) (raw):

from pathlib import Path from typing import Dict, List CI_JOB_NAME = "ci_job.yaml" CI_WORKFLOW_NAME = "ci_workflow.yaml" CI_JOB_TEMPLATE_NAME = "ci_job.template.yaml" CI_WORKFLOW_TEMPLATE_NAME = "ci_workflow.template.yaml" ROOT_DIR = (Path(__file__).parent / "..").resolve() TEMPLATES_DIR = ROOT_DIR / "templates" JOBS_DIR = ROOT_DIR / "jobs" def find_file_in_jobs(filename: str) -> List[Path]: """Find all files in job directories matching the given filename.""" return [obj for obj in JOBS_DIR.glob(f"*/{filename}") if obj.is_file()] def get_job_dirs() -> List[Path]: """Get absolute paths of every directory in the jobs directory""" return [path for path in JOBS_DIR.glob("*") if path.is_dir()] def get_templates() -> Dict[str, Path]: """Get mappings of template name to template path.""" return {path.name: path for path in TEMPLATES_DIR.glob("*") if path.is_dir()}