-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
108 lines (102 loc) · 3.79 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# SPDX-FileCopyrightText: 2023 Ross Patterson <[email protected]>
#
# SPDX-License-Identifier: MIT
[build-system]
# https://setuptools.pypa.io/en/latest/build_meta.html#how-to-use-it
requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
# Use VCS tags as the sole authority on versions. Get the current version from VCS tags:
# https://github.com/pypa/setuptools_scm#pyprojecttoml-usage
write_to = "src/prunerr/version.py"
# Uncomment to test uploading to PyPI locally
# local_scheme = "no-local-version"
[tool.pylint.main]
# The `duplicate-code` and other checks depend on not running in parallel:
jobs = 1
output-format = "colorized"
ignore-paths = [
# Managed by tools, best to use `# pylint: disable=` inline comments for any other
# ignores:
"src/.+/version.py",
".*/src/.+/version.py",
]
# Extend linting to usage of trusted extension packages
extension-pkg-allow-list = ["lxml"]
# Update the list of extensions or plugins with:
# $ pylint --list-extensions
load-plugins = [
"pylint.extensions.confusing_elif",
"pylint.extensions.dict_init_mutate",
"pylint.extensions.eq_without_hash",
"pylint.extensions.typing",
"pylint.extensions.consider_refactoring_into_while_condition",
"pylint.extensions.no_self_use",
"pylint.extensions.bad_builtin",
"pylint.extensions.set_membership",
"pylint.extensions.emptystring",
"pylint.extensions.comparison_placement",
"pylint.extensions.magic_value",
"pylint.extensions.code_style",
"pylint.extensions.redefined_loop_name",
"pylint.extensions.private_import",
"pylint.extensions.while_used",
"pylint.extensions.check_elif",
"pylint.extensions.mccabe",
"pylint.extensions.consider_ternary_expression",
"pylint.extensions.comparetozero",
"pylint.extensions.docparams",
"pylint.extensions.docstyle",
"pylint.extensions.broad_try_clause",
"pylint.extensions.redefined_variable_type",
"pylint.extensions.for_any_all",
"pylint.extensions.dunder",
"pylint.extensions.empty_comment",
"pylint.extensions.overlapping_exceptions",
]
fail-under = 10
[tool.pylint.typecheck]
# Ignore false negatives from external packages
ignored-classes = ["lxml.etree.QName.localname"]
# Match Black's defaults
# https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#pylint
[tool.pylint.format]
max-line-length = "88"
[tool.pylint."messages control"]
disable = [
# Workaround Prospector bug with Pylint:
# https://github.com/PyCQA/prospector/issues/596#issue-1592499675
"relative-beyond-top-level",
"docstring-first-line-empty",
# BBB: Python 3.8 compatibility:
"consider-alternative-union-syntax",
# I'm not sure I agree with PyLiint here. I prefer my `TODO`s to be in the the most
# appropriate context where the change should happen. It helps my recall. If someone
# else wants to take the time to move the `TODO`s into `./TODO.rst`, I won't object as
# long as sufficient context comes along with them.
"fixme",
]
[tool.pylint.parameter_documentation]
accept-no-param-doc = false
accept-no-raise-doc = false
accept-no-return-doc = false
accept-no-yields-doc = false
[[tool.mypy.overrides]]
module = [
# BBB: Compatibility with older Python versions
"backports.cached_property", "pathlib3x",
# Direct dependencies
"transmission_rpc", "arrapi.*",
# Command-line tab completion:
"argcomplete",
# Development and build tools:
"decli", "configobj",
]
ignore_missing_imports = true
[tool.vulture]
# https://github.com/jendrikseipp/vulture#ignoring-files
exclude = ["src/prunerr/version.py"]
[tool.isort]
# Match Black's defaults
# https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#isort
profile = "black"