{ "info": { "author": "linlongzhen", "author_email": "lin9long@163.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: System :: Monitoring" ], "description": "\n# Apache Airflow\n\n[![PyPI version](https://badge.fury.io/py/apache-airflow.svg)](https://badge.fury.io/py/apache-airflow)\n[![Build Status](https://travis-ci.org/apache/airflow.svg?branch=master)](https://travis-ci.org/apache/airflow)\n[![Coverage Status](https://img.shields.io/codecov/c/github/apache/airflow/master.svg)](https://codecov.io/github/apache/airflow?branch=master)\n[![Documentation Status](https://readthedocs.org/projects/airflow/badge/?version=latest)](https://airflow.readthedocs.io/en/latest/?badge=latest)\n[![License](http://img.shields.io/:license-Apache%202-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/apache-airflow.svg)](https://pypi.org/project/apache-airflow/)\n[![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAirflow.svg?style=social&label=Follow)](https://twitter.com/ApacheAirflow)\n\n_NOTE: The transition from 1.8.0 (or before) to 1.8.1 (or after) requires uninstalling Apache Airflow before installing the new version. The package name was changed from `airflow` to `apache-airflow` as of version 1.8.1._\n\nApache Airflow (or simply Airflow) is a platform to programmatically author, schedule, and monitor workflows.\n\nWhen workflows are defined as code, they become more maintainable,\nversionable, testable, and collaborative.\n\nUse 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.\n\n\n\n**Table of contents**\n\n- [Getting started](#getting-started)\n- [Beyond the Horizon](#beyond-the-horizon)\n- [Principles](#principles)\n- [User Interface](#user-interface)\n- [Contributing](#contributing)\n- [Who uses Airflow?](#who-uses-airflow)\n- [Who Maintains Apache Airflow?](#who-maintains-apache-airflow)\n- [Links](#links)\n\n\n\n## Getting started\nPlease visit the Airflow Platform documentation (latest **stable** release) for help with [installing Airflow](https://airflow.apache.org/installation.html), getting a [quick start](https://airflow.apache.org/start.html), or a more complete [tutorial](https://airflow.apache.org/tutorial.html).\n\nDocumentation of GitHub master (latest development branch): [ReadTheDocs Documentation](https://airflow.readthedocs.io/en/latest/)\n\nFor further information, please visit the [Airflow Wiki](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Home).\n\n## Beyond the Horizon\n\nAirflow **is not** a data streaming solution. Tasks do not move data from\none to the other (though tasks can exchange metadata!). Airflow is not\nin the [Spark Streaming](http://spark.apache.org/streaming/)\nor [Storm](https://storm.apache.org/) space, it is more comparable to\n[Oozie](http://oozie.apache.org/) or\n[Azkaban](https://azkaban.github.io/).\n\nWorkflows are expected to be mostly static or slowly changing. You can think\nof the structure of the tasks in your workflow as slightly more dynamic\nthan a database structure would be. Airflow workflows are expected to look\nsimilar from a run to the next, this allows for clarity around\nunit of work and continuity.\n\n## Principles\n\n- **Dynamic**: Airflow pipelines are configuration as code (Python), allowing for dynamic pipeline generation. This allows for writing code that instantiates pipelines dynamically.\n- **Extensible**: Easily define your own operators, executors and extend the library so that it fits the level of abstraction that suits your environment.\n- **Elegant**: Airflow pipelines are lean and explicit. Parameterizing your scripts is built into the core of Airflow using the powerful **Jinja** templating engine.\n- **Scalable**: Airflow has a modular architecture and uses a message queue to orchestrate an arbitrary number of workers.\n\n## User Interface\n\n- **DAGs**: Overview of all DAGs in your environment.\n![](/docs/img/dags.png)\n\n- **Tree View**: Tree representation of a DAG that spans across time.\n![](/docs/img/tree.png)\n\n- **Graph View**: Visualization of a DAG's dependencies and their current status for a specific run.\n![](/docs/img/graph.png)\n\n- **Task Duration**: Total time spent on different tasks over time.\n![](/docs/img/duration.png)\n\n- **Gantt View**: Duration and overlap of a DAG.\n![](/docs/img/gantt.png)\n\n- **Code View**: Quick way to view source code of a DAG.\n![](/docs/img/code.png)\n\n## Contributing\n\nWant to help build Apache Airflow? Check out our [contributing documentation](https://github.com/apache/airflow/blob/master/CONTRIBUTING.md).\n\n\n## Who uses Airflow?\n\nAs the Apache Airflow community grows, we'd like to keep track of who is using\nthe platform. Please send a PR with your company name and @githubhandle\nif you may.\n\nCommitters:\n\n* Refer to [Committers](https://cwiki.apache.org/confluence/display/AIRFLOW/Committers)\n\nCurrently **officially** using Airflow:\n\n1. [AdBOOST](https://www.adboost.sk) [[AdBOOST](https://github.com/AdBOOST)]\n1. [Agari](https://github.com/agaridata) [[@r39132](https://github.com/r39132)]\n1. [Airbnb](http://airbnb.io/) [[@mistercrunch](https://github.com/mistercrunch), [@artwr](https://github.com/artwr)]\n1. [Airtel](https://www.airtel.in/) [[@harishbisht](https://github.com/harishbisht)]\n1. [Alan](https://alan.eu) [[@charles-go](https://github.com/charles-go)]\n1. [allegro.pl](http://allegro.tech/) [[@kretes](https://github.com/kretes)]\n1. [AltX](https://www.getaltx.com/about) [[@pedromduarte](https://github.com/pedromduarte)]\n1. [Apigee](https://apigee.com) [[@btallman](https://github.com/btallman)]\n1. [ARGO Labs](http://www.argolabs.org) [[California Data Collaborative](https://github.com/California-Data-Collaborative)]\n1. [Astronomer](http://www.astronomer.io) [[@schnie](https://github.com/schnie), [@andscoop](https://github.com/andscoop), [@tedmiston](https://github.com/tedmiston), [@benjamingregory](https://github.com/benjamingregory)]\n1. [Auth0](https://auth0.com) [[@sicarul](https://github.com/sicarul)]\n1. [Away](https://awaytravel.com) [[@trunsky](https://github.com/trunsky)]\n1. [Azri Solutions](http://www.azrisolutions.com/) [[@userimack](https://github.com/userimack)]\n1. [BalanceHero](http://truebalance.io/) [[@swalloow](https://github.com/swalloow)]\n1. [Banco de Formaturas](https://www.bancodeformaturas.com.br) [[@guiligan](https://github.com/guiligan)]\n1. [BandwidthX](http://www.bandwidthx.com) [[@dineshdsharma](https://github.com/dineshdsharma)]\n1. [Bellhops](https://github.com/bellhops)\n1. [BelugaDB](https://belugadb.com) [[@fabio-nukui](https://github.com/fabio-nukui) & [@joao-sallaberry](http://github.com/joao-sallaberry) & [@lucianoviola](https://github.com/lucianoviola) & [@tmatuki](https://github.com/tmatuki)]\n1. [BlaBlaCar](https://www.blablacar.com) [[@puckel](https://github.com/puckel) & [@wmorin](https://github.com/wmorin)]\n1. [Bloc](https://www.bloc.io) [[@dpaola2](https://github.com/dpaola2)]\n1. [Blue Yonder](http://www.blue-yonder.com) [[@blue-yonder](https://github.com/blue-yonder)]\n1. [BlueApron](https://www.blueapron.com) [[@jasonjho](https://github.com/jasonjho) & [@matthewdavidhauser](https://github.com/matthewdavidhauser)]\n1. [Bluecore](https://www.bluecore.com) [[@JLDLaughlin](https://github.com/JLDLaughlin)]\n1. [Boda Telecom Suite - CE](https://github.com/bodastage/bts-ce) [[@erssebaggala](https://github.com/erssebaggala), [@bodastage](https://github.com/bodastage)]\n1. [Bodastage Solutions](http://bodastage.com) [[@erssebaggala](https://github.com/erssebaggala), [@bodastage](https://github.com/bodastage)]\n1. [Bonnier Broadcasting](http://www.bonnierbroadcasting.com) [[@wileeam](https://github.com/wileeam)]\n1. [BounceX](http://www.bouncex.com) [[@JoshFerge](https://github.com/JoshFerge), [@hudsonrio](https://github.com/hudsonrio), [@ronniekritou](https://github.com/ronniekritou)]\n1. [California Data Collaborative](https://github.com/California-Data-Collaborative) powered by [ARGO Labs](http://www.argolabs.org)\n1. [Carbonite](https://www.carbonite.com) [[@ajbosco](https://github.com/ajbosco)]\n1. [Celect](http://www.celect.com) [[@superdosh](https://github.com/superdosh) & [@chadcelect](https://github.com/chadcelect)]\n1. [Change.org](https://www.change.org) [[@change](https://github.com/change), [@vijaykramesh](https://github.com/vijaykramesh)]\n1. [Checkr](https://checkr.com) [[@tongboh](https://github.com/tongboh)]\n1. [Children's Hospital of Philadelphia Division of Genomic Diagnostics](http://www.chop.edu/centers-programs/division-genomic-diagnostics) [[@genomics-geek]](https://github.com/genomics-geek/)\n1. [Cinimex DataLab](http://cinimex.ru) [[@kdubovikov](https://github.com/kdubovikov)]\n1. [City of San Diego](http://sandiego.gov) [[@MrMaksimize](https://github.com/mrmaksimize), [@andrell81](https://github.com/andrell81) & [@arnaudvedy](https://github.com/arnaudvedy)]\n1. [Clairvoyant](https://clairvoyantsoft.com) [@shekharv](https://github.com/shekharv)\n1. [Clover Health](https://www.cloverhealth.com) [[@gwax](https://github.com/gwax) & [@vansivallab](https://github.com/vansivallab)]\n1. [Chartboost](https://www.chartboost.com) [[@cgelman](https://github.com/cgelman) & [@dclubb](https://github.com/dclubb)]\n1. [ContaAzul](https://www.contaazul.com) [[@bern4rdelli](https://github.com/bern4rdelli), [@renanleme](https://github.com/renanleme) & [@sabino](https://github.com/sabino)]\n1. [Cotap](https://github.com/cotap/) [[@maraca](https://github.com/maraca) & [@richardchew](https://github.com/richardchew)]\n1. [Craig@Work](https://www.craigatwork.com)\n1. [Credit Karma](https://www.creditkarma.com/) [[@preete-dixit-ck](https://github.com/preete-dixit-ck) & [@harish-gaggar-ck](https://github.com/harish-gaggar-ck) & [@greg-finley-ck](https://github.com/greg-finley-ck)]\n1. [CreditCards.com](https://www.creditcards.com/)[[@vmAggies](https://github.com/vmAggies) & [@jay-wallaby](https://github.com/jay-wallaby)]\n1. [Creditas](https://www.creditas.com.br) [[@dcassiano](https://github.com/dcassiano)]\n1. [Custom Ink](https://www.customink.com/) [[@david-dalisay](https://github.com/david-dalisay), [@dmartin11](https://github.com/dmartin11) & [@mpeteuil](https://github.com/mpeteuil)]\n1. [Data Reply](https://www.datareply.co.uk/) [[@kaxil](https://github.com/kaxil)]\n1. [DataFox](https://www.datafox.com/) [[@sudowork](https://github.com/sudowork)]\n1. [Digital First Media](http://www.digitalfirstmedia.com/) [[@duffn](https://github.com/duffn) & [@mschmo](https://github.com/mschmo) & [@seanmuth](https://github.com/seanmuth)]\n1. [DocuTAP](https://www.docutap.com/) [[@jshvrsn](https://github.com/jshvrsn) & [@lhvphan](https://github.com/lhvphan) & [@cloneluke](https://github.com/cloneluke)]\n1. [Dotmodus](http://dotmodus.com) [[@dannylee12](https://github.com/dannylee12)]\n1. [Drivy](https://www.drivy.com) [[@AntoineAugusti](https://github.com/AntoineAugusti)]\n1. [Easy Taxi](http://www.easytaxi.com/) [[@caique-lima](https://github.com/caique-lima) & [@WesleyBatista](https://github.com/WesleyBatista) & [@diraol](https://github.com/diraol)]\n1. [eRevalue](https://www.datamaran.com) [[@hamedhsn](https://github.com/hamedhsn)]\n1. [evo.company](https://evo.company/) [[@orhideous](https://github.com/orhideous)]\n1. [FreshBooks](https://github.com/freshbooks) [[@DinoCow](https://github.com/DinoCow)]\n1. [Fundera](https://fundera.com) [[@andyxhadji](https://github.com/andyxhadji)]\n1. [GameWisp](https://gamewisp.com) [[@tjbiii](https://github.com/TJBIII) & [@theryanwalls](https://github.com/theryanwalls)]\n1. [Gentner Lab](http://github.com/gentnerlab) [[@neuromusic](https://github.com/neuromusic)]\n1. [Glassdoor](https://github.com/Glassdoor) [[@syvineckruyk](https://github.com/syvineckruyk)]\n1. [Global Fashion Group](http://global-fashion-group.com) [[@GFG](https://github.com/GFG)]\n1. [GovTech GDS](https://gds-gov.tech) [[@chrissng](https://github.com/chrissng) & [@datagovsg](https://github.com/datagovsg)]\n1. [Grand Rounds](https://www.grandrounds.com/) [[@richddr](https://github.com/richddr), [@timz1290](https://github.com/timz1290), [@wenever](https://github.com/@wenever), & [@runongirlrunon](https://github.com/runongirlrunon)]\n1. [Groupalia](http://es.groupalia.com) [[@jesusfcr](https://github.com/jesusfcr)]\n1. [Groupon](https://groupon.com) [[@stevencasey](https://github.com/stevencasey)]\n1. [Gusto](https://gusto.com) [[@frankhsu](https://github.com/frankhsu)]\n1. [Handshake](https://joinhandshake.com/) [[@mhickman](https://github.com/mhickman)]\n1. [Handy](http://www.handy.com/careers/73115?gh_jid=73115&gh_src=o5qcxn) [[@marcintustin](https://github.com/marcintustin) / [@mtustin-handy](https://github.com/mtustin-handy)]\n1. [HBC Digital](http://tech.hbc.com) [[@tmccartan](https://github.com/tmccartan) & [@dmateusp](https://github.com/dmateusp)]\n1. [HBO](http://www.hbo.com/)[[@yiwang](https://github.com/yiwang)]\n1. [Healthjump](http://www.healthjump.com/) [[@miscbits](https://github.com/miscbits)]\n1. [HelloFresh](https://www.hellofresh.com) [[@tammymendt](https://github.com/tammymendt) & [@davidsbatista](https://github.com/davidsbatista) & [@iuriinedostup](https://github.com/iuriinedostup)]\n1. [Holimetrix](http://holimetrix.com/) [[@thibault-ketterer](https://github.com/thibault-ketterer)]\n1. [Hootsuite](https://github.com/hootsuite)\n1. [Hostnfly](https://www.hostnfly.com/) [[@CyrilLeMat](https://github.com/CyrilLeMat) & [@pierrechopin](https://github.com/pierrechopin) & [@alexisrosuel](https://github.com/alexisrosuel)]\n1. [HotelQuickly](https://github.com/HotelQuickly) [[@zinuzoid](https://github.com/zinuzoid)]\n1. [IFTTT](https://www.ifttt.com/) [[@apurvajoshi](https://github.com/apurvajoshi)]\n1. [iHeartRadio](http://www.iheart.com/)[[@yiwang](https://github.com/yiwang)]\n1. [imgix](https://www.imgix.com/) [[@dclubb](https://github.com/dclubb)]\n1. [ING](http://www.ing.com/)\n1. [Intercom](http://www.intercom.com/) [[@fox](https://github.com/fox) & [@paulvic](https://github.com/paulvic)]\n1. [Investorise](https://investorise.com/) [[@svenvarkel](https://github.com/svenvarkel)]\n1. [Jampp](https://github.com/jampp)\n1. [JobTeaser](https://www.jobteaser.com) [[@stefani75](https://github.com/stefani75) & [@knil-sama](https://github.com/knil-sama)]\n1. [Kalibrr](https://www.kalibrr.com/) [[@charlesverdad](https://github.com/charlesverdad)]\n1. [Karmic](https://karmiclabs.com) [[@hyw](https://github.com/hyw)]\n1. [Kiwi.com](https://kiwi.com/) [[@underyx](https://github.com/underyx)]\n1. [Kogan.com](https://github.com/kogan) [[@geeknam](https://github.com/geeknam)]\n1. [Lemann Foundation](http://fundacaolemann.org.br) [[@fernandosjp](https://github.com/fernandosjp)]\n1. [LendUp](https://www.lendup.com/) [[@lendup](https://github.com/lendup)]\n1. [LetsBonus](http://www.letsbonus.com) [[@jesusfcr](https://github.com/jesusfcr) & [@OpringaoDoTurno](https://github.com/OpringaoDoTurno)]\n1. [liligo](http://liligo.com/) [[@tromika](https://github.com/tromika)]\n1. [LingoChamp](http://www.liulishuo.com/) [[@haitaoyao](https://github.com/haitaoyao)]\n1. [Lucid](http://luc.id) [[@jbrownlucid](https://github.com/jbrownlucid) & [@kkourtchikov](https://github.com/kkourtchikov)]\n1. [Lumos Labs](https://www.lumosity.com/) [[@rfroetscher](https://github.com/rfroetscher/) & [@zzztimbo](https://github.com/zzztimbo/)]\n1. [Lyft](https://www.lyft.com/)[[@SaurabhBajaj](https://github.com/SaurabhBajaj)]\n1. [M4U](https://www.m4u.com.br/) [[@msantino](https://github.com/msantino)]\n1. [Madrone](http://madroneco.com/) [[@mbreining](https://github.com/mbreining) & [@scotthb](https://github.com/scotthb)]\n1. [Markovian](https://markovian.com/) [[@al-xv](https://github.com/al-xv), [@skogsbaeck](https://github.com/skogsbaeck), [@waltherg](https://github.com/waltherg)]\n1. [Mercadoni](https://www.mercadoni.com.co) [[@demorenoc](https://github.com/demorenoc)]\n1. [Mercari](http://www.mercari.com/) [[@yu-iskw](https://github.com/yu-iskw)]\n1. [MFG Labs](https://github.com/MfgLabs)\n1. [MiNODES](https://www.minodes.com) [[@dice89](https://github.com/dice89), [@diazcelsa](https://github.com/diazcelsa)]\n1. [Multiply](https://www.multiply.com) [[@nrhvyc](https://github.com/nrhvyc)]\n1. [mytaxi](https://mytaxi.com) [[@mytaxi](https://github.com/mytaxi)]\n1. [Nerdwallet](https://www.nerdwallet.com)\n1. [New Relic](https://www.newrelic.com) [[@marcweil](https://github.com/marcweil)]\n1. [Newzoo](https://www.newzoo.com) [[@newzoo-nexus](https://github.com/newzoo-nexus)]\n1. [Nextdoor](https://nextdoor.com) [[@SivaPandeti](https://github.com/SivaPandeti), [@zshapiro](https://github.com/zshapiro) & [@jthomas123](https://github.com/jthomas123)]\n1. [OdysseyPrime](https://www.goprime.io/) [[@davideberdin](https://github.com/davideberdin)]\n1. [OfferUp](https://offerupnow.com)\n1. [OneFineStay](https://www.onefinestay.com) [[@slangwald](https://github.com/slangwald)]\n1. [Open Knowledge International](https://okfn.org) [@vitorbaptista](https://github.com/vitorbaptista)\n1. [Overstock](https://www.github.com/overstock) [[@mhousley](https://github.com/mhousley) & [@mct0006](https://github.com/mct0006)]\n1. [Pandora Media](https://www.pandora.com/) [[@Acehaidrey](https://github.com/Acehaidrey) & [@wolfier](https://github.com/wolfier)]\n1. [PAYMILL](https://www.paymill.com/) [[@paymill](https://github.com/paymill) & [@matthiashuschle](https://github.com/matthiashuschle)]\n1. [PayPal](https://www.paypal.com/) [[@r39132](https://github.com/r39132) & [@jhsenjaliya](https://github.com/jhsenjaliya)]\n1. [Pernod-Ricard](https://www.pernod-ricard.com/) [[@romain-nio](https://github.com/romain-nio)]\n1. [Plaid](https://www.plaid.com/) [[@plaid](https://github.com/plaid), [@AustinBGibbons](https://github.com/AustinBGibbons) & [@jeeyoungk](https://github.com/jeeyoungk)]\n1. [Playbuzz](https://www.playbuzz.com/) [[@clintonboys](https://github.com/clintonboys) & [@dbn](https://github.com/dbn)]\n1. [PMC](https://pmc.com/) [[@andrewm4894](https://github.com/andrewm4894)]\n1. [Postmates](http://www.postmates.com) [[@syeoryn](https://github.com/syeoryn)]\n1. [Pronto Tools](http://www.prontotools.io/) [[@zkan](https://github.com/zkan) & [@mesodiar](https://github.com/mesodiar)]\n1. [PubNub](https://pubnub.com) [[@jzucker2](https://github.com/jzucker2)]\n1. [Qplum](https://qplum.co) [[@manti](https://github.com/manti)]\n1. [Quantopian](https://www.quantopian.com/) [[@eronarn](http://github.com/eronarn)]\n1. [Qubole](https://qubole.com) [[@msumit](https://github.com/msumit)]\n1. [Quizlet](https://quizlet.com) [[@quizlet](https://github.com/quizlet)]\n1. [Quora](https://www.quora.com/)\n1. [REA Group](https://www.rea-group.com/)\n1. [Reddit](https://www.reddit.com/) [[@reddit](https://github.com/reddit/)]\n1. [Robinhood](https://robinhood.com) [[@vineet-rh](https://github.com/vineet-rh)]\n1. [Scaleway](https://scaleway.com) [[@kdeldycke](https://github.com/kdeldycke)]\n1. [Sense360](https://github.com/Sense360) [[@kamilmroczek](https://github.com/KamilMroczek)]\n1. [Shopkick](https://shopkick.com/) [[@shopkick](https://github.com/shopkick)]\n1. [Sidecar](https://hello.getsidecar.com/) [[@getsidecar](https://github.com/getsidecar)]\n1. [SimilarWeb](https://www.similarweb.com/) [[@similarweb](https://github.com/similarweb)]\n1. [SmartNews](https://www.smartnews.com/) [[@takus](https://github.com/takus)]\n1. [SocialCops](https://www.socialcops.com/) [[@vinayak-mehta](https://github.com/vinayak-mehta) & [@sharky93](https://github.com/sharky93)]\n1. [Spotahome](https://www.spotahome.com/) [[@spotahome](https://github.com/spotahome)]\n1. [Spotify](https://github.com/spotify) [[@znichols](https://github.com/znichols)]\n1. [Stackspace](https://beta.stackspace.io/)\n1. [Stripe](https://stripe.com) [[@jbalogh](https://github.com/jbalogh)]\n1. [Tails.com](https://tails.com/) [[@alanmcruickshank](https://github.com/alanmcruickshank)]\n1. [Thinking Machines](https://thinkingmachin.es) [[@marksteve](https://github.com/marksteve)]\n1. [Thinknear](https://www.thinknear.com/) [[@d3cay1](https://github.com/d3cay1), [@ccson](https://github.com/ccson), & [@ababian](https://github.com/ababian)]\n1. [Thumbtack](https://www.thumbtack.com/) [[@natekupp](https://github.com/natekupp)]\n1. [Tictail](https://tictail.com/)\n1. [Tile](https://tile.com/) [[@ranjanmanish](https://github.com/ranjanmanish)]\n1. [Tokopedia](https://www.tokopedia.com/) [@topedmaria](https://github.com/topedmaria)\n1. [Twine Labs](https://www.twinelabs.com/) [[@ivorpeles](https://github.com/ivorpeles)]\n1. [Twitter](https://www.twitter.com/) [[@aoen](https://github.com/aoen)]\n1. [T2 Systems](http://t2systems.com) [[@unclaimedpants](https://github.com/unclaimedpants)]\n1. [Ubisoft](https://www.ubisoft.com/) [[@Walkoss](https://github.com/Walkoss)]\n1. [United Airlines](https://www.united.com/) [[@ilopezfr](https://github.com/ilopezfr)]\n1. [Upsight](https://www.upsight.com) [[@dhuang](https://github.com/dhuang)]\n1. [Vente-Exclusive.com](http://www.vente-exclusive.com/) [[@alexvanboxel](https://github.com/alexvanboxel)]\n1. [Vevo](https://www.vevo.com/) [[@csetiawan](https://github.com/csetiawan) & [@jerrygillespie](https://github.com/jerrygillespie)]\n1. [Vnomics](https://github.com/vnomics) [[@lpalum](https://github.com/lpalum)]\n1. [WePay](http://www.wepay.com) [[@criccomini](https://github.com/criccomini) & [@mtagle](https://github.com/mtagle)]\n1. [WeTransfer](https://github.com/WeTransfer) [[@jochem](https://github.com/jochem)]\n1. [Whistle Labs](http://www.whistle.com) [[@ananya77041](https://github.com/ananya77041)]\n1. [WiseBanyan](https://wisebanyan.com/)\n1. [Wooga](https://www.wooga.com/)\n1. [Xero](https://www.xero.com/) [[@yan9yu](https://github.com/yan9yu)]\n1. [Xoom](https://www.xoom.com/)\n1. [Yahoo!](https://www.yahoo.com/)\n1. [Yieldr](https://www.yieldr.com/) [[@ggeorgiadis](https://github.com/ggeorgiadis)]\n1. [Zapier](https://www.zapier.com) [[@drknexus](https://github.com/drknexus) & [@statwonk](https://github.com/statwonk)]\n1. [Zego](https://www.zego.com/) [[@ruimffl](https://github.com/ruimffl)]\n1. [Zendesk](https://www.github.com/zendesk)\n1. [Zenly](https://zen.ly) [[@cerisier](https://github.com/cerisier) & [@jbdalido](https://github.com/jbdalido)]\n1. [Zymergen](https://www.zymergen.com/)\n1. [99](https://99taxis.com) [[@fbenevides](https://github.com/fbenevides), [@gustavoamigo](https://github.com/gustavoamigo) & [@mmmaia](https://github.com/mmmaia)]\n\n## Who Maintains Apache Airflow?\n\nAirflow is the work of the [community](https://github.com/apache/airflow/graphs/contributors),\nbut the [core committers/maintainers](https://people.apache.org/committers-by-project.html#airflow)\nare responsible for reviewing and merging PRs as well as steering conversation around new feature requests.\nIf you would like to become a maintainer, please review the Apache Airflow\n[committer requirements](https://cwiki.apache.org/confluence/display/AIRFLOW/Committers).\n\n## Links\n\n\n- [Documentation](https://airflow.apache.org/)\n- [Chat](https://apache-airflow-slack.herokuapp.com/)\n- [More](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Links)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://dist.apache.org/repos/dist/release/airflow/1.10.5", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lin9long/airflow.git", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "edu-airflow", "package_url": "https://pypi.org/project/edu-airflow/", "platform": "", "project_url": "https://pypi.org/project/edu-airflow/", "project_urls": { "Download": "https://dist.apache.org/repos/dist/release/airflow/1.10.5", "Homepage": "https://github.com/lin9long/airflow.git" }, "release_url": "https://pypi.org/project/edu-airflow/1.10.5/", "requires_dist": [ "alembic (<2.0,>=1.0)", "argcomplete (~=1.10)", "cached-property (~=1.5)", "colorlog (==4.0.2)", "configparser (<3.6.0,>=3.5.0)", "croniter (<0.4,>=0.3.17)", "dill (<0.3,>=0.2.2)", "flask (<2.0,>=1.1.0)", "flask-appbuilder (<2.0.0,>=1.12.5)", "flask-admin (==1.5.3)", "flask-caching (<1.4.0,>=1.3.3)", "flask-login (<0.5,>=0.3)", "flask-swagger (==0.2.13)", "flask-wtf (<0.15,>=0.14.2)", "funcsigs (==1.0.0)", "future (<0.17,>=0.16.0)", "graphviz (>=0.12)", "gunicorn (<20.0,>=19.5.0)", "iso8601 (>=0.1.12)", "json-merge-patch (==0.2)", "jinja2 (<2.11.0,>=2.10.1)", "lazy-object-proxy (~=1.3)", "markdown (<3.0,>=2.5.2)", "marshmallow-sqlalchemy (<0.19.0,>=0.16.1)", "pandas (<1.0.0,>=0.17.1)", "pendulum (==1.4.4)", "psutil (<6.0.0,>=4.2.0)", "pygments (<3.0,>=2.0.1)", "python-daemon (<2.2,>=2.1.1)", "python-dateutil (<3,>=2.3)", "requests (<3,>=2.20.0)", "setproctitle (<2,>=1.1.8)", "sqlalchemy (~=1.3)", "tabulate (<0.9,>=0.7.5)", "tenacity (==4.12.0)", "termcolor (==1.1.0)", "text-unidecode (==1.2)", "thrift (>=0.9.2)", "tzlocal (<2.0.0,>=1.4)", "unicodecsv (>=0.14.1)", "zope.deprecation (<5.0,>=4.0)", "enum34 (~=1.1.6); python_version < \"3.4\"", "typing; python_version < \"3.5\"", "sendgrid (<6,>=5.2.0); extra == 'all'", "beautifulsoup4 (~=4.7.1); extra == 'all'", "click (==6.7); extra == 'all'", "coverage; extra == 'all'", "dumb-init (>=1.2.2); extra == 'all'", "flake8 (>=3.6.0); extra == 'all'", "flake8-colors; extra == 'all'", "freezegun; extra == 'all'", "ipdb; extra == 'all'", "jira; extra == 'all'", "mongomock; extra == 'all'", "moto (==1.3.5); extra == 'all'", "nose; extra == 'all'", "nose-ignore-docstring (==0.2); extra == 'all'", "nose-timer; extra == 'all'", "parameterized; extra == 'all'", "paramiko; extra == 'all'", "pre-commit; extra == 'all'", "pysftp; extra == 'all'", "pywinrm; extra == 'all'", "qds-sdk (>=1.9.6); extra == 'all'", "rednose; extra == 'all'", "requests-mock; extra == 'all'", "yamllint; extra == 'all'", "mypy; extra == 'all'", "psycopg2 (<2.8,>=2.7.4); extra == 'all'", "mysqlclient (<1.4,>=1.3.6); extra == 'all'", "hmsclient (>=0.1.0); extra == 'all'", "pyhive (>=0.6.0); extra == 'all'", "pymssql (>=2.1.1); extra == 'all'", "vertica-python (>=0.5.1); extra == 'all'", "cloudant (<2.0,>=0.5.9); extra == 'all'", "pydruid (>=0.4.1); extra == 'all'", "pinotdb (==0.1.1); extra == 'all'", "cassandra-driver (>=3.13.0); extra == 'all'", "pymongo (>=3.6.0); extra == 'all'", "dnspython (<2.0.0,>=1.13.0); extra == 'all'", "sphinx-argparse (>=0.1.13); extra == 'all'", "sphinx-autoapi (==1.0.0); extra == 'all'", "sphinx-rtd-theme (>=0.1.6); extra == 'all'", "sphinxcontrib-httpdomain (>=1.7.0); extra == 'all'", "pysmbclient (>=0.1.3); extra == 'all'", "boto3 (<1.8.0,>=1.7.0); extra == 'all'", "slackclient (<2.0.0,>=1.0.0); extra == 'all'", "cryptography (>=0.9.3); extra == 'all'", "cx-Oracle (>=5.1.2); extra == 'all'", "docker (~=3.0); extra == 'all'", "paramiko (>=2.1.1); extra == 'all'", "pysftp (>=0.2.9); extra == 'all'", "sshtunnel (<0.2,>=0.1.4); extra == 'all'", "kubernetes (>=3.0.0); extra == 'all'", "cryptography (>=2.0.0); extra == 'all'", "celery (~=4.3); extra == 'all'", "flower (<1.0,>=0.7.3); extra == 'all'", "tornado (<6.0,>=4.2.0); extra == 'all'", "kombu (==4.6.3); extra == 'all'", "azure-storage (>=0.34.0); extra == 'all'", "redis (~=3.2); extra == 'all'", "google-api-python-client (<2.0.0dev,>=1.6.0); extra == 'all'", "google-auth-httplib2 (>=0.0.1); extra == 'all'", "google-auth (<2.0.0dev,>=1.0.0); extra == 'all'", "google-cloud-bigtable (==0.33.0); extra == 'all'", "google-cloud-container (>=0.1.1); extra == 'all'", "google-cloud-dlp (>=0.11.0); extra == 'all'", "google-cloud-language (>=1.1.1); extra == 'all'", "google-cloud-spanner (<1.10.0,>=1.7.1); extra == 'all'", "google-cloud-storage (~=1.16); extra == 'all'", "google-cloud-translate (>=1.3.3); extra == 'all'", "google-cloud-videointelligence (>=1.7.0); extra == 'all'", "google-cloud-vision (>=0.35.2); extra == 'all'", "google-cloud-texttospeech (>=0.4.0); extra == 'all'", "google-cloud-speech (>=0.36.3); extra == 'all'", "grpcio-gcp (>=0.2.2); extra == 'all'", "httplib2 (~=0.9); extra == 'all'", "pandas-gbq; extra == 'all'", "PyOpenSSL; extra == 'all'", "grpcio (>=1.15.0); extra == 'all'", "datadog (>=0.14.0); extra == 'all'", "zdesk; extra == 'all'", "jaydebeapi (>=1.1.1); extra == 'all'", "ldap3 (>=2.5.1); extra == 'all'", "pykerberos (>=1.1.13); extra == 'all'", "requests-kerberos (>=0.10.0); extra == 'all'", "thrift-sasl (>=0.2.0); extra == 'all'", "bcrypt (>=2.0.0); extra == 'all'", "flask-bcrypt (>=0.7.1); extra == 'all'", "hdfs[avro,dataframe,kerberos] (>=2.0.4); extra == 'all'", "python-jenkins (>=1.0.0); extra == 'all'", "analytics-python (>=1.2.9); extra == 'all'", "snowflake-connector-python (>=1.5.2); extra == 'all'", "snowflake-sqlalchemy (>=1.1.0); extra == 'all'", "elasticsearch (<6.0.0,>=5.0.0); extra == 'all'", "elasticsearch-dsl (<6.0.0,>=5.0.0); extra == 'all'", "azure-mgmt-resource (>=2.2.0); extra == 'all'", "azure-mgmt-datalake-store (>=0.5.0); extra == 'all'", "azure-datalake-store (>=0.0.45); extra == 'all'", "azure-cosmos (>=3.0.1); extra == 'all'", "atlasclient (>=0.1.2); extra == 'all'", "azure-mgmt-containerinstance (>=1.5.0); extra == 'all'", "cgroupspy (>=0.1.4); extra == 'all'", "papermill[all] (>=1.0.0); extra == 'all'", "nteract-scrapbook[all] (>=0.2.1); extra == 'all'", "virtualenv; extra == 'all'", "sphinx (==1.8.5); (python_version < \"3.0\") and extra == 'all'", "mock; (python_version < \"3.3\") and extra == 'all'", "contextdecorator; (python_version < \"3.4\") and extra == 'all'", "sphinx (>=2.1.2); (python_version >= \"3.0\") and extra == 'all'", "psycopg2 (<2.8,>=2.7.4); extra == 'all_dbs'", "mysqlclient (<1.4,>=1.3.6); extra == 'all_dbs'", "hmsclient (>=0.1.0); extra == 'all_dbs'", "pyhive (>=0.6.0); extra == 'all_dbs'", "pymssql (>=2.1.1); extra == 'all_dbs'", "snakebite (>=2.7.8); extra == 'all_dbs'", "vertica-python (>=0.5.1); extra == 'all_dbs'", "cloudant (<2.0,>=0.5.9); extra == 'all_dbs'", "pydruid (>=0.4.1); extra == 'all_dbs'", "pinotdb (==0.1.1); extra == 'all_dbs'", "cassandra-driver (>=3.13.0); extra == 'all_dbs'", "pymongo (>=3.6.0); extra == 'all_dbs'", "dnspython (<2.0.0,>=1.13.0); extra == 'all_dbs'", "greenlet (>=0.4.9); extra == 'async'", "eventlet (>=0.9.7); extra == 'async'", "gevent (>=0.13); extra == 'async'", "atlasclient (>=0.1.2); extra == 'atlas'", "azure-storage (>=0.34.0); extra == 'azure_blob_storage'", "azure-mgmt-containerinstance (>=1.5.0); extra == 'azure_container_instances'", "azure-cosmos (>=3.0.1); extra == 'azure_cosmos'", "azure-mgmt-resource (>=2.2.0); extra == 'azure_data_lake'", "azure-mgmt-datalake-store (>=0.5.0); extra == 'azure_data_lake'", "azure-datalake-store (>=0.0.45); extra == 'azure_data_lake'", "cassandra-driver (>=3.13.0); extra == 'cassandra'", "celery (~=4.3); extra == 'celery'", "flower (<1.0,>=0.7.3); extra == 'celery'", "tornado (<6.0,>=4.2.0); extra == 'celery'", "kombu (==4.6.3); extra == 'celery'", "cgroupspy (>=0.1.4); extra == 'cgroups'", "cloudant (<2.0,>=0.5.9); extra == 'cloudant'", "cryptography (>=0.9.3); extra == 'crypto'", "distributed (<2,>=1.17.1); extra == 'dask'", "requests (<3,>=2.20.0); extra == 'databricks'", "datadog (>=0.14.0); extra == 'datadog'", "beautifulsoup4 (~=4.7.1); extra == 'devel'", "click (==6.7); extra == 'devel'", "coverage; extra == 'devel'", "dumb-init (>=1.2.2); extra == 'devel'", "flake8 (>=3.6.0); extra == 'devel'", "flake8-colors; extra == 'devel'", "freezegun; extra == 'devel'", "ipdb; extra == 'devel'", "jira; extra == 'devel'", "mongomock; extra == 'devel'", "moto (==1.3.5); extra == 'devel'", "nose; extra == 'devel'", "nose-ignore-docstring (==0.2); extra == 'devel'", "nose-timer; extra == 'devel'", "parameterized; extra == 'devel'", "paramiko; extra == 'devel'", "pre-commit; extra == 'devel'", "pysftp; extra == 'devel'", "pywinrm; extra == 'devel'", "qds-sdk (>=1.9.6); extra == 'devel'", "rednose; extra == 'devel'", "requests-mock; extra == 'devel'", "yamllint; extra == 'devel'", "mypy; extra == 'devel'", "kubernetes (>=3.0.0); extra == 'devel'", "cryptography (>=2.0.0); extra == 'devel'", "mysqlclient (<1.4,>=1.3.6); extra == 'devel'", "sphinx-argparse (>=0.1.13); extra == 'devel'", "sphinx-autoapi (==1.0.0); extra == 'devel'", "sphinx-rtd-theme (>=0.1.6); extra == 'devel'", "sphinxcontrib-httpdomain (>=1.7.0); extra == 'devel'", "bcrypt (>=2.0.0); extra == 'devel'", "flask-bcrypt (>=0.7.1); extra == 'devel'", "boto3 (<1.8.0,>=1.7.0); extra == 'devel'", "cgroupspy (>=0.1.4); extra == 'devel'", "sphinx (==1.8.5); (python_version < \"3.0\") and extra == 'devel'", "mock; (python_version < \"3.3\") and extra == 'devel'", "contextdecorator; (python_version < \"3.4\") and extra == 'devel'", "sphinx (>=2.1.2); (python_version >= \"3.0\") and extra == 'devel'", "beautifulsoup4 (~=4.7.1); extra == 'devel_azure'", "click (==6.7); extra == 'devel_azure'", "coverage; extra == 'devel_azure'", "dumb-init (>=1.2.2); extra == 'devel_azure'", "flake8 (>=3.6.0); extra == 'devel_azure'", "flake8-colors; extra == 'devel_azure'", "freezegun; extra == 'devel_azure'", "ipdb; extra == 'devel_azure'", "jira; extra == 'devel_azure'", "mongomock; extra == 'devel_azure'", "moto (==1.3.5); extra == 'devel_azure'", "nose; extra == 'devel_azure'", "nose-ignore-docstring (==0.2); extra == 'devel_azure'", "nose-timer; extra == 'devel_azure'", "parameterized; extra == 'devel_azure'", "paramiko; extra == 'devel_azure'", "pre-commit; extra == 'devel_azure'", "pysftp; extra == 'devel_azure'", "pywinrm; extra == 'devel_azure'", "qds-sdk (>=1.9.6); extra == 'devel_azure'", "rednose; extra == 'devel_azure'", "requests-mock; extra == 'devel_azure'", "yamllint; extra == 'devel_azure'", "mypy; extra == 'devel_azure'", "kubernetes (>=3.0.0); extra == 'devel_azure'", "cryptography (>=2.0.0); extra == 'devel_azure'", "mysqlclient (<1.4,>=1.3.6); extra == 'devel_azure'", "sphinx-argparse (>=0.1.13); extra == 'devel_azure'", "sphinx-autoapi (==1.0.0); extra == 'devel_azure'", "sphinx-rtd-theme (>=0.1.6); extra == 'devel_azure'", "sphinxcontrib-httpdomain (>=1.7.0); extra == 'devel_azure'", "bcrypt (>=2.0.0); extra == 'devel_azure'", "flask-bcrypt (>=0.7.1); extra == 'devel_azure'", "boto3 (<1.8.0,>=1.7.0); extra == 'devel_azure'", "cgroupspy (>=0.1.4); extra == 'devel_azure'", "azure-mgmt-resource (>=2.2.0); extra == 'devel_azure'", "azure-mgmt-datalake-store (>=0.5.0); extra == 'devel_azure'", "azure-datalake-store (>=0.0.45); extra == 'devel_azure'", "azure-cosmos (>=3.0.1); extra == 'devel_azure'", "sphinx (==1.8.5); (python_version < \"3.0\") and extra == 'devel_azure'", "mock; (python_version < \"3.3\") and extra == 'devel_azure'", "contextdecorator; (python_version < \"3.4\") and extra == 'devel_azure'", "sphinx (>=2.1.2); (python_version >= \"3.0\") and extra == 'devel_azure'", "sendgrid (<6,>=5.2.0); extra == 'devel_ci'", "beautifulsoup4 (~=4.7.1); extra == 'devel_ci'", "click (==6.7); extra == 'devel_ci'", "coverage; extra == 'devel_ci'", "dumb-init (>=1.2.2); extra == 'devel_ci'", "flake8 (>=3.6.0); extra == 'devel_ci'", "flake8-colors; extra == 'devel_ci'", "freezegun; extra == 'devel_ci'", "ipdb; extra == 'devel_ci'", "jira; extra == 'devel_ci'", "mongomock; extra == 'devel_ci'", "moto (==1.3.5); extra == 'devel_ci'", "nose; extra == 'devel_ci'", "nose-ignore-docstring (==0.2); extra == 'devel_ci'", "nose-timer; extra == 'devel_ci'", "parameterized; extra == 'devel_ci'", "paramiko; extra == 'devel_ci'", "pre-commit; extra == 'devel_ci'", "pysftp; extra == 'devel_ci'", "pywinrm; extra == 'devel_ci'", "qds-sdk (>=1.9.6); extra == 'devel_ci'", "rednose; extra == 'devel_ci'", "requests-mock; extra == 'devel_ci'", "yamllint; extra == 'devel_ci'", "mypy; extra == 'devel_ci'", "psycopg2 (<2.8,>=2.7.4); extra == 'devel_ci'", "mysqlclient (<1.4,>=1.3.6); extra == 'devel_ci'", "hmsclient (>=0.1.0); extra == 'devel_ci'", "pyhive (>=0.6.0); extra == 'devel_ci'", "pymssql (>=2.1.1); extra == 'devel_ci'", "vertica-python (>=0.5.1); extra == 'devel_ci'", "cloudant (<2.0,>=0.5.9); extra == 'devel_ci'", "pydruid (>=0.4.1); extra == 'devel_ci'", "pinotdb (==0.1.1); extra == 'devel_ci'", "cassandra-driver (>=3.13.0); extra == 'devel_ci'", "pymongo (>=3.6.0); extra == 'devel_ci'", "dnspython (<2.0.0,>=1.13.0); extra == 'devel_ci'", "sphinx-argparse (>=0.1.13); extra == 'devel_ci'", "sphinx-autoapi (==1.0.0); extra == 'devel_ci'", "sphinx-rtd-theme (>=0.1.6); extra == 'devel_ci'", "sphinxcontrib-httpdomain (>=1.7.0); extra == 'devel_ci'", "pysmbclient (>=0.1.3); extra == 'devel_ci'", "boto3 (<1.8.0,>=1.7.0); extra == 'devel_ci'", "slackclient (<2.0.0,>=1.0.0); extra == 'devel_ci'", "cryptography (>=0.9.3); extra == 'devel_ci'", "cx-Oracle (>=5.1.2); extra == 'devel_ci'", "docker (~=3.0); extra == 'devel_ci'", "paramiko (>=2.1.1); extra == 'devel_ci'", "pysftp (>=0.2.9); extra == 'devel_ci'", "sshtunnel (<0.2,>=0.1.4); extra == 'devel_ci'", "kubernetes (>=3.0.0); extra == 'devel_ci'", "cryptography (>=2.0.0); extra == 'devel_ci'", "celery (~=4.3); extra == 'devel_ci'", "flower (<1.0,>=0.7.3); extra == 'devel_ci'", "tornado (<6.0,>=4.2.0); extra == 'devel_ci'", "kombu (==4.6.3); extra == 'devel_ci'", "azure-storage (>=0.34.0); extra == 'devel_ci'", "redis (~=3.2); extra == 'devel_ci'", "google-api-python-client (<2.0.0dev,>=1.6.0); extra == 'devel_ci'", "google-auth-httplib2 (>=0.0.1); extra == 'devel_ci'", "google-auth (<2.0.0dev,>=1.0.0); extra == 'devel_ci'", "google-cloud-bigtable (==0.33.0); extra == 'devel_ci'", "google-cloud-container (>=0.1.1); extra == 'devel_ci'", "google-cloud-dlp (>=0.11.0); extra == 'devel_ci'", "google-cloud-language (>=1.1.1); extra == 'devel_ci'", "google-cloud-spanner (<1.10.0,>=1.7.1); extra == 'devel_ci'", "google-cloud-storage (~=1.16); extra == 'devel_ci'", "google-cloud-translate (>=1.3.3); extra == 'devel_ci'", "google-cloud-videointelligence (>=1.7.0); extra == 'devel_ci'", "google-cloud-vision (>=0.35.2); extra == 'devel_ci'", "google-cloud-texttospeech (>=0.4.0); extra == 'devel_ci'", "google-cloud-speech (>=0.36.3); extra == 'devel_ci'", "grpcio-gcp (>=0.2.2); extra == 'devel_ci'", "httplib2 (~=0.9); extra == 'devel_ci'", "pandas-gbq; extra == 'devel_ci'", "PyOpenSSL; extra == 'devel_ci'", "grpcio (>=1.15.0); extra == 'devel_ci'", "datadog (>=0.14.0); extra == 'devel_ci'", "zdesk; extra == 'devel_ci'", "jaydebeapi (>=1.1.1); extra == 'devel_ci'", "ldap3 (>=2.5.1); extra == 'devel_ci'", "pykerberos (>=1.1.13); extra == 'devel_ci'", "requests-kerberos (>=0.10.0); extra == 'devel_ci'", "thrift-sasl (>=0.2.0); extra == 'devel_ci'", "bcrypt (>=2.0.0); extra == 'devel_ci'", "flask-bcrypt (>=0.7.1); extra == 'devel_ci'", "hdfs[avro,dataframe,kerberos] (>=2.0.4); extra == 'devel_ci'", "python-jenkins (>=1.0.0); extra == 'devel_ci'", "analytics-python (>=1.2.9); extra == 'devel_ci'", "snowflake-connector-python (>=1.5.2); extra == 'devel_ci'", "snowflake-sqlalchemy (>=1.1.0); extra == 'devel_ci'", "elasticsearch (<6.0.0,>=5.0.0); extra == 'devel_ci'", "elasticsearch-dsl (<6.0.0,>=5.0.0); extra == 'devel_ci'", "azure-mgmt-resource (>=2.2.0); extra == 'devel_ci'", "azure-mgmt-datalake-store (>=0.5.0); extra == 'devel_ci'", "azure-datalake-store (>=0.0.45); extra == 'devel_ci'", "azure-cosmos (>=3.0.1); extra == 'devel_ci'", "atlasclient (>=0.1.2); extra == 'devel_ci'", "azure-mgmt-containerinstance (>=1.5.0); extra == 'devel_ci'", "cgroupspy (>=0.1.4); extra == 'devel_ci'", "papermill[all] (>=1.0.0); extra == 'devel_ci'", "nteract-scrapbook[all] (>=0.2.1); extra == 'devel_ci'", "virtualenv; extra == 'devel_ci'", "sphinx (==1.8.5); (python_version < \"3.0\") and extra == 'devel_ci'", "mock; (python_version < \"3.3\") and extra == 'devel_ci'", "contextdecorator; (python_version < \"3.4\") and extra == 'devel_ci'", "sphinx (>=2.1.2); (python_version >= \"3.0\") and extra == 'devel_ci'", "beautifulsoup4 (~=4.7.1); extra == 'devel_hadoop'", "click (==6.7); extra == 'devel_hadoop'", "coverage; extra == 'devel_hadoop'", "dumb-init (>=1.2.2); extra == 'devel_hadoop'", "flake8 (>=3.6.0); extra == 'devel_hadoop'", "flake8-colors; extra == 'devel_hadoop'", "freezegun; extra == 'devel_hadoop'", "ipdb; extra == 'devel_hadoop'", "jira; extra == 'devel_hadoop'", "mongomock; extra == 'devel_hadoop'", "moto (==1.3.5); extra == 'devel_hadoop'", "nose; extra == 'devel_hadoop'", "nose-ignore-docstring (==0.2); extra == 'devel_hadoop'", "nose-timer; extra == 'devel_hadoop'", "parameterized; extra == 'devel_hadoop'", "paramiko; extra == 'devel_hadoop'", "pre-commit; extra == 'devel_hadoop'", "pysftp; extra == 'devel_hadoop'", "pywinrm; extra == 'devel_hadoop'", "qds-sdk (>=1.9.6); extra == 'devel_hadoop'", "rednose; extra == 'devel_hadoop'", "requests-mock; extra == 'devel_hadoop'", "yamllint; extra == 'devel_hadoop'", "mypy; extra == 'devel_hadoop'", "kubernetes (>=3.0.0); extra == 'devel_hadoop'", "cryptography (>=2.0.0); extra == 'devel_hadoop'", "mysqlclient (<1.4,>=1.3.6); extra == 'devel_hadoop'", "sphinx-argparse (>=0.1.13); extra == 'devel_hadoop'", "sphinx-autoapi (==1.0.0); extra == 'devel_hadoop'", "sphinx-rtd-theme (>=0.1.6); extra == 'devel_hadoop'", "sphinxcontrib-httpdomain (>=1.7.0); extra == 'devel_hadoop'", "bcrypt (>=2.0.0); extra == 'devel_hadoop'", "flask-bcrypt (>=0.7.1); extra == 'devel_hadoop'", "boto3 (<1.8.0,>=1.7.0); extra == 'devel_hadoop'", "cgroupspy (>=0.1.4); extra == 'devel_hadoop'", "hmsclient (>=0.1.0); extra == 'devel_hadoop'", "pyhive (>=0.6.0); extra == 'devel_hadoop'", "snakebite (>=2.7.8); extra == 'devel_hadoop'", "hdfs[avro,dataframe,kerberos] (>=2.0.4); extra == 'devel_hadoop'", "pykerberos (>=1.1.13); extra == 'devel_hadoop'", "requests-kerberos (>=0.10.0); extra == 'devel_hadoop'", "thrift-sasl (>=0.2.0); extra == 'devel_hadoop'", "snakebite[kerberos] (>=2.7.8); extra == 'devel_hadoop'", "sphinx (==1.8.5); (python_version < \"3.0\") and extra == 'devel_hadoop'", "mock; (python_version < \"3.3\") and extra == 'devel_hadoop'", "contextdecorator; (python_version < \"3.4\") and extra == 'devel_hadoop'", "sphinx (>=2.1.2); (python_version >= \"3.0\") and extra == 'devel_hadoop'", "sphinx-argparse (>=0.1.13); extra == 'doc'", "sphinx-autoapi (==1.0.0); extra == 'doc'", "sphinx-rtd-theme (>=0.1.6); extra == 'doc'", "sphinxcontrib-httpdomain (>=1.7.0); extra == 'doc'", "sphinx (==1.8.5); (python_version < \"3.0\") and extra == 'doc'", "sphinx (>=2.1.2); (python_version >= \"3.0\") and extra == 'doc'", "docker (~=3.0); extra == 'docker'", "pydruid (>=0.4.1); extra == 'druid'", "elasticsearch (<6.0.0,>=5.0.0); extra == 'elasticsearch'", "elasticsearch-dsl (<6.0.0,>=5.0.0); extra == 'elasticsearch'", "boto3 (<1.8.0,>=1.0.0); extra == 'emr'", "google-api-python-client (<2.0.0dev,>=1.6.0); extra == 'gcp'", "google-auth-httplib2 (>=0.0.1); extra == 'gcp'", "google-auth (<2.0.0dev,>=1.0.0); extra == 'gcp'", "google-cloud-bigtable (==0.33.0); extra == 'gcp'", "google-cloud-container (>=0.1.1); extra == 'gcp'", "google-cloud-dlp (>=0.11.0); extra == 'gcp'", "google-cloud-language (>=1.1.1); extra == 'gcp'", "google-cloud-spanner (<1.10.0,>=1.7.1); extra == 'gcp'", "google-cloud-storage (~=1.16); extra == 'gcp'", "google-cloud-translate (>=1.3.3); extra == 'gcp'", "google-cloud-videointelligence (>=1.7.0); extra == 'gcp'", "google-cloud-vision (>=0.35.2); extra == 'gcp'", "google-cloud-texttospeech (>=0.4.0); extra == 'gcp'", "google-cloud-speech (>=0.36.3); extra == 'gcp'", "grpcio-gcp (>=0.2.2); extra == 'gcp'", "httplib2 (~=0.9); extra == 'gcp'", "pandas-gbq; extra == 'gcp'", "PyOpenSSL; extra == 'gcp'", "google-api-python-client (<2.0.0dev,>=1.6.0); extra == 'gcp_api'", "google-auth-httplib2 (>=0.0.1); extra == 'gcp_api'", "google-auth (<2.0.0dev,>=1.0.0); extra == 'gcp_api'", "google-cloud-bigtable (==0.33.0); extra == 'gcp_api'", "google-cloud-container (>=0.1.1); extra == 'gcp_api'", "google-cloud-dlp (>=0.11.0); extra == 'gcp_api'", "google-cloud-language (>=1.1.1); extra == 'gcp_api'", "google-cloud-spanner (<1.10.0,>=1.7.1); extra == 'gcp_api'", "google-cloud-storage (~=1.16); extra == 'gcp_api'", "google-cloud-translate (>=1.3.3); extra == 'gcp_api'", "google-cloud-videointelligence (>=1.7.0); extra == 'gcp_api'", "google-cloud-vision (>=0.35.2); extra == 'gcp_api'", "google-cloud-texttospeech (>=0.4.0); extra == 'gcp_api'", "google-cloud-speech (>=0.36.3); extra == 'gcp_api'", "grpcio-gcp (>=0.2.2); extra == 'gcp_api'", "httplib2 (~=0.9); extra == 'gcp_api'", "pandas-gbq; extra == 'gcp_api'", "PyOpenSSL; extra == 'gcp_api'", "Flask-OAuthlib (>=0.9.1); extra == 'github_enterprise'", "oauthlib (!=2.0.3,!=2.0.4,!=2.0.5,<3.0.0,>=1.1.2); extra == 'github_enterprise'", "requests-oauthlib (==1.1.0); extra == 'github_enterprise'", "Flask-OAuthlib (>=0.9.1); extra == 'google_auth'", "oauthlib (!=2.0.3,!=2.0.4,!=2.0.5,<3.0.0,>=1.1.2); extra == 'google_auth'", "requests-oauthlib (==1.1.0); extra == 'google_auth'", "grpcio (>=1.15.0); extra == 'grpc'", "snakebite (>=2.7.8); extra == 'hdfs'", "hmsclient (>=0.1.0); extra == 'hive'", "pyhive (>=0.6.0); extra == 'hive'", "jaydebeapi (>=1.1.1); extra == 'jdbc'", "JIRA (>1.0.7); extra == 'jira'", "pykerberos (>=1.1.13); extra == 'kerberos'", "requests-kerberos (>=0.10.0); extra == 'kerberos'", "thrift-sasl (>=0.2.0); extra == 'kerberos'", "snakebite[kerberos] (>=2.7.8); extra == 'kerberos'", "kubernetes (>=3.0.0); extra == 'kubernetes'", "cryptography (>=2.0.0); extra == 'kubernetes'", "ldap3 (>=2.5.1); extra == 'ldap'", "pymongo (>=3.6.0); extra == 'mongo'", "dnspython (<2.0.0,>=1.13.0); extra == 'mongo'", "pymssql (>=2.1.1); extra == 'mssql'", "mysqlclient (<1.4,>=1.3.6); extra == 'mysql'", "cx-Oracle (>=5.1.2); extra == 'oracle'", "papermill[all] (>=1.0.0); extra == 'papermill'", "nteract-scrapbook[all] (>=0.2.1); extra == 'papermill'", "bcrypt (>=2.0.0); extra == 'password'", "flask-bcrypt (>=0.7.1); extra == 'password'", "pinotdb (==0.1.1); extra == 'pinot'", "psycopg2 (<2.8,>=2.7.4); extra == 'postgres'", "qds-sdk (>=1.10.4); extra == 'qds'", "librabbitmq (>=1.6.1); extra == 'rabbitmq'", "redis (~=3.2); extra == 'redis'", "boto3 (<1.8.0,>=1.7.0); extra == 's3'", "simple-salesforce (>=0.72); extra == 'salesforce'", "pysmbclient (>=0.1.3); extra == 'samba'", "analytics-python (>=1.2.9); extra == 'segment'", "sendgrid (<6,>=5.2.0); extra == 'sendgrid'", "slackclient (<2.0.0,>=1.0.0); extra == 'slack'", "snowflake-connector-python (>=1.5.2); extra == 'snowflake'", "snowflake-sqlalchemy (>=1.1.0); extra == 'snowflake'", "paramiko (>=2.1.1); extra == 'ssh'", "pysftp (>=0.2.9); extra == 'ssh'", "sshtunnel (<0.2,>=0.1.4); extra == 'ssh'", "statsd (<4.0,>=3.0.1); extra == 'statsd'", "vertica-python (>=0.5.1); extra == 'vertica'", "virtualenv; extra == 'virtualenv'", "hdfs[avro,dataframe,kerberos] (>=2.0.4); extra == 'webhdfs'", "pywinrm (==0.2.2); extra == 'winrm'" ], "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "summary": "Programmatically author, schedule and monitor data pipelines", "version": "1.10.5" }, "last_serial": 5970352, "releases": { "1.10.5": [ { "comment_text": "", "digests": { "md5": "0bcf2ec005ba483b94a75d3690e28edd", "sha256": "8c79bf4144c208133dc6d4ca79a928bd8291b170149404f3486992c506fad0d7" }, "downloads": -1, "filename": "edu_airflow-1.10.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0bcf2ec005ba483b94a75d3690e28edd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 3509327, "upload_time": "2019-10-14T08:17:32", "url": "https://files.pythonhosted.org/packages/40/ad/f175784358cc2a655ddc1bbc0be814678d9ed8d9933f4a509d40ec4d81dc/edu_airflow-1.10.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e8181501caa1e08b9bc9428b619e53c", "sha256": "e28c63ca2a235540cf640870ef6d4df9d254822bd0a7c1d4b7a915259cc15b88" }, "downloads": -1, "filename": "edu-airflow-1.10.5.tar.gz", "has_sig": false, "md5_digest": "5e8181501caa1e08b9bc9428b619e53c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 2936308, "upload_time": "2019-10-14T08:17:39", "url": "https://files.pythonhosted.org/packages/c1/50/a20c6b2ccf7b14b0fb7b9b51fd09e2fb85d461bd5d98299a670ac882f0fe/edu-airflow-1.10.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0bcf2ec005ba483b94a75d3690e28edd", "sha256": "8c79bf4144c208133dc6d4ca79a928bd8291b170149404f3486992c506fad0d7" }, "downloads": -1, "filename": "edu_airflow-1.10.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0bcf2ec005ba483b94a75d3690e28edd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 3509327, "upload_time": "2019-10-14T08:17:32", "url": "https://files.pythonhosted.org/packages/40/ad/f175784358cc2a655ddc1bbc0be814678d9ed8d9933f4a509d40ec4d81dc/edu_airflow-1.10.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e8181501caa1e08b9bc9428b619e53c", "sha256": "e28c63ca2a235540cf640870ef6d4df9d254822bd0a7c1d4b7a915259cc15b88" }, "downloads": -1, "filename": "edu-airflow-1.10.5.tar.gz", "has_sig": false, "md5_digest": "5e8181501caa1e08b9bc9428b619e53c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 2936308, "upload_time": "2019-10-14T08:17:39", "url": "https://files.pythonhosted.org/packages/c1/50/a20c6b2ccf7b14b0fb7b9b51fd09e2fb85d461bd5d98299a670ac882f0fe/edu-airflow-1.10.5.tar.gz" } ] }