-
Notifications
You must be signed in to change notification settings - Fork 5
/
pyproject.toml
180 lines (147 loc) · 4.66 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
[tool.black]
# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file
line-length = 100
target-version = ["py310"]
[tool.pytest.ini_options]
pythonpath = "src"
addopts = [
"--import-mode=prepend",
]
env = [
### By default, use the local config file for unit-tests.
### Other config files can be used using the make commands (see makefile)
"CONFIG_FILE=config.local.yml",
]
[tool.isort]
# Number of blank lines after the imports:
lines_after_imports = 2
[tool.ruff]
# Enable the following rules:
select = [
# https://beta.ruff.rs/docs/rules/
"A", # Enable 'Flake8-builtins' codes
"ANN", # Enable 'Flake8-annotations' codes
"ARG", # Enable 'Flake8-unused-arguments' codes
"B", # Enable 'Flake8-bugbear' codes
"BLE", # Enable 'Flake8-blind-except' codes
"C4", # Enable 'Flake8-comprehensions' codes
"C90", # Enable 'Mccabe' codes
"COM", # Enable 'Flake8-commas' codes
"D", # Enable 'Pydocstyle' codes
"DTZ", # Enable 'Flake8-datetimez' codes
"E", # Enable 'Pycodestyle' error codes
"EM", # Enable 'Flake8-errmsg' codes
"F", # Enable 'Pyflakes' codes
"FBT", # Enable 'Flake8-boolean-trap' codes
"G", # Enable 'Flake8-logging-format' codes
"I", # Enable 'isort' codes
"ICN", # Enable 'Flake8-import-conventions' codes
"INP", # Enable 'Flake8-no-pep420' codes
"ISC", # Enable 'Flake8-implicit-str-concat' codes
"N", # Enable 'Pep-8 naming' codes
"PD", # Enable 'Pandas-vet' codes
"PGH", # Enable 'Pygrep-hooks' codes
"PIE", # Enable 'Flake8-pie' codes
"PL", # Enable 'Pylint' codes
"PTH", # Enable 'Flake8-use-pathlib' codes
"Q", # Enable 'Flake8-quotes' codes
"RET", # Enable 'Flake8-return' codes
"RSE", # Enable 'Flake8-raise' codes
"S", # Enable 'Flake8-bandit' codes
"SLF", # Enable 'Flake8-self' codes
"TID", # Enable 'Flake8-tidy-imports' codes
"UP", # Enable 'Pyupgrade' codes
"W", # Enable 'Pycodestyle' warning codes
]
# Ignore the following codes:
ignore = [
"ANN101", # Missing type annotation for `self` in method
"D203", # 1 blank line required before class docstring
"D212", # Multi-line docstring summary should start at the first line
"E712", # Comparison to True should be cond is True or if cond:
"FBT001", # Boolean positional arg in function definition
"FBT002", # Boolean default value in function definition
"G004", # Logging statement uses f-string
"PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
"RET504", # Unnecessary assignment to {name} before return statement
"S101", # Use of assert detected
"PTH118",
"PTH103",
"PTH120",
"SLF001"
]
# Do not autofix the following codes:
unfixable = [
"F401",
"F841",
"PIE794",
"TID252"
]
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".hg",
".mypy_cache",
".nox",
".pants.d",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
per-file-ignores = {}
# Maximum line length (same as Black).
line-length = 100
# # Allow unused variables when underscore-prefixed.
# dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
# Specify the Python version
target-version = "py310"
# Allow imports relative to the "src" and "test" directories.
src = ["src", "tests"]
[tool.ruff.flake8-quotes]
docstring-quotes = "double"
inline-quotes = "double"
multiline-quotes = "double"
[tool.ruff.isort]
# Number of blank lines after the imports (same as isort).
lines-after-imports = 2
[tool.ruff.mccabe]
# The maximum McCabe complexity to allow before triggering C901 errors
max-complexity = 10
[tool.ruff.pycodestyle]
# Allow lines starting by "TODO", "FIXME" or "XXX" to violate the line-length limit.
ignore-overlong-task-comments = true
[tool.ruff.pydocstyle]
# Use Google-style docstrings.
convention = "google"
[tool.ruff.pylint]
# Maximum number of arguments allowed for a function or method definition.
max-args = 10
# Maximum number of branches allowed for a function or method body
max-branches = 12
# Maximum number of return statements allowed for a function or method body
max-returns = 6
# Maximum number of statements allowed for a function or method body
max-statements = 50
[tool.mypy]
mypy_path = "src"
ignore_missing_imports = true
[tool.coverage.report]
exclude_lines = [
'if __name__ == "__main__":'
]
[tool.cruft]
skip = [
".git"
]