[pycodestyle]
max-line-length=119
ignore = E203,W503

[pydocstyle]
# convention = numpy
# Below is equivalent to numpy convention + D400 and D205
ignore = D107,D203,D205,D212,D213,D400,D402,D413,D415,D416,D417

[tool:pytest]
xfail_strict = true
addopts = --cov-report term-missing --cov librosa --cov-report=xml --mpl --mpl-baseline-path=tests/baseline_images/test_display
# ignoring deprecation warnings from packages that we're phasing out anyway
filterwarnings =
    ignore::DeprecationWarning:audioread.*
    ignore::DeprecationWarning:resampy.*

[flake8]
count = True
statistics = True
show_source = True
select =
    E9,
    F63,
    F7,
    F82

[metadata]
name = librosa
version = attr: librosa.version.version
description = Python module for audio and music processing
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8
url = https://librosa.org
author = Brian McFee, librosa development team
author_email = brian.mcfee@nyu.edu
license = ISC
license_file = LICENSE.md
license_file_content_type = text/markdown; charset=UTF-8
project_urls =
    Documentation = https://librosa.org/doc
    Download = https://github.com/librosa/librosa/releases
    Source = https://github.com/librosa/librosa
    Tracker = https://github.com/librosa/librosa/issues
    Discussion forum = https://groups.google.com/g/librosa
classifiers =
    License :: OSI Approved :: ISC License (ISCL)
    Programming Language :: Python
    Development Status :: 3 - Alpha
    Intended Audience :: Developers
    Topic :: Multimedia :: Sound/Audio :: Analysis
    Framework :: Matplotlib
    Programming Language :: Python :: 3
    Programming Language :: Python :: 3.7
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    Programming Language :: Python :: 3.12

[options]
packages = find:
include_package_data = True
install_requires =
    audioread >= 2.1.9
    numpy >= 1.20.3, != 1.22.0, != 1.22.1, != 1.22.2
    scipy >= 1.2.0
    scikit-learn >= 0.20.0
    joblib >= 0.14
    decorator >= 4.3.0
    numba >= 0.51.0
    soundfile >= 0.12.1
    pooch >= 1.1
    soxr >= 0.3.2
    typing_extensions >= 4.1.1
    lazy_loader >= 0.1
    msgpack >= 1.0

python_requires = >=3.7
zip_safe = False

[options.package_data]
librosa =
    util/example_data/*
    py.typed
    core/intervals.msgpack

[options.extras_require]
docs =
    numpydoc
    sphinx != 1.3.1
    sphinx_rtd_theme>=1.2.0
    numba >= 0.51
    matplotlib >= 3.5.0
    sphinx-multiversion >= 0.2.3
    sphinx-gallery >= 0.7
    mir_eval >= 0.5
    ipython >= 7.0
    sphinxcontrib-svg2pdfconverter
    presets
    sphinx-copybutton >= 0.5.2
tests =
    matplotlib >= 3.5.0
    packaging >= 20.0
    pytest-mpl
    pytest-cov
    pytest
    samplerate
    resampy >= 0.2.2
    types-decorator
display =
    matplotlib >= 3.5.0


[mypy]
check_untyped_defs = True
allow_redefinition = True
follow_imports = silent
strict = True
disallow_untyped_defs = False
disallow_incomplete_defs = False
disallow_untyped_calls = False
disallow_any_generics = False
disallow_subclassing_any = False
plugins = numpy.typing.mypy_plugin

; Ignore libraries for which no type annotations are available.
[mypy-scipy.*]
ignore_missing_imports = True

[mypy-soundfile.*]
ignore_missing_imports = True

[mypy-audioread.*]
ignore_missing_imports = True

[mypy-sklearn.*]
ignore_missing_imports = True

[mypy-matplotlib.*]
ignore_missing_imports = True

[mypy-numba.*]
ignore_missing_imports = True

[mypy-decorator.*]
ignore_missing_imports = True

[mypy-joblib.*]
ignore_missing_imports = True

[mypy-pooch.*]
ignore_missing_imports = True

[mypy-lazy_loader.*]
ignore_missing_imports = True

[mypy-soxr.*]
ignore_missing_imports = True

[mypy-msgpack.*]
ignore_missing_imports = True

[mypy-packaging.*]
ignore_missing_imports = True

