Declarative Apache Airflow DAGs from Hydra YAML and airflow-pydantic models.
# config/pipeline.yaml
# @package _global_
_target_: airflow_config.Configuration
dags:
daily-report:
schedule: "0 6 * * *"
start_date: "2025-01-01"
catchup: false
tasks:
report:
_target_: airflow_config.BashTask
bash_command: python /opt/jobs/report.pyfrom airflow_config import load_config
config = load_config("config", "pipeline")
config.generate_in_mem()Configuration can provide shared defaults, environment overrides, templates, extensions, generated Python DAG files, or in-memory DAG registration.
- Tutorial: generate a DAG from YAML
- How-to guides
- Why configuration and DAG models are separate
- API reference
Published documentation is available at airflow-laminar.github.io/airflow-config.
- airflow-pydantic supplies the DAG, task, sensor, schedule, pool, and variable models.
- airflow-supervisor and supervisor-pydantic manage supervisord jobs.
- airflow-systemd and systemd-pydantic manage systemd services.
- airflow-cron and cron-pydantic convert crontabs into DAG models.
- airflow-balancer supplies host and port selection extensions.
- airflow-common supplies common operators and library management.
Note
This library was generated using copier from the Base Python Project Template repository.