[tool:pytest]
# do not litter the working directory
cache_dir = /tmp/pytest_cache
# slightly more verbose output
console_output_style = count
addopts =
    # show all skipped/failed/xfailed tests in the summary except passed
    -ra
    --strict-config
markers =
    on_lyrics_update: mark a test to run only after lyrics source code is updated
    integration_test: mark a test as an integration test

[coverage:run]
data_file = .reports/coverage/data
branch = true
relative_files = true
omit = 
    beets/test/*
    beetsplug/_typing.py

[coverage:report]
precision = 2
skip_empty = true
show_missing = true
exclude_also =
    @atexit.register
    if TYPE_CHECKING
    if typing.TYPE_CHECKING
    raise AssertionError
    raise NotImplementedError

[coverage:html]
show_contexts = true

[mypy]
files = beets,beetsplug,test,extra,docs
allow_any_generics = false
# FIXME: Would be better to actually type the libraries (if under our control),
# or write our own stubs. For now, silence errors
ignore_missing_imports = true
namespace_packages = true
explicit_package_bases = true

# Temporary, until we decide on a mypy
# config for all files.
[[mypy-beets.plugins]]
disallow_untyped_decorators = true
disallow_any_generics = true
check_untyped_defs = true
allow_redefinition = true
