Merge branch '20444-fix-test-suite-with-Python-3.12' into 'stable'
[tails.git] / pyproject.toml
blobbe259038faffac655b8ff1b5a72782129d2279bd
1 [tool.mypy]
2 exclude = [
3     # symlink
4     "^lib/python3/",
5     # built website
6     "^config/chroot_local-includes/usr/share/doc/tails/website/",
7     # submodules that we don't maintain
8     "^submodules/(chutney|live-build|torbrowser-launcher)",
10 mypy_path = "config/chroot_local-includes/usr/lib/python3/dist-packages"
11 warn_no_return = true
12 warn_return_any = true
13 warn_unused_configs = true
15 [[tool.mypy.overrides]]
16 module = [
17     "gi",
18     "gi.repository",
20 ignore_missing_imports = true
22 # https://github.com/astral-sh/ruff
23 [tool.ruff]
24 # This configuration is applied to the ruff editor by default, *except* in the context of CI,
25 # where bin/test-utils/ruff.toml is applied.
26 # Please keep them meaningfully synchronized: this file is for SHOULDs, the other file is for MUSTs.
28 # If you want to override it, you can do so by creating `ruff.toml`. If you think that your reasons for
29 # overriding could better be made "global" please say so by creating an issue and proposing to change our
30 # Python style guidelines.
32 target-version = "py311"
33 extend-exclude = [
34     "submodules/chutney",
35     "submodules/live-build",
36     "submodules/torbrowser-launcher",
37     "tmp",
38     "wiki/src",
40 extend-select = [
41     # Derived from the flake8-builtins linter
42     "A",
43     # Derived from the flake8-async linter
44     "ASYNC",
45     # Derived from the flake8-bugbear linter
46     "B",
47     # Derived from the flake8-blind-except linter
48     "BLE",
49     # Derived from the flake8-comprehensions linter
50     "C4",
51     # Derived from the mccabe linter
52     "C9",
53     # Derived from the flake8-commas linter
54     "COM",
55     # Derived from the pycodestyle linter
56     "E1",
57     # Derived from the eradicate linter (commented-out-code)
58     "ERA",
59     # Derived from the flake8-executable linter
60     "EXE",
61     # Derived from the flynt linter,
62     "FLY",
63     # Derived from the flake8-logging-format linter
64     "G",
65     # Derived from the isort linter
66     "I",
67     # Derived from the flake8-import-conventions linter
68     "ICN",
69     # Derived from the flake8-gettext linter
70     "INT",
71     # Derived from the flake8-implicit-str-concat linter
72     "ISC",
73     # Derived from the flake8-pie linter
74     "PIE",
75     # Derived from the pygrep-hooks linter
76     "PGH",
77     # Derived from the Pylint linter
78     "PLC",
79     "PLE",
80     "PLR",
81     "PLW",
82     # Derived from the flake8-pytest-style linter
83     "PT",
84     # Derived from the flake8-pyi linter
85     "PYI",
86     # Derived from the flake8-return linter
87     "RET",
88     # Derived from the flake8-raise linter
89     "RSE",
90     # Derived from the Ruff-specific rules linter
91     "RUF",
92     # Derived from the flake8-bandit linter (security)
93     "S",
94     # Derived from the flake8-self linter
95     "SLF",
96     # Derived from the flake8-simplify linter
97     "SIM",
98     # Derived from the flake8-slots linter
99     "SLOT",
100     # Derived from the flake8-debugger linter
101     "T100",
102     # Derived from the flake8-type-checking linter
103     "TCH",
104     # Derived from the flake8-tidy-imports linter
105     "TID",
106     # Derived from the flake8-todos linter
107     "TD",
108     # Derived from the tryceratops linter
109     "TRY",
110     # Derived from the pyupgrade linter
111     "UP",
112     # Derived from the pycodestyle linter
113     "W",
114     # Derived from the flake8-2020 linter
115     "YTT",
117 extend-ignore = [
118     # Accept shared, mostly innocuous habit
119     "RET505",
120     # Error-prone
121     "RSE102",
122     # Allow noqa directives that may be useful with other linters
123     "RUF100",
124     # We don't compile Python code so our `assert`s won't be optimized out
125     "S101",
126     # Prone to false positives (see https://github.com/astral-sh/ruff/issues/4045)
127     "S603",
128     # We don't record the author of a TODO, for better or worse
129     "TD002",
130     # Accept commonly used "TODO:Bookworm"
131     "TD007",