[build-system]
requires = ["setuptools>=82.0.1", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "phonometry"
dynamic = ["version"]
authors = [
  { name="Jose Manuel Requena Plens", email="jmrplens@gmail.com" },
]
description = "Acoustic measurement toolkit: fractional octave-band filters, A/C/Z and time weighting, and sound level metrology per IEC 61260-1 and IEC 61672-1."
readme = "README.md"
requires-python = ">=3.13"
classifiers = [
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Intended Audience :: Science/Research",
    "Topic :: Multimedia :: Sound/Audio :: Analysis",
    "Topic :: Scientific/Engineering :: Physics",
    "Typing :: Typed",
]
dependencies = [
    "numpy>=2.4.4",
    "scipy>=1.17.1",
]

[project.optional-dependencies]
perf = ["numba>=0.65.1"]
plot = ["matplotlib>=3.10.9"]
full = ["numba>=0.65.1", "matplotlib>=3.10.9"]

[project.urls]
"Homepage" = "https://github.com/jmrplens/phonometry"
"Bug Tracker" = "https://github.com/jmrplens/phonometry/issues"

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
phonometry = ["py.typed"]

[tool.setuptools.dynamic]
version = {file = "VERSION"}

[tool.mypy]
python_version = "3.13"
strict = true
ignore_missing_imports = true

[tool.bandit]
exclude_dirs = ["tests", ".venv"]

[tool.coverage.run]
relative_files = true

[tool.pytest.ini_options]
filterwarnings = [
    "ignore:Low sampling rate:UserWarning",
]