# INSTALL / BUILD instructions for Apache Airflow Python Client

This ia a generic installation method that requires a number of dependencies to be installed.

Depending on your system you might need different prerequisites, but the Python3.6 or above is a must.

# [required] fetch the tarball and untar the source move into the directory that was untarred.

# [optional] run Apache RAT (release audit tool) to validate license headers
# RAT docs here: https://creadur.apache.org/rat/. Requires Java and Apache Rat
java -jar apache-rat.jar -E ./.rat-excludes -d .

# [optional] You may want to install the client into a virtual env to keep the
# dependencies separated from the system wide versions

python3 -m venv PATH_TO_YOUR_VENV
source PATH_TO_YOUR_VENV/bin/activate

# [required] building and installing by pip (preferred)
pip install .

# or directly
python setup.py install

