-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
98 lines (81 loc) · 2.94 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
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "reload"
readme = "README.md"
authors = [{name = "Dan Pascu", email = "dan@aethereal.link"}]
license = {file = "LICENSE"}
classifiers = [
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Operating System :: POSIX :: BSD",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
requires-python = ">=3.12"
dynamic = ["version", "description"]
dependencies = ["aioice", "lxml", "pyopenssl"]
[project.optional-dependencies]
test = ["pytest >=6.0", "pytest-cov", "trustme"]
devel = ["reload[test]", "flit", "ruff", "mypy@git+https://github.com/python/mypy", "lxml-stubs", "types-pyOpenSSL"]
[tool.coverage.report]
exclude_also = [
"assert_never\\(\\w+\\)",
"case [^:]+:\\n\\s+assert_never\\(\\w+\\)",
]
[tool.flit.sdist]
include = ["docs/", "tests/"]
exclude = ["tests/sandbox/", "tests/__pycache__/"]
[tool.pytest.ini_options]
addopts = "-ra -v"
testpaths = ["tests"]
norecursedirs = ["sandbox"]
[tool.mypy]
enable_incomplete_feature = "NewGenericSyntax"
disable_bytearray_promotion = true
disable_memoryview_promotion = true
check_untyped_defs = true
warn_unreachable = true
warn_redundant_casts = true
warn_unused_ignores = true
# strict_equality = true
[tool.pyright]
disableBytesTypePromotions=true
[tool.ruff]
preview = true
line-length = 200
extend-exclude = ["_darcs", ".idea", ".mypy_cache", ".pytest_cache"]
[tool.ruff.format]
docstring-code-format = true
quote-style = "single"
# A005 - shadowing python module names (unnecessarily restrictive)
# CPY001 - missing copyright seems buggy (gives false positives)
# DOC201 - require return specification in docstring (too restrictive - review)
# DOC501 - require raise specification in docstring (too restrictive - review)
# EM1XX, TRY003 - messages in raised exceptions (too restrictive)
[tool.ruff.lint]
select = ["ALL"]
ignore = ["D1", "D202", "D203", "D212", "D400", "A005", "CPY001", "DOC201", "DOC501", "EM1", "N818", "SIM108", "TD003", "TRY003"]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["INP001", "PLC1901", "PLC2701", "PLR2004", "PLR6301", "S101", "S105", "S106"]
[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"
[tool.ruff.lint.mccabe]
max-complexity = 10
[tool.ruff.lint.pycodestyle]
ignore-overlong-task-comments = true
[tool.ruff.lint.pydocstyle]
convention = "pep257"
[tool.ruff.lint.pylint]
max-args = 7