Airflow plugins for Rekcurd
Project description
# Rekcurd-airflow
[![Build Status](https://travis-ci.com/rekcurd/airflow-plugin.svg?branch=master)](https://travis-ci.com/rekcurd/airflow-plugin)
[![PyPI version](https://badge.fury.io/py/rekcurd-airflow.svg)](https://badge.fury.io/py/rekcurd-airflow)
[![codecov](https://codecov.io/gh/rekcurd/airflow-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/rekcurd/airflow-plugin "Non-generated packages only")
[![pypi supported versions](https://img.shields.io/pypi/pyversions/rekcurd-airflow.svg)](https://pypi.python.org/pypi/rekcurd-airflow)
Airflow Plugins for [Rekcurd Dashboard](https://github.com/rekcurd/dashboard)
## Environment
- Python 3.6
- apache-airflow >= 1.10.x
- Rekcurd Dashboard >= 0.4.x
## Setup
- Setup Airflow
- Setup Rekcurd Dashboard and get your access token
- Run the following commands
**Use JWT token published by Rekcurd Dashboard as REKCURD_ACCESS_TOKEN for now**
```
# Set the access token and airflow-rekcurd connection to airflow
# Replace the environment variables with your own values.
$ cd $AIRFLOW_HOME
$ airflow variables -s rekcurd_access_token $REKCURD_ACCESS_TOKEN
$ airflow connections -a --conn_id rekcurd_dashboard \
--conn_uri http://$REKCURD_DASHBOARD_HOST:$REKCURD_DASHBOARD_PORT/
$ pip install rekcurd-airflow
```
## Components
You can see example DAGs for the plugins in [here](./dags)
### Operators
- EvaluationUpdateOperator. ([Example DAG](./dags/example_evaluation_upload.py))
- ModelDeleteOperator. ([Example DAG](./dags/example_model_delete.py))
- ModelEvaluateOperator. ([Example DAG](./dags/example_model_evaluate.py))
- ModelSwitchOperator. ([Example DAG](./dags/example_model_switch.py))
- ModelUpdateOperator. ([Example DAG](./dags/example_model_upload.py))
[Overall Example DAG](./dags/example_all.py)
## Test
```
$ cd airflow-plugin # move to the root directory of this repo
# not necessary if you already setup airflow for this repository
$ export AIRFLOW_HOME=`pwd`
$ pip install -r test-requirements.txt
$ airflow initdb
$ fernet_key=`python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"`
$ sed -i -e "s/\(fernet_key =\).*/\1 $fernet_key/" airflow.cfg
$ python -m unittest
```
[![Build Status](https://travis-ci.com/rekcurd/airflow-plugin.svg?branch=master)](https://travis-ci.com/rekcurd/airflow-plugin)
[![PyPI version](https://badge.fury.io/py/rekcurd-airflow.svg)](https://badge.fury.io/py/rekcurd-airflow)
[![codecov](https://codecov.io/gh/rekcurd/airflow-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/rekcurd/airflow-plugin "Non-generated packages only")
[![pypi supported versions](https://img.shields.io/pypi/pyversions/rekcurd-airflow.svg)](https://pypi.python.org/pypi/rekcurd-airflow)
Airflow Plugins for [Rekcurd Dashboard](https://github.com/rekcurd/dashboard)
## Environment
- Python 3.6
- apache-airflow >= 1.10.x
- Rekcurd Dashboard >= 0.4.x
## Setup
- Setup Airflow
- Setup Rekcurd Dashboard and get your access token
- Run the following commands
**Use JWT token published by Rekcurd Dashboard as REKCURD_ACCESS_TOKEN for now**
```
# Set the access token and airflow-rekcurd connection to airflow
# Replace the environment variables with your own values.
$ cd $AIRFLOW_HOME
$ airflow variables -s rekcurd_access_token $REKCURD_ACCESS_TOKEN
$ airflow connections -a --conn_id rekcurd_dashboard \
--conn_uri http://$REKCURD_DASHBOARD_HOST:$REKCURD_DASHBOARD_PORT/
$ pip install rekcurd-airflow
```
## Components
You can see example DAGs for the plugins in [here](./dags)
### Operators
- EvaluationUpdateOperator. ([Example DAG](./dags/example_evaluation_upload.py))
- ModelDeleteOperator. ([Example DAG](./dags/example_model_delete.py))
- ModelEvaluateOperator. ([Example DAG](./dags/example_model_evaluate.py))
- ModelSwitchOperator. ([Example DAG](./dags/example_model_switch.py))
- ModelUpdateOperator. ([Example DAG](./dags/example_model_upload.py))
[Overall Example DAG](./dags/example_all.py)
## Test
```
$ cd airflow-plugin # move to the root directory of this repo
# not necessary if you already setup airflow for this repository
$ export AIRFLOW_HOME=`pwd`
$ pip install -r test-requirements.txt
$ airflow initdb
$ fernet_key=`python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"`
$ sed -i -e "s/\(fernet_key =\).*/\1 $fernet_key/" airflow.cfg
$ python -m unittest
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rekcurd-airflow-0.1.0.tar.gz
(5.8 kB
view details)
Built Distribution
File details
Details for the file rekcurd-airflow-0.1.0.tar.gz
.
File metadata
- Download URL: rekcurd-airflow-0.1.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95e8c3d271daafe59c8b5f9f4c69093cf176c93d13b8348d480a6facac4690f5 |
|
MD5 | 511004598033436d04ed57e88052d2b9 |
|
BLAKE2b-256 | fdb3e26edde3512cf622bd12d0f39393fbba95f3832dfa4092e387a3d9bfaf85 |
File details
Details for the file rekcurd_airflow-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: rekcurd_airflow-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ca18f04c9c31c1d28db93a48f97132c85f1360af559138c1434b5fdaf28378d |
|
MD5 | 47e7f340ea1ce77169f6a217c26e9b09 |
|
BLAKE2b-256 | 00f78f83b6fea2652293cf959bbe24b803ba03b8941926ecbd7f27c37a701588 |