summaryrefslogtreecommitdiff
path: root/pyproject.toml
blob: d14ca17f33dc81d88d4f91855451f65ea0f8b2f5 (plain)
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
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt

[build-system]
requires = ['setuptools']
build-backend = 'setuptools.build_meta'

[tool.mypy]
check_untyped_defs = true
disallow_any_generics = true
disallow_incomplete_defs = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
disallow_untyped_defs = true
follow_imports = "silent"
ignore_missing_imports = true
no_implicit_optional = true
show_error_codes = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
warn_unused_ignores = true

exclude = """(?x)(
    ^coverage/fullcoverage/encodings\\.py$      # can't import things into it.
    | ^tests/balance_xdist_plugin\\.py$         # not part of our test suite.
    )"""

[tool.pytest.ini_options]
addopts = "-q -n auto -p no:legacypath --strict-markers --no-flaky-report -rfEX --failed-first"
python_classes = "*Test"
markers = [
    "expensive: too slow to run during \"make smoke\"",
]

# How come these warnings are suppressed successfully here, but not in conftest.py??
filterwarnings = [
    "ignore:the imp module is deprecated in favour of importlib:DeprecationWarning",
    "ignore:distutils Version classes are deprecated:DeprecationWarning",
    "ignore:The distutils package is deprecated and slated for removal in Python 3.12:DeprecationWarning",
    "ignore:is deprecated and will be removed in Python 3.14; use ast.Constant instead:DeprecationWarning",
]

# xfail tests that pass should fail the test suite
xfail_strict = true

balanced_clumps = [
    # Because of expensive session-scoped fixture:
    "VirtualenvTest",
    # Because of shared-file manipulations (~/tests/actual/testing):
    "CompareTest",
    # No idea why this one fails if run on separate workers:
    "GetZipBytesTest",
]

[tool.ruff]
line-length = 100

[tool.scriv]
# Changelog management: https://pypi.org/project/scriv/
format = "rst"
output_file = "CHANGES.rst"
insert_marker = "scriv-start-here"
end_marker = "scriv-end-here"
ghrel_template = "file: ci/ghrel_template.md.j2"