{"id":20640122,"url":"https://github.com/maresb/airflow-stubs","last_synced_at":"2025-09-10T13:32:23.581Z","repository":{"id":229365691,"uuid":"776557710","full_name":"maresb/airflow-stubs","owner":"maresb","description":"Type stubs for when Airflow is not installed","archived":false,"fork":false,"pushed_at":"2025-04-11T07:41:01.000Z","size":438,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-26T17:10:38.353Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maresb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-23T20:46:12.000Z","updated_at":"2025-04-11T07:41:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"e6310926-6a87-4014-941d-2aa04e33148c","html_url":"https://github.com/maresb/airflow-stubs","commit_stats":null,"previous_names":["maresb/airflow-stubs"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/maresb/airflow-stubs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fairflow-stubs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fairflow-stubs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fairflow-stubs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fairflow-stubs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maresb","download_url":"https://codeload.github.com/maresb/airflow-stubs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fairflow-stubs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274470375,"owners_count":25291604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T15:28:02.476Z","updated_at":"2025-09-10T13:32:23.556Z","avatar_url":"https://github.com/maresb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# airflow-stubs\n\n[![GitHub repository](https://img.shields.io/badge/GitHub-airflow--stubs-blue)](https://github.com/maresb/airflow-stubs)\n[![PyPI - Version](https://img.shields.io/pypi/v/airflow-stubs.svg)](https://pypi.org/project/airflow-stubs)\n\n-----\n\n## Table of Contents\n\n- [airflow-stubs](#airflow-stubs)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n  - [Introduction](#introduction)\n  - [Motivation](#motivation)\n  - [Notes on regenerating](#notes-on-regenerating)\n  - [License](#license)\n\n## Installation\n\n```console\npip install airflow-stubs\n```\n\n## Introduction\n\nThis is not meant to improve the type hints of Airflow. Instead it's meant to offer some basic type hints when Airflow is not installed.\n\nLots of stuff is broken. Use at your own risk.\n\n## Motivation\n\nAirflow has lots of dependencies.\nI want to be able to run it via Docker Compose as in [simple-airflow](https://github.com/maresb/simple-airflow) without installing it in my project.\nI do however want to define DAGs in my project that use [`@task.docker`](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/taskflow.html#dependency-separation-using-docker-operator).\nInstalling the stubs alleviates some of the errors from not having Airflow installed in my environment.\n\n## Notes on regenerating\n\nRun the following commands:\n\n```bash\ndocker pull apache/airflow\ndocker run -it --name generate-airflow-stubs -v \"$(pwd)/generate-stubs-in-container.sh:/generate-stubs-in-container.sh:ro\" apache/airflow bash /generate-stubs-in-container.sh\ndocker cp generate-airflow-stubs:/home/airflow/out/airflow .\ndocker rm generate-airflow-stubs\nrm -rf airflow-stubs\nmv airflow airflow-stubs\n```\n\nand then commit/push the results. The release is handled via `hatch-vcs` for versioning, and OIDC for trusted publishing to PyPI. There is currently no conda-forge package.\n\n## License\n\n`airflow-stubs` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaresb%2Fairflow-stubs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaresb%2Fairflow-stubs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaresb%2Fairflow-stubs/lists"}