| # 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-otava" |
| version = "1.0.0" |
| description = "Apache Otava (Incubating): Change Detection for Continuous Performance Engineering" |
| readme = "README.md" |
| requires-python = ">=3.10,<3.15" |
| license = { text = "Apache-2.0" } |
| authors = [ |
| { name = "Apache Otava (Incubating)", email = "dev@otava.apache.org" } |
| ] |
| maintainers = [ |
| { name = "Apache Otava (Incubating)", email = "dev@otava.apache.org" } |
| ] |
| classifiers = [ |
| "License :: OSI Approved :: Apache Software License", |
| "Programming Language :: Python :: 3.10", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| "Programming Language :: Python :: 3.13", |
| "Programming Language :: Python :: 3.14", |
| ] |
| dependencies = [ |
| "dateparser>=1.0.0", |
| "numpy==2.2.0.*", |
| "python-dateutil>=2.9.0", |
| "ruamel.yaml==0.18.16", |
| "requests>=2.32.5", |
| "pystache>=0.6.8", |
| "tabulate>=0.9.0", |
| "validators>=0.35.0", |
| "slack-sdk>=3.39.0", |
| "google-cloud-bigquery>=3.38.0", |
| "pg8000>=1.31.5", |
| "configargparse>=1.7.1", |
| "expandvars>=0.12.0", |
| |
| # For Python 3.10: last series that supports it |
| "scipy>=1.15,<1.16; python_version < '3.11'", |
| |
| # For Python 3.11–3.14: newer series |
| "scipy>=1.16,<1.17; python_version >= '3.11'", |
| ] |
| |
| [project.optional-dependencies] |
| dev = [ |
| "pytest>=9.0.1", |
| "pytest-benchmark>=5.2.3", |
| "pytz==2025.2", |
| "tox==4.32.0", |
| "flake8>=7.3.0", |
| "autoflake>=2.3.1", |
| "isort>=7.0.0", |
| "ruff>=0.14.8", |
| "pre-commit==4.5.0", |
| ] |
| |
| [project.scripts] |
| otava = "otava.main:main" |
| |
| [project.urls] |
| Homepage = "https://otava.apache.org" |
| Documentation = "https://otava.apache.org/docs/overview" |
| Repository = "https://github.com/apache/otava" |
| "Bug Tracker" = "https://github.com/apache/otava/issues" |
| |
| [build-system] |
| requires = ["hatchling"] |
| build-backend = "hatchling.build" |
| |
| [tool.hatch.build.targets.wheel] |
| packages = ["otava"] |
| |
| [tool.pytest.ini_options] |
| filterwarnings = [ |
| "ignore::DeprecationWarning:future", |
| "ignore::pytest.PytestCollectionWarning", |
| ] |
| |
| [tool.ruff] |
| line-length = 100 |
| |
| [tool.isort] |
| profile = "black" |