Metadata-Version: 2.4
Name: airflow-priority
Version: 1.2.0
Summary: Priority Tags for Airflow Dags
Project-URL: Repository, https://github.com/airflow-laminar/airflow-priority
Project-URL: Homepage, https://github.com/airflow-laminar/airflow-priority
Author-email: the airflow-priority authors <t.paine154@gmail.com>
License: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Requires-Dist: apache-airflow<3,>=2
Provides-Extra: aws
Requires-Dist: boto3; extra == 'aws'
Requires-Dist: botocore; extra == 'aws'
Provides-Extra: config
Requires-Dist: airflow-config>=0.1.2; extra == 'config'
Provides-Extra: datadog
Requires-Dist: datadog-api-client; extra == 'datadog'
Provides-Extra: develop
Requires-Dist: airflow-config>=0.1.2; extra == 'develop'
Requires-Dist: boto3; extra == 'develop'
Requires-Dist: botocore; extra == 'develop'
Requires-Dist: build; extra == 'develop'
Requires-Dist: bump-my-version; extra == 'develop'
Requires-Dist: check-manifest; extra == 'develop'
Requires-Dist: datadog-api-client; extra == 'develop'
Requires-Dist: discord-py; extra == 'develop'
Requires-Dist: hatchling; extra == 'develop'
Requires-Dist: httpx; extra == 'develop'
Requires-Dist: newrelic-telemetry-sdk; extra == 'develop'
Requires-Dist: opsgenie-sdk; extra == 'develop'
Requires-Dist: pytest; extra == 'develop'
Requires-Dist: pytest-cov; extra == 'develop'
Requires-Dist: ruff; extra == 'develop'
Requires-Dist: slack-sdk; extra == 'develop'
Requires-Dist: twine; extra == 'develop'
Requires-Dist: uv; extra == 'develop'
Requires-Dist: wheel; extra == 'develop'
Provides-Extra: discord
Requires-Dist: discord-py; extra == 'discord'
Provides-Extra: newrelic
Requires-Dist: newrelic-telemetry-sdk; extra == 'newrelic'
Provides-Extra: opsgenie
Requires-Dist: opsgenie-sdk; extra == 'opsgenie'
Provides-Extra: slack
Requires-Dist: slack-sdk; extra == 'slack'
Provides-Extra: symphony
Requires-Dist: httpx; extra == 'symphony'
Description-Content-Type: text/markdown

# airflow-priority

Priority Tags for Airflow Dags

[![Build Status](https://github.com/airflow-laminar/airflow-priority/actions/workflows/build.yml/badge.svg?branch=main&event=push)](https://github.com/airflow-laminar/airflow-priority/actions/workflows/build.yml)
[![codecov](https://codecov.io/gh/airflow-laminar/airflow-priority/branch/main/graph/badge.svg)](https://codecov.io/gh/airflow-laminar/airflow-priority)
[![License](https://img.shields.io/github/license/airflow-laminar/airflow-priority)](https://github.com/airflow-laminar/airflow-priority)
[![PyPI](https://img.shields.io/pypi/v/airflow-priority.svg)](https://pypi.python.org/pypi/airflow-priority)

## Overview

This repo provides an [Airflow Plugin](https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/plugins.html) for priority-driven DAG failure alerting.
In layman's terms, one need only add a [tag](https://airflow.apache.org/docs/apache-airflow/stable/howto/add-dag-tags.html) to their DAG in `P1, P2, P3, P4, P5`, where `P1` corresponds to highest priority and `P5` corresponds to lowest, and that dag will send a notification to a backend integration.

[See the documentation for more information on getting started](https://airflow-laminar.github.io/airflow-priority/docs/src/introduction.html)

## Integrations

| Integration                          | Metric / Tag                                                      | Docs |
| :----------------------------------- | :---------------------------------------------------------------- |:-----|
| [Datadog](https://www.datadoghq.com) | `airflow.custom.priority.p{1,2,3,4,5}.{failed,succeeded,running}` | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/datadog.html) |
| [Discord](http://discord.com)        | `N/A`                                                             | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/discord.html) |
| [New Relic](https://newrelic.com)    | `airflow.custom.priority.p{1,2,3,4,5}.{failed,succeeded,running}` | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/newrelic.html) |
| [OpsGenie](https://www.atlassian.com/software/opsgenie) | `N/A`                                          | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/opsgenie.html) |
| [Slack](http://slack.com)            | `N/A`                                                             | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/slack.html) |
| [Symphony](http://symphony.com)      | `N/A`                                                             | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/symphony.html) |
| [Cloudwatch](https://aws.amazon.com/cloudwatch/) | `airflow.custom.priority.p{1,2,3,4,5}.{failed,succeeded,running}` | [Link](https://airflow-laminar.github.io/airflow-priority/docs/src/cloudwatch.html) |

## Installation

You can install from pip:

```bash
pip install airflow-priority
```

Or via conda:

```bash
conda install airflow-priority -c conda-forge
```

## License

This software is licensed under the Apache 2.0 license. See the [LICENSE](LICENSE) file for details.
