All Projects → apache → airflow-client-python

apache / airflow-client-python

Licence: Apache-2.0 license
Apache Airflow - OpenApi Client for Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to airflow-client-python

airflow-prometheus-exporter
Export Airflow metrics (from mysql) in prometheus format
Stars: ✭ 25 (-85.47%)
Mutual labels:  airflow, apache, apache-airflow
Airflow
Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
Stars: ✭ 24,101 (+13912.21%)
Mutual labels:  airflow, apache, apache-airflow
viewflow
Viewflow is an Airflow-based framework that allows data scientists to create data models without writing Airflow code.
Stars: ✭ 110 (-36.05%)
Mutual labels:  airflow, apache-airflow
airflow-code-editor
A plugin for Apache Airflow that allows you to edit DAGs in browser
Stars: ✭ 195 (+13.37%)
Mutual labels:  airflow, apache-airflow
ap-airflow
Astronomer Core Docker Images
Stars: ✭ 87 (-49.42%)
Mutual labels:  airflow, apache
airflow-boilerplate
A complete development environment setup for working with Airflow
Stars: ✭ 94 (-45.35%)
Mutual labels:  airflow, apache-airflow
openverse-catalog
Identifies and collects data on cc-licensed content across web crawl data and public apis.
Stars: ✭ 27 (-84.3%)
Mutual labels:  airflow, apache-airflow
airflow-user-management-plugin
A plugin for Apache Airflow that allows you to manage the users that can login
Stars: ✭ 13 (-92.44%)
Mutual labels:  airflow, apache-airflow
Beyond Jupyter
🐍💻📊 All material from the PyCon.DE 2018 Talk "Beyond Jupyter Notebooks - Building your own data science platform with Python & Docker" (incl. Slides, Video, Udemy MOOC & other References)
Stars: ✭ 135 (-21.51%)
Mutual labels:  airflow, apache
Awesome Apache Airflow
Curated list of resources about Apache Airflow
Stars: ✭ 2,755 (+1501.74%)
Mutual labels:  airflow, apache-airflow
fairflow
Functional Airflow DAG definitions.
Stars: ✭ 38 (-77.91%)
Mutual labels:  airflow, apache-airflow
Insight-GDELT-Feed
A way for home buyers to know about factors affecting a state
Stars: ✭ 43 (-75%)
Mutual labels:  airflow, apache
airflow-site
Apache Airflow Website
Stars: ✭ 95 (-44.77%)
Mutual labels:  airflow, apache
mod csrfprotector
apache 2.x.x module, for CSRF mitigation
Stars: ✭ 20 (-88.37%)
Mutual labels:  apache
apache-airflow-cloudera-parcel
Parcel for Apache Airflow
Stars: ✭ 16 (-90.7%)
Mutual labels:  airflow
T-Watch
Real Time Twitter Sentiment Analysis Product
Stars: ✭ 20 (-88.37%)
Mutual labels:  airflow
qpid-python
Mirror of Apache Qpid Python
Stars: ✭ 15 (-91.28%)
Mutual labels:  apache
TinyWebDB-PHP
TinyWebDB System written in PHP
Stars: ✭ 13 (-92.44%)
Mutual labels:  apache
k3ai
A lightweight tool to get an AI Infrastructure Stack up in minutes not days. K3ai will take care of setup K8s for You, deploy the AI tool of your choice and even run your code on it.
Stars: ✭ 105 (-38.95%)
Mutual labels:  airflow
apache 2fa
Apache two-factor (2FA) authentication with Google Authenticator based on Time-based One-Time Password (TOTP) or HMAC-based one-time password (HOTP) Algorithms.
Stars: ✭ 63 (-63.37%)
Mutual labels:  apache

Apache Airflow Python Client

NOTE: The Apache Airflow Client is still under active development and some methods or APIs might be broken. Please raise an issue in github if you encounter any such issues.

Requirements.

Python >= 3.6

Installation & Usage

pip install

You can install directly using pip:

pip install apache-airflow-client

Setuptools

Or install via Setuptools.

git clone [email protected]:apache/airflow-client-python.git
cd airflow-client-python
python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import airflow_client.client

Getting Started

Please follow the installation procedure and then run the following:

import airflow_client.client
from pprint import pprint
from airflow_client.client.api import config_api

#
# In case of the basic authentication below. Make sure:
#  - Airflow is configured with the basic_auth as backend:
#     auth_backend = airflow.api.auth.backend.basic_auth
#  - Make sure that the client has been generated with securitySchema Basic.

# Configure HTTP basic authorization: Basic
configuration = airflow_client.client.Configuration(
    host="http://localhost/api/v1",
    username='admin',
    password='admin'
)


# Enter a context with an instance of the API client
with airflow_client.client.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = config_api.ConfigApi(api_client)

    try:
        # Get current configuration
        api_response = api_instance.get_config()
        pprint(api_response)
    except airflow_client.client.ApiException as e:
        print("Exception when calling ConfigApi->get_config: %s\n" % e)

See README for full client API documentation.

Release Process

The Python client is generated using Airflow's openapi spec. To update the client for new APIs do the following steps:

# clone this repo
git clone [email protected]:apache/airflow-client-python.git

# clone Airflow repo (if not already)
git clone [email protected]:apache/airflow.git

Edit the file airflow/airflow/api_connexion/openapi/v1.yaml Make sure it has the following securitySchemas listed under security section

security: 
  - Basic: []
  - GoogleOpenId: []
  - Kerberos: []

If your deployment of Airflow uses any different authentication mechanism than the three listed above, you might need to make further changes to the v1.yaml and generate your own client, see OpenAPI Schema specification for details. (These changes should not be commited to the upstream v1.yaml as it will generate misleading openapi documentaion)

cd airflow

# bump up the version in python.sh & run the following command 
./clients/gen/python.sh airflow/api_connexion/openapi/v1.yaml ../airflow-client-python/airflow_client

# raise a PR in github for both the repos (airflow & airflow-client-python)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].