-
Notifications
You must be signed in to change notification settings - Fork 5.6k
/
pyproject.toml
208 lines (184 loc) · 4.21 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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
[tool.black]
line-length = 80
skip-string-normalization = true
target-version = ["py38", "py39", "py310", "py311", "py312"]
extend-exclude = '''
(
third_party/.+ # Exclude third_party directory
| build/.+ # Exclude build directory
)
'''
[tool.ruff]
exclude = [
"./build",
"third_party",
"./python/paddle/utils/gast/**",
]
line-length = 80
target-version = "py38"
[tool.ruff.format]
# Prevent change to double quotes by some users use ruff format
quote-style = "preserve"
[tool.ruff.lint]
select = [
# Pycodestyle
"E",
"W",
# Pyflakes
"F",
# Isort
"I",
# Comprehensions
"C4",
# Debugger
"T100",
# Pyupgrade
"UP",
# Flake8-pyi
"PYI",
# NumPy-specific rules
"NPY001",
"NPY003",
"NPY201",
# Bugbear
"B002",
"B003",
"B004",
"B009",
"B010",
"B011",
"B012",
"B013",
"B014",
"B015",
"B016",
"B017",
"B018",
"B019",
"B020",
"B021",
"B022",
"B025",
"B029",
"B032",
# Pylint
"PLE",
"PLC3002",
"PLR0206",
"PLR0402",
"PLR1711",
"PLR1722",
"PLW3301",
# Flake8-simplify
"SIM101",
# Pygrep-hooks
"PGH004",
# Flake8-type-checking
"TCH",
# Ruff-specific rules
"RUF005",
"RUF008",
"RUF009",
"RUF010",
"RUF013",
"RUF015",
"RUF016",
"RUF017",
"RUF018",
"RUF019",
"RUF020",
"RUF024",
"RUF026",
"RUF100",
# Flake8-raise
"RSE",
# Flake8-quotes
"Q003",
"Q004",
# Refurb
"FURB",
# Flake8-future-annotations
"FA",
]
unfixable = [
"NPY001"
]
ignore = [
# Whitespace before ‘,’, ‘;’, or ‘:’, it is not compatible with black
"E203",
# Module level import not at top of file
"E402",
# Line too long (82 > 79 characters)
"E501",
# Do not compare types, use `isinstance()`
"E721",
# Do not use bare except, specify exception instead
"E722",
# Do not assign a lambda expression, use a def
"E731",
# Do not use variables named ‘l’, ‘O’, or ‘I’
"E741",
# `name` may be undefined, or defined from star imports: `module`
"F405",
# Local variable name is assigned to but never used
"F841",
# It not met the "Explicit is better than implicit" rule
"UP015",
# It will cause the performance regression on python3.10
"UP038",
# collections.namedtuple can be quickly created a inlined class
"PYI024",
# `__all__.append` is a common pattern in Paddle
"PYI056",
]
[tool.ruff.lint.isort]
combine-as-imports = true
known-first-party = ["paddle"]
[tool.ruff.lint.per-file-ignores]
# Ignore for re-export in __init__ files
"__init__.py" = ["PLC0414"]
# Ignore compare with True in sot unittest
"test/sot/test_dup_top.py" = ["E712"]
# Ignore undefined variables in CMake config and some dygraph_to_static tests
".cmake-format.py" = ["F821"]
"test/dygraph_to_static/test_closure_analysis.py" = ["F821"]
# Ignore version check in setup.py
"setup.py" = ["UP036"]
# Ignore unnecessary comprehension in dy2st unittest test_loop
"test/dygraph_to_static/test_loop.py" = ["C416", "F821"]
# Ignore unnecessary lambda in dy2st unittest test_lambda
"test/dygraph_to_static/test_lambda.py" = ["PLC3002"]
# Ignore docstring in tensor.pyi
"python/paddle/tensor/tensor.prototype.pyi" = ["PYI021", "PYI048"]
# Temproray ignore some dy2st test case because SOT bug
# See https://github.com/PaddlePaddle/Paddle/pull/67344#discussion_r1714155671 for more details
"test/dygraph_to_static/seq2seq_dygraph_model.py" = ["RUF005"]
[tool.mypy]
python_version = "3.8"
cache_dir = ".mypy_cache"
# Miscellaneous strictness flags
allow_redefinition = true
local_partial_types = true
strict = false
# Untyped definitions and calls
check_untyped_defs = true
# Import discovery
follow_imports = "normal"
# Miscellaneous
warn_unused_configs = true
# Disallow generic without type arguments
disallow_any_generics = true
# Configuring warnings
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
# Configuring error messages
show_column_numbers = true
[[tool.mypy.overrides]]
module = [
"astor",
"cv2",
"scipy",
"xlsxwriter"
]
ignore_missing_imports = true