blob: 8bd4e184e8cbbda8d0c8514d85d88d84b7ca80d9 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[project]
name = "apache-airflow-shared-observability"
description = "Shared observability code for Airflow distributions"
version = "0.0"
classifiers = [
"Private :: Do Not Upload",
]
dependencies = [
"pendulum>=3.1.0",
"pygtrie>=2.5.0",
"structlog>=25.4.0",
"methodtools>=0.4.7",
]
[project.optional-dependencies]
"otel" = [
"opentelemetry-api>=1.27.0",
"opentelemetry-exporter-otlp>=1.27.0",
"opentelemetry-proto<9999,>=1.27.0",
]
"statsd" = [
"statsd>=3.3.0",
]
"datadog" = [
"datadog>=0.50.0",
]
"all" = ["apache-airflow-shared-observability[otel,statsd,datadog]"]
[dependency-groups]
dev = [
"apache-airflow-devel-common",
"apache-airflow-shared-observability[all]",
]
[build-system]
requires = [
"hatchling==1.29.0",
"packaging==26.0",
"pathspec==1.0.4",
"pluggy==1.6.0",
"tomli==2.4.0; python_version < '3.11'",
"trove-classifiers==2026.1.14.14",
]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/airflow_shared"]
[tool.ruff]
extend = "../../pyproject.toml"
src = ["src"]
[tool.ruff.lint.per-file-ignores]
# Ignore Doc rules et al for anything outside of tests
"!src/*" = ["D", "S101", "TRY002"]