Apache Airflow - OpenApi Client for Python

Clone this repo:
  1. 1b5ca49 Update links in PyPi (#14) by Sumit Maheshwari · 12 days ago master
  2. b2c0e2e Update the Readme (#13) by Sumit Maheshwari · 14 days ago
  3. 8d56d7b Rename airflow-client to apache-airflow-client (#12) by Sumit Maheshwari · 3 weeks ago
  4. 5716241 Fix release guide with correct prefix dir (#11) by Sumit Maheshwari · 4 weeks ago
  5. dd1b4ad Add README_RELEASE_CLIENT (#10) by Sumit Maheshwari · 4 weeks ago

Apache Airflow Python Client

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 git@github.com: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

# The client must use the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
#
# In case of the basic authentication below, make sure that Airflow is
# configured with the basic_auth as backend:
#
# auth_backend = airflow.api.auth.backend.basic_auth
#
# Make sure that your user/name are configured properly

# 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 git@github.com:apache/airflow-client-python.git

# clone Airflow repo (if not already)
git clone git@github.com:apache/airflow.git
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)