A Pylint plugin to lint Apache Airflow code.
Project description
Pylint plugin for static code analysis on Airflow code.
Usage
Installation:
pip install pylint-airflow
Usage:
pylint --load-plugins=pylint_airflow [your_file]
This plugin runs on Python 3.6 and higher.
Error codes
The Pylint-Airflow codes follow the structure {I,C,R,W,E,F}83{0-9}{0-9}, where:
The characters show:
I = Info
C = Convention
R = Refactor
W = Warning
E = Error
F = Fatal
83 is the base id (see all here https://github.com/PyCQA/pylint/blob/master/pylint/checkers/__init__.py)
{0-9}{0-9} is any number 00-99
The current codes are:
Code |
Symbol |
Description |
---|---|---|
C8300 |
different-operator-varname-taskid |
For consistency assign the same variable name and task_id to operators. |
C8301 |
match-callable-taskid |
For consistency name the callable function ‘_[task_id]’, e.g. PythonOperator(task_id=’mytask’, python_callable=_mytask). |
C8302 |
mixed-dependency-directions |
For consistency don’t mix directions in a single statement, instead split over multiple statements. |
C8303 |
task-no-dependencies |
Sometimes a task without any dependency is desired, however often it is the result of a forgotten dependency. |
C8304 |
task-context-argname |
Indicate you expect Airflow task context variables in the **kwargs argument by renaming to **context. |
C8305 |
task-context-separate-arg |
To avoid unpacking kwargs from the Airflow task context in a function, you can set the needed variables as arguments in the function. |
C8306 |
match-dagid-filename |
For consistency match the DAG filename with the dag_id. |
R8300 |
unused-xcom |
Return values from a python_callable function or execute() method are automatically pushed as XCom. |
W8300 |
basehook-top-level |
Airflow executes DAG scripts periodically and anything at the top level of a script is executed. Therefore, move BaseHook calls into functions/hooks/operators. |
E8300 |
duplicate-dag-name |
DAG name should be unique. |
E8301 |
duplicate-task-name |
Task name within a DAG should be unique. |
E8302 |
duplicate-dependency |
Task dependencies can be defined only once. |
E8303 |
dag-with-cycles |
A DAG is acyclic and cannot contain cycles. |
E8304 |
task-no-dag |
A task must know a DAG instance to run. |
Documentation
Documentation is available on Read the Docs.
Contributing
Suggestions for more checks are always welcome, please create an issue on GitHub. Read CONTRIBUTING.rst for more details.
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
Built Distribution
Hashes for pylint_airflow-0.1.0a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 530a43e902831f2806dc3f672c7eb46ac1378106c400a04dce2ea1ccd5c4d0c3 |
|
MD5 | c8fba07d31ad7d45b16f91212414c971 |
|
BLAKE2b-256 | 5f795fff2161bfecfc249eb8050685e2403488d83290ac4e6237781176f3968e |