METADATA 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  1. Metadata-Version: 2.4
  2. Name: apache-airflow
  3. Version: 2.10.5
  4. Dynamic: Requires-Dist
  5. Dynamic: Provides-Extra
  6. Summary: Programmatically author, schedule and monitor data pipelines
  7. Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
  8. Project-URL: Documentation, https://airflow.apache.org/docs/
  9. Project-URL: Downloads, https://archive.apache.org/dist/airflow/
  10. Project-URL: Homepage, https://airflow.apache.org/
  11. Project-URL: Release Notes, https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html
  12. Project-URL: Slack Chat, https://s.apache.org/airflow-slack
  13. Project-URL: Source Code, https://github.com/apache/airflow
  14. Project-URL: X, https://x.com/ApacheAirflow
  15. Project-URL: LinkedIn, https://www.linkedin.com/company/apache-airflow/
  16. Project-URL: Mastodon, https://fosstodon.org/@airflow
  17. Project-URL: Bluesky, https://bsky.app/profile/apache-airflow.bsky.social
  18. Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
  19. Author-email: Apache Software Foundation <dev@airflow.apache.org>
  20. Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
  21. License-File: 3rd-party-licenses/LICENSE-bootstrap.txt
  22. License-File: 3rd-party-licenses/LICENSE-bootstrap3-typeahead.txt
  23. License-File: 3rd-party-licenses/LICENSE-d3-shape.txt
  24. License-File: 3rd-party-licenses/LICENSE-d3-tip.txt
  25. License-File: 3rd-party-licenses/LICENSE-d3js.txt
  26. License-File: 3rd-party-licenses/LICENSE-dagre-d3.txt
  27. License-File: 3rd-party-licenses/LICENSE-datatables.txt
  28. License-File: 3rd-party-licenses/LICENSE-elasticmock.txt
  29. License-File: 3rd-party-licenses/LICENSE-eonasdan-bootstrap-datetimepicker.txt
  30. License-File: 3rd-party-licenses/LICENSE-flask-kerberos.txt
  31. License-File: 3rd-party-licenses/LICENSE-hue.txt
  32. License-File: 3rd-party-licenses/LICENSE-jqclock.txt
  33. License-File: 3rd-party-licenses/LICENSE-jquery.txt
  34. License-File: 3rd-party-licenses/LICENSE-moment.txt
  35. License-File: 3rd-party-licenses/LICENSE-normalize.txt
  36. License-File: 3rd-party-licenses/LICENSE-pytest-capture-warnings.txt
  37. License-File: 3rd-party-licenses/LICENSE-reproducible.txt
  38. License-File: 3rd-party-licenses/LICENSES-ui.txt
  39. License-File: LICENSE
  40. Keywords: airflow,automation,dag,data,orchestration,pipelines,workflow
  41. Classifier: Development Status :: 5 - Production/Stable
  42. Classifier: Environment :: Console
  43. Classifier: Environment :: Web Environment
  44. Classifier: Framework :: Apache Airflow
  45. Classifier: Intended Audience :: Developers
  46. Classifier: Intended Audience :: System Administrators
  47. Classifier: License :: OSI Approved :: Apache Software License
  48. Classifier: Programming Language :: Python :: 3.8
  49. Classifier: Programming Language :: Python :: 3.9
  50. Classifier: Programming Language :: Python :: 3.10
  51. Classifier: Programming Language :: Python :: 3.11
  52. Classifier: Programming Language :: Python :: 3.12
  53. Classifier: Topic :: System :: Monitoring
  54. Requires-Python: <3.13,>=3.8.1
  55. Requires-Dist: alembic>=1.13.1, <2.0
  56. Requires-Dist: argcomplete>=1.10
  57. Requires-Dist: asgiref>=2.3.0
  58. Requires-Dist: attrs>=22.1.0
  59. Requires-Dist: blinker>=1.6.2
  60. Requires-Dist: colorlog>=6.8.2
  61. Requires-Dist: configupdater>=3.1.1
  62. Requires-Dist: connexion[flask]>=2.14.2,<3.0
  63. Requires-Dist: cron-descriptor>=1.2.24
  64. Requires-Dist: croniter>=2.0.2
  65. Requires-Dist: cryptography>=41.0.0
  66. Requires-Dist: deprecated>=1.2.13
  67. Requires-Dist: dill>=0.2.2
  68. Requires-Dist: eval-type-backport>=0.2.0;python_version<"3.10"
  69. Requires-Dist: flask-caching>=2.0.0
  70. Requires-Dist: flask-session>=0.4.0,<0.6
  71. Requires-Dist: flask-wtf>=1.1.0
  72. Requires-Dist: flask>=2.2.1,<2.3
  73. Requires-Dist: fsspec>=2023.10.0
  74. Requires-Dist: google-re2>=1.0;python_version<"3.12"
  75. Requires-Dist: google-re2>=1.1;python_version>="3.12"
  76. Requires-Dist: gunicorn>=20.1.0
  77. Requires-Dist: httpx>=0.25.0
  78. Requires-Dist: importlib_metadata>=6.5;python_version<"3.12"
  79. Requires-Dist: importlib_resources>=5.2,!=6.2.0,!=6.3.0,!=6.3.1;python_version<"3.9"
  80. Requires-Dist: itsdangerous>=2.0
  81. Requires-Dist: jinja2>=3.0.0
  82. Requires-Dist: jsonschema>=4.18.0
  83. Requires-Dist: lazy-object-proxy>=1.2.0
  84. Requires-Dist: linkify-it-py>=2.0.0
  85. Requires-Dist: lockfile>=0.12.2
  86. Requires-Dist: markdown-it-py>=2.1.0
  87. Requires-Dist: markupsafe>=1.1.1
  88. Requires-Dist: marshmallow-oneofschema>=2.0.1
  89. Requires-Dist: mdit-py-plugins>=0.3.0
  90. Requires-Dist: methodtools>=0.4.7
  91. Requires-Dist: opentelemetry-api>=1.24.0
  92. Requires-Dist: opentelemetry-exporter-otlp>=1.24.0
  93. Requires-Dist: packaging>=23.0
  94. Requires-Dist: pathspec>=0.9.0
  95. Requires-Dist: pendulum>=2.1.2,<4.0;python_version<"3.12"
  96. Requires-Dist: pendulum>=3.0.0,<4.0;python_version>="3.12"
  97. Requires-Dist: pluggy>=1.5.0
  98. Requires-Dist: psutil>=5.8.0
  99. Requires-Dist: pygments>=2.0.1
  100. Requires-Dist: pyjwt>=2.0.0
  101. Requires-Dist: python-daemon>=3.0.0
  102. Requires-Dist: python-dateutil>=2.7.0
  103. Requires-Dist: python-nvd3>=0.15.0
  104. Requires-Dist: python-slugify>=5.0
  105. Requires-Dist: requests>=2.27.0,<3
  106. Requires-Dist: requests-toolbelt>=0.4.0
  107. Requires-Dist: rfc3339-validator>=0.1.4
  108. Requires-Dist: rich-argparse>=1.0.0
  109. Requires-Dist: rich>=12.4.4
  110. Requires-Dist: setproctitle>=1.3.3
  111. Requires-Dist: sqlalchemy>=1.4.36,<2.0
  112. Requires-Dist: sqlalchemy-jsonfield>=1.0
  113. Requires-Dist: tabulate>=0.7.5
  114. Requires-Dist: tenacity>=8.0.0,!=8.2.0
  115. Requires-Dist: termcolor>=1.1.0
  116. Requires-Dist: universal-pathlib>=0.2.2,!=0.2.4
  117. Requires-Dist: werkzeug>=2.0,<3
  118. Requires-Dist: apache-airflow-providers-common-compat
  119. Requires-Dist: apache-airflow-providers-common-io
  120. Requires-Dist: apache-airflow-providers-common-sql
  121. Requires-Dist: apache-airflow-providers-fab>=1.0.2
  122. Requires-Dist: apache-airflow-providers-ftp
  123. Requires-Dist: apache-airflow-providers-http
  124. Requires-Dist: apache-airflow-providers-imap
  125. Requires-Dist: apache-airflow-providers-smtp
  126. Requires-Dist: apache-airflow-providers-sqlite
  127. Provides-Extra: aiobotocore
  128. Requires-Dist: aiobotocore>=2.9.0; extra == 'aiobotocore'
  129. Provides-Extra: async
  130. Requires-Dist: eventlet>=0.33.3; extra == 'async'
  131. Requires-Dist: gevent>=0.13; extra == 'async'
  132. Requires-Dist: greenlet>=0.4.9; extra == 'async'
  133. Provides-Extra: apache-atlas
  134. Requires-Dist: atlasclient>=0.1.2; extra == 'apache-atlas'
  135. Provides-Extra: apache-webhdfs
  136. Requires-Dist: hdfs[avro,dataframe,kerberos]>=2.0.4; extra == 'apache-webhdfs'
  137. Provides-Extra: cgroups
  138. Requires-Dist: cgroupspy>=0.2.2; extra == 'cgroups'
  139. Provides-Extra: cloudpickle
  140. Requires-Dist: cloudpickle; extra == 'cloudpickle'
  141. Provides-Extra: deprecated-api
  142. Requires-Dist: requests>=2.27.0,<3; extra == 'deprecated-api'
  143. Provides-Extra: github-enterprise
  144. Requires-Dist: apache-airflow[fab]; extra == 'github-enterprise'
  145. Requires-Dist: authlib>=1.0.0; extra == 'github-enterprise'
  146. Provides-Extra: google-auth
  147. Requires-Dist: apache-airflow[fab]; extra == 'google-auth'
  148. Requires-Dist: authlib>=1.0.0; extra == 'google-auth'
  149. Provides-Extra: graphviz
  150. Requires-Dist: graphviz>=0.12; extra == 'graphviz'
  151. Provides-Extra: kerberos
  152. Requires-Dist: pykerberos>=1.1.13; extra == 'kerberos'
  153. Requires-Dist: requests-kerberos>=0.10.0; extra == 'kerberos'
  154. Requires-Dist: thrift-sasl>=0.2.0; extra == 'kerberos'
  155. Provides-Extra: ldap
  156. Requires-Dist: ldap3>=2.5.1; extra == 'ldap'
  157. Requires-Dist: python-ldap; extra == 'ldap'
  158. Provides-Extra: leveldb
  159. Requires-Dist: plyvel>=1.5.1; (sys_platform != 'darwin') and extra == 'leveldb'
  160. Provides-Extra: otel
  161. Requires-Dist: opentelemetry-exporter-prometheus; extra == 'otel'
  162. Provides-Extra: pandas
  163. Requires-Dist: pandas>=1.2.5,<2.2; extra == 'pandas'
  164. Provides-Extra: password
  165. Requires-Dist: bcrypt>=2.0.0; extra == 'password'
  166. Requires-Dist: flask-bcrypt>=0.7.1; extra == 'password'
  167. Provides-Extra: pydantic
  168. Requires-Dist: pydantic>=2.3.0; extra == 'pydantic'
  169. Provides-Extra: rabbitmq
  170. Requires-Dist: amqp; extra == 'rabbitmq'
  171. Provides-Extra: s3fs
  172. Requires-Dist: s3fs>=2023.10.0; extra == 's3fs'
  173. Provides-Extra: saml
  174. Requires-Dist: python3-saml>=1.16.0; extra == 'saml'
  175. Provides-Extra: sentry
  176. Requires-Dist: blinker>=1.1; extra == 'sentry'
  177. Requires-Dist: sentry-sdk>=1.32.0,!=1.33.0; extra == 'sentry'
  178. Provides-Extra: statsd
  179. Requires-Dist: statsd>=3.3.0; extra == 'statsd'
  180. Provides-Extra: uv
  181. Requires-Dist: uv>=0.1.32; extra == 'uv'
  182. Provides-Extra: virtualenv
  183. Requires-Dist: virtualenv; extra == 'virtualenv'
  184. Provides-Extra: all-dbs
  185. Requires-Dist: apache-airflow[apache-cassandra]; extra == 'all-dbs'
  186. Requires-Dist: apache-airflow[apache-drill]; extra == 'all-dbs'
  187. Requires-Dist: apache-airflow[apache-druid]; extra == 'all-dbs'
  188. Requires-Dist: apache-airflow[apache-hdfs]; extra == 'all-dbs'
  189. Requires-Dist: apache-airflow[apache-hive]; extra == 'all-dbs'
  190. Requires-Dist: apache-airflow[apache-impala]; extra == 'all-dbs'
  191. Requires-Dist: apache-airflow[apache-pinot]; extra == 'all-dbs'
  192. Requires-Dist: apache-airflow[arangodb]; extra == 'all-dbs'
  193. Requires-Dist: apache-airflow[cloudant]; extra == 'all-dbs'
  194. Requires-Dist: apache-airflow[databricks]; extra == 'all-dbs'
  195. Requires-Dist: apache-airflow[exasol]; extra == 'all-dbs'
  196. Requires-Dist: apache-airflow[influxdb]; extra == 'all-dbs'
  197. Requires-Dist: apache-airflow[microsoft-mssql]; extra == 'all-dbs'
  198. Requires-Dist: apache-airflow[mongo]; extra == 'all-dbs'
  199. Requires-Dist: apache-airflow[mysql]; extra == 'all-dbs'
  200. Requires-Dist: apache-airflow[neo4j]; extra == 'all-dbs'
  201. Requires-Dist: apache-airflow[postgres]; extra == 'all-dbs'
  202. Requires-Dist: apache-airflow[presto]; extra == 'all-dbs'
  203. Requires-Dist: apache-airflow[trino]; extra == 'all-dbs'
  204. Requires-Dist: apache-airflow[vertica]; extra == 'all-dbs'
  205. Provides-Extra: atlas
  206. Requires-Dist: apache-airflow[apache-atlas]; extra == 'atlas'
  207. Provides-Extra: aws
  208. Requires-Dist: apache-airflow[amazon]; extra == 'aws'
  209. Provides-Extra: azure
  210. Requires-Dist: apache-airflow[microsoft-azure]; extra == 'azure'
  211. Provides-Extra: cassandra
  212. Requires-Dist: apache-airflow[apache-cassandra]; extra == 'cassandra'
  213. Provides-Extra: crypto
  214. Provides-Extra: druid
  215. Requires-Dist: apache-airflow[apache-druid]; extra == 'druid'
  216. Provides-Extra: gcp
  217. Requires-Dist: apache-airflow[google]; extra == 'gcp'
  218. Provides-Extra: gcp-api
  219. Requires-Dist: apache-airflow[google]; extra == 'gcp-api'
  220. Provides-Extra: hdfs
  221. Requires-Dist: apache-airflow[apache-hdfs]; extra == 'hdfs'
  222. Provides-Extra: hive
  223. Requires-Dist: apache-airflow[apache-hive]; extra == 'hive'
  224. Provides-Extra: kubernetes
  225. Requires-Dist: apache-airflow[cncf-kubernetes]; extra == 'kubernetes'
  226. Provides-Extra: mssql
  227. Requires-Dist: apache-airflow[microsoft-mssql]; extra == 'mssql'
  228. Provides-Extra: pinot
  229. Requires-Dist: apache-airflow[apache-pinot]; extra == 'pinot'
  230. Provides-Extra: s3
  231. Requires-Dist: apache-airflow[amazon]; extra == 's3'
  232. Provides-Extra: spark
  233. Requires-Dist: apache-airflow[apache-spark]; extra == 'spark'
  234. Provides-Extra: webhdfs
  235. Requires-Dist: apache-airflow[apache-webhdfs]; extra == 'webhdfs'
  236. Provides-Extra: winrm
  237. Requires-Dist: apache-airflow[microsoft-winrm]; extra == 'winrm'
  238. Provides-Extra: airbyte
  239. Requires-Dist: apache-airflow-providers-airbyte; extra == 'airbyte'
  240. Provides-Extra: alibaba
  241. Requires-Dist: apache-airflow-providers-alibaba; extra == 'alibaba'
  242. Provides-Extra: amazon
  243. Requires-Dist: apache-airflow-providers-amazon; extra == 'amazon'
  244. Provides-Extra: apache-beam
  245. Requires-Dist: apache-airflow-providers-apache-beam; (python_version != "3.12") and extra == 'apache-beam'
  246. Provides-Extra: apache-cassandra
  247. Requires-Dist: apache-airflow-providers-apache-cassandra; extra == 'apache-cassandra'
  248. Provides-Extra: apache-drill
  249. Requires-Dist: apache-airflow-providers-apache-drill; extra == 'apache-drill'
  250. Provides-Extra: apache-druid
  251. Requires-Dist: apache-airflow-providers-apache-druid; extra == 'apache-druid'
  252. Provides-Extra: apache-flink
  253. Requires-Dist: apache-airflow-providers-apache-flink; extra == 'apache-flink'
  254. Provides-Extra: apache-hdfs
  255. Requires-Dist: apache-airflow-providers-apache-hdfs; extra == 'apache-hdfs'
  256. Provides-Extra: apache-hive
  257. Requires-Dist: apache-airflow-providers-apache-hive; extra == 'apache-hive'
  258. Provides-Extra: apache-iceberg
  259. Requires-Dist: apache-airflow-providers-apache-iceberg; extra == 'apache-iceberg'
  260. Provides-Extra: apache-impala
  261. Requires-Dist: apache-airflow-providers-apache-impala; extra == 'apache-impala'
  262. Provides-Extra: apache-kafka
  263. Requires-Dist: apache-airflow-providers-apache-kafka; extra == 'apache-kafka'
  264. Provides-Extra: apache-kylin
  265. Requires-Dist: apache-airflow-providers-apache-kylin; extra == 'apache-kylin'
  266. Provides-Extra: apache-livy
  267. Requires-Dist: apache-airflow-providers-apache-livy; extra == 'apache-livy'
  268. Provides-Extra: apache-pig
  269. Requires-Dist: apache-airflow-providers-apache-pig; extra == 'apache-pig'
  270. Provides-Extra: apache-pinot
  271. Requires-Dist: apache-airflow-providers-apache-pinot; extra == 'apache-pinot'
  272. Provides-Extra: apache-spark
  273. Requires-Dist: apache-airflow-providers-apache-spark; extra == 'apache-spark'
  274. Provides-Extra: apprise
  275. Requires-Dist: apache-airflow-providers-apprise; extra == 'apprise'
  276. Provides-Extra: arangodb
  277. Requires-Dist: apache-airflow-providers-arangodb; extra == 'arangodb'
  278. Provides-Extra: asana
  279. Requires-Dist: apache-airflow-providers-asana; extra == 'asana'
  280. Provides-Extra: atlassian-jira
  281. Requires-Dist: apache-airflow-providers-atlassian-jira; extra == 'atlassian-jira'
  282. Provides-Extra: celery
  283. Requires-Dist: apache-airflow-providers-celery; extra == 'celery'
  284. Provides-Extra: cloudant
  285. Requires-Dist: apache-airflow-providers-cloudant; extra == 'cloudant'
  286. Provides-Extra: cncf-kubernetes
  287. Requires-Dist: apache-airflow-providers-cncf-kubernetes; extra == 'cncf-kubernetes'
  288. Provides-Extra: cohere
  289. Requires-Dist: apache-airflow-providers-cohere; extra == 'cohere'
  290. Provides-Extra: common-compat
  291. Requires-Dist: apache-airflow-providers-common-compat; extra == 'common-compat'
  292. Provides-Extra: common-io
  293. Requires-Dist: apache-airflow-providers-common-io; extra == 'common-io'
  294. Provides-Extra: common-sql
  295. Requires-Dist: apache-airflow-providers-common-sql; extra == 'common-sql'
  296. Provides-Extra: databricks
  297. Requires-Dist: apache-airflow-providers-databricks; extra == 'databricks'
  298. Provides-Extra: datadog
  299. Requires-Dist: apache-airflow-providers-datadog; extra == 'datadog'
  300. Provides-Extra: dbt-cloud
  301. Requires-Dist: apache-airflow-providers-dbt-cloud; extra == 'dbt-cloud'
  302. Provides-Extra: dingding
  303. Requires-Dist: apache-airflow-providers-dingding; extra == 'dingding'
  304. Provides-Extra: discord
  305. Requires-Dist: apache-airflow-providers-discord; extra == 'discord'
  306. Provides-Extra: docker
  307. Requires-Dist: apache-airflow-providers-docker; extra == 'docker'
  308. Provides-Extra: elasticsearch
  309. Requires-Dist: apache-airflow-providers-elasticsearch; extra == 'elasticsearch'
  310. Provides-Extra: exasol
  311. Requires-Dist: apache-airflow-providers-exasol; extra == 'exasol'
  312. Provides-Extra: fab
  313. Requires-Dist: apache-airflow-providers-fab; extra == 'fab'
  314. Provides-Extra: facebook
  315. Requires-Dist: apache-airflow-providers-facebook; extra == 'facebook'
  316. Provides-Extra: ftp
  317. Requires-Dist: apache-airflow-providers-ftp; extra == 'ftp'
  318. Provides-Extra: github
  319. Requires-Dist: apache-airflow-providers-github; extra == 'github'
  320. Provides-Extra: google
  321. Requires-Dist: apache-airflow-providers-google; extra == 'google'
  322. Provides-Extra: grpc
  323. Requires-Dist: apache-airflow-providers-grpc; extra == 'grpc'
  324. Provides-Extra: hashicorp
  325. Requires-Dist: apache-airflow-providers-hashicorp; extra == 'hashicorp'
  326. Provides-Extra: http
  327. Requires-Dist: apache-airflow-providers-http; extra == 'http'
  328. Provides-Extra: imap
  329. Requires-Dist: apache-airflow-providers-imap; extra == 'imap'
  330. Provides-Extra: influxdb
  331. Requires-Dist: apache-airflow-providers-influxdb; extra == 'influxdb'
  332. Provides-Extra: jdbc
  333. Requires-Dist: apache-airflow-providers-jdbc; extra == 'jdbc'
  334. Provides-Extra: jenkins
  335. Requires-Dist: apache-airflow-providers-jenkins; extra == 'jenkins'
  336. Provides-Extra: microsoft-azure
  337. Requires-Dist: apache-airflow-providers-microsoft-azure; extra == 'microsoft-azure'
  338. Provides-Extra: microsoft-mssql
  339. Requires-Dist: apache-airflow-providers-microsoft-mssql; extra == 'microsoft-mssql'
  340. Provides-Extra: microsoft-psrp
  341. Requires-Dist: apache-airflow-providers-microsoft-psrp; extra == 'microsoft-psrp'
  342. Provides-Extra: microsoft-winrm
  343. Requires-Dist: apache-airflow-providers-microsoft-winrm; extra == 'microsoft-winrm'
  344. Provides-Extra: mongo
  345. Requires-Dist: apache-airflow-providers-mongo; extra == 'mongo'
  346. Provides-Extra: mysql
  347. Requires-Dist: apache-airflow-providers-mysql; extra == 'mysql'
  348. Provides-Extra: neo4j
  349. Requires-Dist: apache-airflow-providers-neo4j; extra == 'neo4j'
  350. Provides-Extra: odbc
  351. Requires-Dist: apache-airflow-providers-odbc; extra == 'odbc'
  352. Provides-Extra: openai
  353. Requires-Dist: apache-airflow-providers-openai; extra == 'openai'
  354. Provides-Extra: openfaas
  355. Requires-Dist: apache-airflow-providers-openfaas; extra == 'openfaas'
  356. Provides-Extra: openlineage
  357. Requires-Dist: apache-airflow-providers-openlineage; extra == 'openlineage'
  358. Provides-Extra: opensearch
  359. Requires-Dist: apache-airflow-providers-opensearch; extra == 'opensearch'
  360. Provides-Extra: opsgenie
  361. Requires-Dist: apache-airflow-providers-opsgenie; extra == 'opsgenie'
  362. Provides-Extra: oracle
  363. Requires-Dist: apache-airflow-providers-oracle; extra == 'oracle'
  364. Provides-Extra: pagerduty
  365. Requires-Dist: apache-airflow-providers-pagerduty; extra == 'pagerduty'
  366. Provides-Extra: papermill
  367. Requires-Dist: apache-airflow-providers-papermill; (python_version != "3.12") and extra == 'papermill'
  368. Provides-Extra: pgvector
  369. Requires-Dist: apache-airflow-providers-pgvector; extra == 'pgvector'
  370. Provides-Extra: pinecone
  371. Requires-Dist: apache-airflow-providers-pinecone; extra == 'pinecone'
  372. Provides-Extra: postgres
  373. Requires-Dist: apache-airflow-providers-postgres; extra == 'postgres'
  374. Provides-Extra: presto
  375. Requires-Dist: apache-airflow-providers-presto; extra == 'presto'
  376. Provides-Extra: qdrant
  377. Requires-Dist: apache-airflow-providers-qdrant; extra == 'qdrant'
  378. Provides-Extra: redis
  379. Requires-Dist: apache-airflow-providers-redis; extra == 'redis'
  380. Provides-Extra: salesforce
  381. Requires-Dist: apache-airflow-providers-salesforce; extra == 'salesforce'
  382. Provides-Extra: samba
  383. Requires-Dist: apache-airflow-providers-samba; extra == 'samba'
  384. Provides-Extra: segment
  385. Requires-Dist: apache-airflow-providers-segment; extra == 'segment'
  386. Provides-Extra: sendgrid
  387. Requires-Dist: apache-airflow-providers-sendgrid; extra == 'sendgrid'
  388. Provides-Extra: sftp
  389. Requires-Dist: apache-airflow-providers-sftp; extra == 'sftp'
  390. Provides-Extra: singularity
  391. Requires-Dist: apache-airflow-providers-singularity; extra == 'singularity'
  392. Provides-Extra: slack
  393. Requires-Dist: apache-airflow-providers-slack; extra == 'slack'
  394. Provides-Extra: smtp
  395. Requires-Dist: apache-airflow-providers-smtp; extra == 'smtp'
  396. Provides-Extra: snowflake
  397. Requires-Dist: apache-airflow-providers-snowflake; extra == 'snowflake'
  398. Provides-Extra: sqlite
  399. Requires-Dist: apache-airflow-providers-sqlite; extra == 'sqlite'
  400. Provides-Extra: ssh
  401. Requires-Dist: apache-airflow-providers-ssh; extra == 'ssh'
  402. Provides-Extra: tableau
  403. Requires-Dist: apache-airflow-providers-tableau; extra == 'tableau'
  404. Provides-Extra: tabular
  405. Requires-Dist: apache-airflow-providers-tabular; extra == 'tabular'
  406. Provides-Extra: telegram
  407. Requires-Dist: apache-airflow-providers-telegram; extra == 'telegram'
  408. Provides-Extra: teradata
  409. Requires-Dist: apache-airflow-providers-teradata; extra == 'teradata'
  410. Provides-Extra: trino
  411. Requires-Dist: apache-airflow-providers-trino; extra == 'trino'
  412. Provides-Extra: vertica
  413. Requires-Dist: apache-airflow-providers-vertica; extra == 'vertica'
  414. Provides-Extra: weaviate
  415. Requires-Dist: apache-airflow-providers-weaviate; extra == 'weaviate'
  416. Provides-Extra: yandex
  417. Requires-Dist: apache-airflow-providers-yandex; extra == 'yandex'
  418. Provides-Extra: ydb
  419. Requires-Dist: apache-airflow-providers-ydb; extra == 'ydb'
  420. Provides-Extra: zendesk
  421. Requires-Dist: apache-airflow-providers-zendesk; extra == 'zendesk'
  422. Provides-Extra: all-core
  423. Requires-Dist: apache-airflow[aiobotocore]; extra == 'all-core'
  424. Requires-Dist: apache-airflow[apache-atlas]; extra == 'all-core'
  425. Requires-Dist: apache-airflow[apache-webhdfs]; extra == 'all-core'
  426. Requires-Dist: apache-airflow[async]; extra == 'all-core'
  427. Requires-Dist: apache-airflow[cgroups]; extra == 'all-core'
  428. Requires-Dist: apache-airflow[cloudpickle]; extra == 'all-core'
  429. Requires-Dist: apache-airflow[deprecated-api]; extra == 'all-core'
  430. Requires-Dist: apache-airflow[github-enterprise]; extra == 'all-core'
  431. Requires-Dist: apache-airflow[google-auth]; extra == 'all-core'
  432. Requires-Dist: apache-airflow[graphviz]; extra == 'all-core'
  433. Requires-Dist: apache-airflow[kerberos]; extra == 'all-core'
  434. Requires-Dist: apache-airflow[ldap]; extra == 'all-core'
  435. Requires-Dist: apache-airflow[leveldb]; extra == 'all-core'
  436. Requires-Dist: apache-airflow[otel]; extra == 'all-core'
  437. Requires-Dist: apache-airflow[pandas]; extra == 'all-core'
  438. Requires-Dist: apache-airflow[password]; extra == 'all-core'
  439. Requires-Dist: apache-airflow[pydantic]; extra == 'all-core'
  440. Requires-Dist: apache-airflow[rabbitmq]; extra == 'all-core'
  441. Requires-Dist: apache-airflow[s3fs]; extra == 'all-core'
  442. Requires-Dist: apache-airflow[saml]; extra == 'all-core'
  443. Requires-Dist: apache-airflow[sentry]; extra == 'all-core'
  444. Requires-Dist: apache-airflow[statsd]; extra == 'all-core'
  445. Requires-Dist: apache-airflow[uv]; extra == 'all-core'
  446. Requires-Dist: apache-airflow[virtualenv]; extra == 'all-core'
  447. Provides-Extra: all
  448. Requires-Dist: apache-airflow[aiobotocore]; extra == 'all'
  449. Requires-Dist: apache-airflow[airbyte]; extra == 'all'
  450. Requires-Dist: apache-airflow[alibaba]; extra == 'all'
  451. Requires-Dist: apache-airflow[all-dbs]; extra == 'all'
  452. Requires-Dist: apache-airflow[amazon]; extra == 'all'
  453. Requires-Dist: apache-airflow[apache-atlas]; extra == 'all'
  454. Requires-Dist: apache-airflow[apache-beam]; extra == 'all'
  455. Requires-Dist: apache-airflow[apache-cassandra]; extra == 'all'
  456. Requires-Dist: apache-airflow[apache-drill]; extra == 'all'
  457. Requires-Dist: apache-airflow[apache-druid]; extra == 'all'
  458. Requires-Dist: apache-airflow[apache-flink]; extra == 'all'
  459. Requires-Dist: apache-airflow[apache-hdfs]; extra == 'all'
  460. Requires-Dist: apache-airflow[apache-hive]; extra == 'all'
  461. Requires-Dist: apache-airflow[apache-iceberg]; extra == 'all'
  462. Requires-Dist: apache-airflow[apache-impala]; extra == 'all'
  463. Requires-Dist: apache-airflow[apache-kafka]; extra == 'all'
  464. Requires-Dist: apache-airflow[apache-kylin]; extra == 'all'
  465. Requires-Dist: apache-airflow[apache-livy]; extra == 'all'
  466. Requires-Dist: apache-airflow[apache-pig]; extra == 'all'
  467. Requires-Dist: apache-airflow[apache-pinot]; extra == 'all'
  468. Requires-Dist: apache-airflow[apache-spark]; extra == 'all'
  469. Requires-Dist: apache-airflow[apache-webhdfs]; extra == 'all'
  470. Requires-Dist: apache-airflow[apprise]; extra == 'all'
  471. Requires-Dist: apache-airflow[arangodb]; extra == 'all'
  472. Requires-Dist: apache-airflow[asana]; extra == 'all'
  473. Requires-Dist: apache-airflow[async]; extra == 'all'
  474. Requires-Dist: apache-airflow[atlassian-jira]; extra == 'all'
  475. Requires-Dist: apache-airflow[celery]; extra == 'all'
  476. Requires-Dist: apache-airflow[cgroups]; extra == 'all'
  477. Requires-Dist: apache-airflow[cloudant]; extra == 'all'
  478. Requires-Dist: apache-airflow[cloudpickle]; extra == 'all'
  479. Requires-Dist: apache-airflow[cncf-kubernetes]; extra == 'all'
  480. Requires-Dist: apache-airflow[cohere]; extra == 'all'
  481. Requires-Dist: apache-airflow[common-compat]; extra == 'all'
  482. Requires-Dist: apache-airflow[common-io]; extra == 'all'
  483. Requires-Dist: apache-airflow[common-sql]; extra == 'all'
  484. Requires-Dist: apache-airflow[databricks]; extra == 'all'
  485. Requires-Dist: apache-airflow[datadog]; extra == 'all'
  486. Requires-Dist: apache-airflow[dbt-cloud]; extra == 'all'
  487. Requires-Dist: apache-airflow[deprecated-api]; extra == 'all'
  488. Requires-Dist: apache-airflow[dingding]; extra == 'all'
  489. Requires-Dist: apache-airflow[discord]; extra == 'all'
  490. Requires-Dist: apache-airflow[docker]; extra == 'all'
  491. Requires-Dist: apache-airflow[elasticsearch]; extra == 'all'
  492. Requires-Dist: apache-airflow[exasol]; extra == 'all'
  493. Requires-Dist: apache-airflow[fab]; extra == 'all'
  494. Requires-Dist: apache-airflow[facebook]; extra == 'all'
  495. Requires-Dist: apache-airflow[ftp]; extra == 'all'
  496. Requires-Dist: apache-airflow[github]; extra == 'all'
  497. Requires-Dist: apache-airflow[github-enterprise]; extra == 'all'
  498. Requires-Dist: apache-airflow[google]; extra == 'all'
  499. Requires-Dist: apache-airflow[google-auth]; extra == 'all'
  500. Requires-Dist: apache-airflow[graphviz]; extra == 'all'
  501. Requires-Dist: apache-airflow[grpc]; extra == 'all'
  502. Requires-Dist: apache-airflow[hashicorp]; extra == 'all'
  503. Requires-Dist: apache-airflow[http]; extra == 'all'
  504. Requires-Dist: apache-airflow[imap]; extra == 'all'
  505. Requires-Dist: apache-airflow[influxdb]; extra == 'all'
  506. Requires-Dist: apache-airflow[jdbc]; extra == 'all'
  507. Requires-Dist: apache-airflow[jenkins]; extra == 'all'
  508. Requires-Dist: apache-airflow[kerberos]; extra == 'all'
  509. Requires-Dist: apache-airflow[ldap]; extra == 'all'
  510. Requires-Dist: apache-airflow[leveldb]; extra == 'all'
  511. Requires-Dist: apache-airflow[microsoft-azure]; extra == 'all'
  512. Requires-Dist: apache-airflow[microsoft-mssql]; extra == 'all'
  513. Requires-Dist: apache-airflow[microsoft-psrp]; extra == 'all'
  514. Requires-Dist: apache-airflow[microsoft-winrm]; extra == 'all'
  515. Requires-Dist: apache-airflow[mongo]; extra == 'all'
  516. Requires-Dist: apache-airflow[mysql]; extra == 'all'
  517. Requires-Dist: apache-airflow[neo4j]; extra == 'all'
  518. Requires-Dist: apache-airflow[odbc]; extra == 'all'
  519. Requires-Dist: apache-airflow[openai]; extra == 'all'
  520. Requires-Dist: apache-airflow[openfaas]; extra == 'all'
  521. Requires-Dist: apache-airflow[openlineage]; extra == 'all'
  522. Requires-Dist: apache-airflow[opensearch]; extra == 'all'
  523. Requires-Dist: apache-airflow[opsgenie]; extra == 'all'
  524. Requires-Dist: apache-airflow[oracle]; extra == 'all'
  525. Requires-Dist: apache-airflow[otel]; extra == 'all'
  526. Requires-Dist: apache-airflow[pagerduty]; extra == 'all'
  527. Requires-Dist: apache-airflow[pandas]; extra == 'all'
  528. Requires-Dist: apache-airflow[papermill]; extra == 'all'
  529. Requires-Dist: apache-airflow[password]; extra == 'all'
  530. Requires-Dist: apache-airflow[pgvector]; extra == 'all'
  531. Requires-Dist: apache-airflow[pinecone]; extra == 'all'
  532. Requires-Dist: apache-airflow[postgres]; extra == 'all'
  533. Requires-Dist: apache-airflow[presto]; extra == 'all'
  534. Requires-Dist: apache-airflow[pydantic]; extra == 'all'
  535. Requires-Dist: apache-airflow[qdrant]; extra == 'all'
  536. Requires-Dist: apache-airflow[rabbitmq]; extra == 'all'
  537. Requires-Dist: apache-airflow[redis]; extra == 'all'
  538. Requires-Dist: apache-airflow[s3fs]; extra == 'all'
  539. Requires-Dist: apache-airflow[salesforce]; extra == 'all'
  540. Requires-Dist: apache-airflow[samba]; extra == 'all'
  541. Requires-Dist: apache-airflow[saml]; extra == 'all'
  542. Requires-Dist: apache-airflow[segment]; extra == 'all'
  543. Requires-Dist: apache-airflow[sendgrid]; extra == 'all'
  544. Requires-Dist: apache-airflow[sentry]; extra == 'all'
  545. Requires-Dist: apache-airflow[sftp]; extra == 'all'
  546. Requires-Dist: apache-airflow[singularity]; extra == 'all'
  547. Requires-Dist: apache-airflow[slack]; extra == 'all'
  548. Requires-Dist: apache-airflow[smtp]; extra == 'all'
  549. Requires-Dist: apache-airflow[snowflake]; extra == 'all'
  550. Requires-Dist: apache-airflow[sqlite]; extra == 'all'
  551. Requires-Dist: apache-airflow[ssh]; extra == 'all'
  552. Requires-Dist: apache-airflow[statsd]; extra == 'all'
  553. Requires-Dist: apache-airflow[tableau]; extra == 'all'
  554. Requires-Dist: apache-airflow[tabular]; extra == 'all'
  555. Requires-Dist: apache-airflow[telegram]; extra == 'all'
  556. Requires-Dist: apache-airflow[teradata]; extra == 'all'
  557. Requires-Dist: apache-airflow[trino]; extra == 'all'
  558. Requires-Dist: apache-airflow[uv]; extra == 'all'
  559. Requires-Dist: apache-airflow[vertica]; extra == 'all'
  560. Requires-Dist: apache-airflow[virtualenv]; extra == 'all'
  561. Requires-Dist: apache-airflow[weaviate]; extra == 'all'
  562. Requires-Dist: apache-airflow[yandex]; extra == 'all'
  563. Requires-Dist: apache-airflow[ydb]; extra == 'all'
  564. Requires-Dist: apache-airflow[zendesk]; extra == 'all'
  565. Provides-Extra: devel-ci
  566. Requires-Dist: aiobotocore>=2.9.0; extra == 'devel-ci'
  567. Requires-Dist: aiofiles>=23.2.0; extra == 'devel-ci'
  568. Requires-Dist: aioresponses>=0.7.6; extra == 'devel-ci'
  569. Requires-Dist: amqp; extra == 'devel-ci'
  570. Requires-Dist: astroid>=3; (python_version >= "3.9") and extra == 'devel-ci'
  571. Requires-Dist: atlasclient>=0.1.2; extra == 'devel-ci'
  572. Requires-Dist: authlib>=1.0.0; extra == 'devel-ci'
  573. Requires-Dist: backports-zoneinfo>=0.2.1; (python_version < "3.9") and extra == 'devel-ci'
  574. Requires-Dist: bcrypt>=2.0.0; extra == 'devel-ci'
  575. Requires-Dist: beautifulsoup4>=4.7.1; extra == 'devel-ci'
  576. Requires-Dist: black>=23.12.0; extra == 'devel-ci'
  577. Requires-Dist: blinker>=1.1; extra == 'devel-ci'
  578. Requires-Dist: blinker>=1.7.0; extra == 'devel-ci'
  579. Requires-Dist: cgroupspy>=0.2.2; extra == 'devel-ci'
  580. Requires-Dist: checksumdir>=1.2.0; (python_version >= "3.9") and extra == 'devel-ci'
  581. Requires-Dist: click>=8.0; extra == 'devel-ci'
  582. Requires-Dist: click>=8.1.8; (python_version >= "3.9") and extra == 'devel-ci'
  583. Requires-Dist: cloudpickle; extra == 'devel-ci'
  584. Requires-Dist: coverage>=7.4.0; extra == 'devel-ci'
  585. Requires-Dist: diagrams>=0.23.4; extra == 'devel-ci'
  586. Requires-Dist: docutils>=0.21; (python_version >= "3.9") and extra == 'devel-ci'
  587. Requires-Dist: duckdb>=0.10.0; (python_version >= "3.12") and extra == 'devel-ci'
  588. Requires-Dist: duckdb>=0.9.0; (python_version < "3.12") and extra == 'devel-ci'
  589. Requires-Dist: eralchemy2>=1.3.8; extra == 'devel-ci'
  590. Requires-Dist: eventlet>=0.33.3; extra == 'devel-ci'
  591. Requires-Dist: flask-bcrypt>=0.7.1; extra == 'devel-ci'
  592. Requires-Dist: gevent>=0.13; extra == 'devel-ci'
  593. Requires-Dist: gitpython>=3.1.40; extra == 'devel-ci'
  594. Requires-Dist: graphviz>=0.12; extra == 'devel-ci'
  595. Requires-Dist: greenlet>=0.4.9; extra == 'devel-ci'
  596. Requires-Dist: hatch>=1.9.1; extra == 'devel-ci'
  597. Requires-Dist: hdfs[avro,dataframe,kerberos]>=2.0.4; extra == 'devel-ci'
  598. Requires-Dist: incremental>=22.10.0,!=24.7.0,!=24.7.1; extra == 'devel-ci'
  599. Requires-Dist: ipdb>=0.13.13; extra == 'devel-ci'
  600. Requires-Dist: jmespath>=0.7.0; extra == 'devel-ci'
  601. Requires-Dist: ldap3>=2.5.1; extra == 'devel-ci'
  602. Requires-Dist: mypy==1.9.0; extra == 'devel-ci'
  603. Requires-Dist: opentelemetry-exporter-prometheus; extra == 'devel-ci'
  604. Requires-Dist: pandas>=1.2.5,<2.2; extra == 'devel-ci'
  605. Requires-Dist: pipdeptree>=2.13.1; extra == 'devel-ci'
  606. Requires-Dist: plyvel>=1.5.1; (sys_platform != "darwin") and extra == 'devel-ci'
  607. Requires-Dist: pre-commit>=3.5.0; extra == 'devel-ci'
  608. Requires-Dist: pydantic>=2.3.0; extra == 'devel-ci'
  609. Requires-Dist: pygithub>=2.1.1; extra == 'devel-ci'
  610. Requires-Dist: pykerberos>=1.1.13; extra == 'devel-ci'
  611. Requires-Dist: pytest-asyncio>=0.23.6; extra == 'devel-ci'
  612. Requires-Dist: pytest-cov>=4.1.0; extra == 'devel-ci'
  613. Requires-Dist: pytest-custom-exit-code>=0.3.0; extra == 'devel-ci'
  614. Requires-Dist: pytest-icdiff>=0.9; extra == 'devel-ci'
  615. Requires-Dist: pytest-instafail>=0.5.0; extra == 'devel-ci'
  616. Requires-Dist: pytest-mock>=3.12.0; extra == 'devel-ci'
  617. Requires-Dist: pytest-rerunfailures>=13.0; extra == 'devel-ci'
  618. Requires-Dist: pytest-timeouts>=1.2.1; extra == 'devel-ci'
  619. Requires-Dist: pytest-xdist>=3.5.0; extra == 'devel-ci'
  620. Requires-Dist: pytest>=8.2,<9; extra == 'devel-ci'
  621. Requires-Dist: python-ldap; extra == 'devel-ci'
  622. Requires-Dist: python3-saml>=1.16.0; extra == 'devel-ci'
  623. Requires-Dist: requests-kerberos>=0.10.0; extra == 'devel-ci'
  624. Requires-Dist: requests-mock>=1.11.0; extra == 'devel-ci'
  625. Requires-Dist: requests>=2.27.0,<3; extra == 'devel-ci'
  626. Requires-Dist: restructuredtext-lint>=1.4.0; extra == 'devel-ci'
  627. Requires-Dist: rich-click>=1.7.0; extra == 'devel-ci'
  628. Requires-Dist: ruff==0.5.5; extra == 'devel-ci'
  629. Requires-Dist: s3fs>=2023.10.0; extra == 'devel-ci'
  630. Requires-Dist: semver>=3.0.2; extra == 'devel-ci'
  631. Requires-Dist: sentry-sdk>=1.32.0,!=1.33.0; extra == 'devel-ci'
  632. Requires-Dist: sphinx-airflow-theme>=0.1.0; (python_version >= "3.9") and extra == 'devel-ci'
  633. Requires-Dist: sphinx-argparse>=0.4.0; (python_version >= "3.9") and extra == 'devel-ci'
  634. Requires-Dist: sphinx-autoapi>=3; (python_version >= "3.9") and extra == 'devel-ci'
  635. Requires-Dist: sphinx-copybutton>=0.5.2; (python_version >= "3.9") and extra == 'devel-ci'
  636. Requires-Dist: sphinx-design>=0.5.0; (python_version >= "3.9") and extra == 'devel-ci'
  637. Requires-Dist: sphinx-jinja>=2.0.2; (python_version >= "3.9") and extra == 'devel-ci'
  638. Requires-Dist: sphinx-rtd-theme>=2.0.0; (python_version >= "3.9") and extra == 'devel-ci'
  639. Requires-Dist: sphinx>=7; (python_version >= "3.9") and extra == 'devel-ci'
  640. Requires-Dist: sphinxcontrib-applehelp>=1.0.4; (python_version >= "3.9") and extra == 'devel-ci'
  641. Requires-Dist: sphinxcontrib-devhelp>=1.0.2; (python_version >= "3.9") and extra == 'devel-ci'
  642. Requires-Dist: sphinxcontrib-htmlhelp>=2.0.1; (python_version >= "3.9") and extra == 'devel-ci'
  643. Requires-Dist: sphinxcontrib-httpdomain>=1.8.1; (python_version >= "3.9") and extra == 'devel-ci'
  644. Requires-Dist: sphinxcontrib-jquery>=4.1; (python_version >= "3.9") and extra == 'devel-ci'
  645. Requires-Dist: sphinxcontrib-jsmath>=1.0.1; (python_version >= "3.9") and extra == 'devel-ci'
  646. Requires-Dist: sphinxcontrib-qthelp>=1.0.3; (python_version >= "3.9") and extra == 'devel-ci'
  647. Requires-Dist: sphinxcontrib-redoc>=1.6.0; (python_version >= "3.9") and extra == 'devel-ci'
  648. Requires-Dist: sphinxcontrib-serializinghtml>=1.1.5; (python_version >= "3.9") and extra == 'devel-ci'
  649. Requires-Dist: sphinxcontrib-spelling>=8.0.0; (python_version >= "3.9") and extra == 'devel-ci'
  650. Requires-Dist: statsd>=3.3.0; extra == 'devel-ci'
  651. Requires-Dist: thrift-sasl>=0.2.0; extra == 'devel-ci'
  652. Requires-Dist: time-machine>=2.13.0; extra == 'devel-ci'
  653. Requires-Dist: towncrier>=23.11.0; extra == 'devel-ci'
  654. Requires-Dist: twine>=4.0.2; extra == 'devel-ci'
  655. Requires-Dist: types-aiofiles; extra == 'devel-ci'
  656. Requires-Dist: types-certifi; extra == 'devel-ci'
  657. Requires-Dist: types-croniter; extra == 'devel-ci'
  658. Requires-Dist: types-deprecated; extra == 'devel-ci'
  659. Requires-Dist: types-docutils; extra == 'devel-ci'
  660. Requires-Dist: types-markdown; extra == 'devel-ci'
  661. Requires-Dist: types-paramiko; extra == 'devel-ci'
  662. Requires-Dist: types-protobuf; extra == 'devel-ci'
  663. Requires-Dist: types-pymysql; extra == 'devel-ci'
  664. Requires-Dist: types-python-dateutil; extra == 'devel-ci'
  665. Requires-Dist: types-python-slugify; extra == 'devel-ci'
  666. Requires-Dist: types-pytz; extra == 'devel-ci'
  667. Requires-Dist: types-pyyaml; extra == 'devel-ci'
  668. Requires-Dist: types-redis; extra == 'devel-ci'
  669. Requires-Dist: types-requests; extra == 'devel-ci'
  670. Requires-Dist: types-setuptools; extra == 'devel-ci'
  671. Requires-Dist: types-tabulate; extra == 'devel-ci'
  672. Requires-Dist: types-termcolor; extra == 'devel-ci'
  673. Requires-Dist: types-toml; extra == 'devel-ci'
  674. Requires-Dist: uv>=0.1.32; extra == 'devel-ci'
  675. Requires-Dist: virtualenv; extra == 'devel-ci'
  676. Requires-Dist: wheel>=0.42.0; extra == 'devel-ci'
  677. Requires-Dist: yamllint>=1.33.0; extra == 'devel-ci'
  678. Description-Content-Type: text/markdown
  679. <!--
  680. Licensed to the Apache Software Foundation (ASF) under one
  681. or more contributor license agreements. See the NOTICE file
  682. distributed with this work for additional information
  683. regarding copyright ownership. The ASF licenses this file
  684. to you under the Apache License, Version 2.0 (the
  685. "License"); you may not use this file except in compliance
  686. with the License. You may obtain a copy of the License at
  687. http://www.apache.org/licenses/LICENSE-2.0
  688. Unless required by applicable law or agreed to in writing,
  689. software distributed under the License is distributed on an
  690. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  691. KIND, either express or implied. See the License for the
  692. specific language governing permissions and limitations
  693. under the License.
  694. -->
  695. <!-- PLEASE DO NOT MODIFY THIS FILE. IT HAS BEEN GENERATED AUTOMATICALLY FROM THE `README.md` FILE OF THE
  696. PROJECT BY THE `generate-pypi-readme` PRE-COMMIT. YOUR CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN.-->
  697. # Apache Airflow
  698. [![PyPI version](https://badge.fury.io/py/apache-airflow.svg)](https://badge.fury.io/py/apache-airflow)
  699. [![GitHub Build](https://github.com/apache/airflow/actions/workflows/ci.yml/badge.svg?branch=v2-10-test)](https://github.com/apache/airflow/actions/workflows/ci.yml?query=branch%3Av2-10-test)
  700. [![Coverage Status](https://codecov.io/gh/apache/airflow/graph/badge.svg?token=WdLKlKHOAU)](https://codecov.io/gh/apache/airflow)
  701. [![License](https://img.shields.io/:license-Apache%202-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.txt)
  702. [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/apache-airflow.svg)](https://pypi.org/project/apache-airflow/)
  703. [![Docker Pulls](https://img.shields.io/docker/pulls/apache/airflow.svg)](https://hub.docker.com/r/apache/airflow)
  704. [![Docker Stars](https://img.shields.io/docker/stars/apache/airflow.svg)](https://hub.docker.com/r/apache/airflow)
  705. [![PyPI - Downloads](https://img.shields.io/pypi/dm/apache-airflow)](https://pypi.org/project/apache-airflow/)
  706. [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/apache-airflow)](https://artifacthub.io/packages/search?repo=apache-airflow)
  707. [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  708. [![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAirflow.svg?style=social&label=Follow)](https://twitter.com/ApacheAirflow)
  709. [![Slack Status](https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&style=social)](https://s.apache.org/airflow-slack)
  710. [![Contributors](https://img.shields.io/github/contributors/apache/airflow)](https://github.com/apache/airflow/graphs/contributors)
  711. [![OSSRank](https://shields.io/endpoint?url=https://ossrank.com/shield/6)](https://ossrank.com/p/6)
  712. <picture width="500">
  713. <img
  714. src="https://github.com/apache/airflow/blob/19ebcac2395ef9a6b6ded3a2faa29dc960c1e635/docs/apache-airflow/img/logos/wordmark_1.png?raw=true"
  715. alt="Apache Airflow logo"
  716. />
  717. </picture>
  718. [Apache Airflow](https://airflow.apache.org/docs/apache-airflow/stable/) (or simply Airflow) is a platform to programmatically author, schedule, and monitor workflows.
  719. When workflows are defined as code, they become more maintainable, versionable, testable, and collaborative.
  720. Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command line utilities make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress, and troubleshoot issues when needed.
  721. ## Requirements
  722. Apache Airflow is tested with:
  723. | | Main version (dev) | Stable version (2.10.4) |
  724. |-------------|------------------------------|------------------------------|
  725. | Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 |
  726. | Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
  727. | Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29, 1.30 |
  728. | PostgreSQL | 12, 13, 14, 15, 16 | 12, 13, 14, 15, 16 |
  729. | MySQL | 8.0, 8.4, Innovation | 8.0, Innovation |
  730. | SQLite | 3.15.0+ | 3.15.0+ |
  731. \* Experimental
  732. **Note**: MariaDB is not tested/recommended.
  733. **Note**: SQLite is used in Airflow tests. Do not use it in production. We recommend
  734. using the latest stable version of SQLite for local development.
  735. **Note**: Airflow currently can be run on POSIX-compliant Operating Systems. For development, it is regularly
  736. tested on fairly modern Linux Distros and recent versions of macOS.
  737. On Windows you can run it via WSL2 (Windows Subsystem for Linux 2) or via Linux Containers.
  738. The work to add Windows support is tracked via [#10388](https://github.com/apache/airflow/issues/10388), but
  739. it is not a high priority. You should only use Linux-based distros as "Production" execution environment
  740. as this is the only environment that is supported. The only distro that is used in our CI tests and that
  741. is used in the [Community managed DockerHub image](https://hub.docker.com/p/apache/airflow) is
  742. `Debian Bookworm`.
  743. ## Getting started
  744. Visit the official Airflow website documentation (latest **stable** release) for help with
  745. [installing Airflow](https://airflow.apache.org/docs/apache-airflow/stable/installation/),
  746. [getting started](https://airflow.apache.org/docs/apache-airflow/stable/start.html), or walking
  747. through a more complete [tutorial](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/).
  748. > Note: If you're looking for documentation for the main branch (latest development branch): you can find it on [s.apache.org/airflow-docs](https://s.apache.org/airflow-docs/).
  749. For more information on Airflow Improvement Proposals (AIPs), visit
  750. the [Airflow Wiki](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals).
  751. Documentation for dependent projects like provider packages, Docker image, Helm Chart, you'll find it in [the documentation index](https://airflow.apache.org/docs/).
  752. ## Installing from PyPI
  753. We publish Apache Airflow as `apache-airflow` package in PyPI. Installing it however might be sometimes tricky
  754. because Airflow is a bit of both a library and application. Libraries usually keep their dependencies open, and
  755. applications usually pin them, but we should do neither and both simultaneously. We decided to keep
  756. our dependencies as open as possible (in `pyproject.toml`) so users can install different versions of libraries
  757. if needed. This means that `pip install apache-airflow` will not work from time to time or will
  758. produce unusable Airflow installation.
  759. To have repeatable installation, however, we keep a set of "known-to-be-working" constraint
  760. files in the orphan `constraints-main` and `constraints-2-0` branches. We keep those "known-to-be-working"
  761. constraints files separately per major/minor Python version.
  762. You can use them as constraint files when installing Airflow from PyPI. Note that you have to specify
  763. correct Airflow tag/version/branch and Python versions in the URL.
  764. 1. Installing just Airflow:
  765. > Note: Only `pip` installation is currently officially supported.
  766. While it is possible to install Airflow with tools like [Poetry](https://python-poetry.org) or
  767. [pip-tools](https://pypi.org/project/pip-tools), they do not share the same workflow as
  768. `pip` - especially when it comes to constraint vs. requirements management.
  769. Installing via `Poetry` or `pip-tools` is not currently supported.
  770. There are known issues with ``bazel`` that might lead to circular dependencies when using it to install
  771. Airflow. Please switch to ``pip`` if you encounter such problems. ``Bazel`` community works on fixing
  772. the problem in `this PR <https://github.com/bazelbuild/rules_python/pull/1166>`_ so it might be that
  773. newer versions of ``bazel`` will handle it.
  774. If you wish to install Airflow using those tools, you should use the constraint files and convert
  775. them to the appropriate format and workflow that your tool requires.
  776. ```bash
  777. pip install 'apache-airflow==2.10.4' \
  778. --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.8.txt"
  779. ```
  780. 2. Installing with extras (i.e., postgres, google)
  781. ```bash
  782. pip install 'apache-airflow[postgres,google]==2.8.3' \
  783. --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.8.txt"
  784. ```
  785. For information on installing provider packages, check
  786. [providers](http://airflow.apache.org/docs/apache-airflow-providers/index.html).
  787. ## Official source code
  788. Apache Airflow is an [Apache Software Foundation](https://www.apache.org) (ASF) project,
  789. and our official source code releases:
  790. - Follow the [ASF Release Policy](https://www.apache.org/legal/release-policy.html)
  791. - Can be downloaded from [the ASF Distribution Directory](https://downloads.apache.org/airflow)
  792. - Are cryptographically signed by the release manager
  793. - Are officially voted on by the PMC members during the
  794. [Release Approval Process](https://www.apache.org/legal/release-policy.html#release-approval)
  795. Following the ASF rules, the source packages released must be sufficient for a user to build and test the
  796. release provided they have access to the appropriate platform and tools.
  797. ## Contributing
  798. Want to help build Apache Airflow? Check out our [contributing documentation](https://github.com/apache/airflow/blob/main/contributing-docs/README.rst).
  799. Official Docker (container) images for Apache Airflow are described in [images](dev/breeze/doc/ci/02_images.md).
  800. ## Voting Policy
  801. * Commits need a +1 vote from a committer who is not the author
  802. * When we do AIP voting, both PMC member's and committer's `+1s` are considered a binding vote.
  803. ## Who uses Apache Airflow?
  804. We know about around 500 organizations that are using Apache Airflow (but there are likely many more)
  805. [in the wild](https://github.com/apache/airflow/blob/main/INTHEWILD.md).
  806. If you use Airflow - feel free to make a PR to add your organisation to the list.
  807. ## Who maintains Apache Airflow?
  808. Airflow is the work of the [community](https://github.com/apache/airflow/graphs/contributors),
  809. but the [core committers/maintainers](https://people.apache.org/committers-by-project.html#airflow)
  810. are responsible for reviewing and merging PRs as well as steering conversations around new feature requests.
  811. If you would like to become a maintainer, please review the Apache Airflow
  812. [committer requirements](https://github.com/apache/airflow/blob/main/COMMITTERS.rst#guidelines-to-become-an-airflow-committer).