beets/setup.cfg
Šarūnas Nejus 347911cdee
Introduce Poe the Poet task runner and define tasks.
This makes it easier for people to interact with the project in
a unified manner.
2024-06-10 13:46:25 +01:00

188 lines
5.3 KiB
INI

[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
# record coverage in these two packages
--cov=beets
--cov=beetsplug
# save xml for coverage upload
--cov-report=xml:.reports/coverage.xml
# save html files for local dev use
--cov-report=html:.reports/html
# record coverage across logical branches
--cov-branch
# show which tests cover specific lines in the code (available in HTML)
--cov-context=test
[coverage:run]
data_file = .reports/coverage/data
branch = true
relative_files = true
[coverage:report]
precision = 2
skip_empty = true
show_missing = true
exclude_lines =
pragma: no cover
if TYPE_CHECKING
if typing.TYPE_CHECKING
raise AssertionError
raise NotImplementedError
[coverage:html]
show_contexts = true
[flake8]
min-version = 3.6
accept-encodings = utf-8
max-line-length = 88
docstring-convention = google
# errors we ignore; see https://www.flake8rules.com/ for more info
ignore =
# pycodestyle errors
# continuation line under-indented for hanging indent
E121,
# closing bracket does not match indentation of opening bracket's line
E123,
# continuation line over-indented for hanging indent
E126,
# multiple spaces after non-arithmetic operators (for vertical alignment)
E241,
# expected 2 blank lines after end of function or class
E305,
# do not assign a lambda expression, use a def
E731,
# do not use variables name 'I', 'O', or 'l'
E741,
# pycodestyle warnings: line breaks around binary operators
W503,
W504,
# mccabe errors: function is too complex
C901,
# Exception subclasses should be named with an Error suffix
N818,
# Exclude rules for black compatibility
E203,
E704,
per-file-ignores =
./beet:D
./docs/conf.py:D
./extra/release.py:D
./beetsplug/duplicates.py:D
./beetsplug/bpm.py:D
./beetsplug/autobpm.py:D
./beetsplug/convert.py:D
./beetsplug/info.py:D
./beetsplug/parentwork.py:D
./beetsplug/deezer.py:D
./beetsplug/smartplaylist.py:D
./beetsplug/absubmit.py:D
./beetsplug/subsonicupdate.py:D
./beetsplug/fromfilename.py:D
./beetsplug/mpdstats.py:D
./beetsplug/gmusic.py:D
./beetsplug/subsonicplaylist.py:D
./beetsplug/rewrite.py:D
./beetsplug/hook.py:D
./beetsplug/playlist.py:D
./beetsplug/ftintitle.py:D
./beetsplug/bpd/gstplayer.py:D
./beetsplug/bpd/__init__.py:D
./beetsplug/scrub.py:D
./beetsplug/sonosupdate.py:D
./beetsplug/embyupdate.py:D
./beetsplug/plexupdate.py:D
./beetsplug/mbsync.py:D
./beetsplug/lyrics.py:D
./beetsplug/inline.py:D
./beetsplug/freedesktop.py:D
./beetsplug/acousticbrainz.py:D
./beetsplug/beatport.py:D
./beetsplug/cue.py:D
./beetsplug/thumbnails.py:D
./beetsplug/random.py:D
./beetsplug/loadext.py:D
./beetsplug/replaygain.py:D
./beetsplug/export.py:D
./beetsplug/fuzzy.py:D
./beetsplug/importadded.py:D
./beetsplug/web/__init__.py:D
./beetsplug/bucket.py:D
./beetsplug/the.py:D
./beetsplug/ihate.py:D
./beetsplug/bench.py:D
./beetsplug/permissions.py:D
./beetsplug/spotify.py:D
./beetsplug/lastgenre/__init__.py:D
./beetsplug/limit.py:D
./beetsplug/mbcollection.py:D
./beetsplug/metasync/amarok.py:D
./beetsplug/metasync/itunes.py:D
./beetsplug/metasync/__init__.py:D
./beetsplug/importfeeds.py:D
./beetsplug/kodiupdate.py:D
./beetsplug/zero.py:D
./beetsplug/bpsync.py:D
./beetsplug/__init__.py:D
./beetsplug/edit.py:D
./beetsplug/types.py:D
./beetsplug/embedart.py:D
./beetsplug/mpdupdate.py:D
./beetsplug/ipfs.py:D
./beetsplug/discogs.py:D
./beetsplug/chroma.py:D
./beetsplug/fish.py:D
./beetsplug/missing.py:D
./beetsplug/fetchart.py:D
./beetsplug/mbsubmit.py:D
./beetsplug/filefilter.py:D
./beetsplug/badfiles.py:D
./beetsplug/play.py:D
./beetsplug/keyfinder.py:D
./beetsplug/unimported.py:D
./beetsplug/lastimport.py:D
./test/*:D
./setup.py:D
./beets/ui/__init__.py:D
./beets/ui/commands.py:D
./beets/autotag/mb.py:D
./beets/autotag/hooks.py:D
./beets/autotag/__init__.py:D
./beets/autotag/match.py:D
./beets/__main__.py:D
./beets/importer.py:D
./beets/plugins.py:D
./beets/test/*:D
./beets/util/bluelet.py:D
./beets/util/enumeration.py:D
./beets/util/artresizer.py:D
./beets/util/functemplate.py:D
./beets/util/confit.py:D
./beets/util/pipeline.py:D
./beets/util/hidden.py:D
./beets/util/__init__.py:D
./beets/library.py:D
./beets/random.py:D
./beets/art.py:D
./beets/logging.py:D
./beets/vfs.py:D
./beets/__init__.py:D
./beets/dbcore/query.py:D
./beets/dbcore/db.py:D
./beets/dbcore/__init__.py:D
./beets/dbcore/queryparse.py:D
./beets/dbcore/types.py:D
./beets/mediafile.py:D
[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