forked from numpy/numpy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathruff.toml
More file actions
118 lines (109 loc) · 4.06 KB
/
ruff.toml
File metadata and controls
118 lines (109 loc) · 4.06 KB
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
extend-exclude = [
"numpy/__config__.py",
"numpy/typing/_char_codes.py",
"spin/cmds.py",
# Submodules.
"doc/source/_static/scipy-mathjax",
"vendored-meson/meson",
"numpy/fft/pocketfft",
"numpy/_core/src/umath/svml",
"numpy/_core/src/npysort/x86-simd-sort",
"numpy/_core/src/highway",
"numpy/_core/src/common/pythoncapi-compat",
]
line-length = 88
[format]
line-ending = "lf"
[lint]
preview = true
extend-select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"ISC", # flake8-implicit-str-concat
"LOG", # flake8-logging
"G", # flake8-logging-format
"PIE", # flake8-pie
"Q", # flake8-quotes
"TID", # flake8-tidy-imports
"FLY", # flynt
"I", # isort
"PD", # pandas-vet
"PERF", # perflint
"E", # pycodestyle/error
"W", # pycodestyle/warning
"PGH", # pygrep-hooks
"PLE", # pylint/error
"UP", # pyupgrade
]
ignore = [
# flake8-bugbear
"B006", # Do not use mutable data structures for argument defaults
"B007", # Loop control variable not used within loop body
"B011", # Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
"B023", # Function definition does not bind loop variable
"B028", # No explicit `stacklevel` keyword argument found
"B904", # Within an `except` clause distinguish raised exceptions from errors in exception handling
"B905", #`zip()` without an explicit `strict=` parameter
# flake8-comprehensions
"C408", # Unnecessary `dict()` call (rewrite as a literal)
# flake8-implicit-str-concat
"ISC002", # Implicitly concatenated string literals over multiple lines
# flake8-pie
"PIE790", # Unnecessary `pass` statement
# perflint
"PERF401", # Use a list comprehension to create a transformed list
# pycodestyle/error
"E241", # Multiple spaces after comma
"E265", # Block comment should start with `# `
"E266", # Too many leading `#` before block comment
"E302", # TODO: Expected 2 blank lines, found 1
"E402", # Module level import not at top of file
"E712", # Avoid equality comparisons to `True` or `False`
"E731", # Do not assign a `lambda` expression, use a `def`
"E741", # Ambiguous variable name
# pyflakes
"F403", # `from ... import *` used; unable to detect undefined names
"F405", # may be undefined, or defined from star imports
"F821", # Undefined name
"F841", # Local variable is assigned to but never used
# pyupgrade
"UP015" , # Unnecessary mode argument
"UP031", # TODO: Use format specifiers instead of percent format
]
[lint.per-file-ignores]
"_tempita.py" = ["B909"]
"bench_*.py" = ["B015", "B018"]
"test*.py" = ["B015", "B018", "E201", "E714"]
"numpy/_core/_add_newdocs.py" = ["E501"]
"numpy/_core/_add_newdocs_scalars.py" = ["E501"]
"numpy/lib/tests/test_format.py" = ["E501"]
"numpy/linalg/tests/test_linalg.py" = ["E501"]
"numpy/f2py/*py" = ["E501"]
"numpy*pyi" = ["E501"]
# "useless assignments" aren't so useless when you're testing that they don't make type checkers scream
"numpy/typing/tests/data/*" = ["B015", "B018", "E501"]
# too disruptive to enable all at once
"**/*.py" = ["Q"]
"__init__.py" = ["F401", "F403", "F405"]
"__init__.pyi" = ["F401"]
"numpy/_core/defchararray.py" = ["F403", "F405"]
"numpy/_core/multiarray.py" = ["F405"]
"numpy/_core/numeric.py" = ["F403", "F405"]
"numpy/_core/umath.py" = ["F401", "F403", "F405"]
"numpy/f2py/capi_maps.py" = ["F403", "F405"]
"numpy/f2py/crackfortran.py" = ["F403", "F405"]
"numpy/f2py/f90mod_rules.py" = ["F403", "F405"]
"numpy/ma/core.pyi" = ["F403", "F405"]
"numpy/matlib.py" = ["F405"]
"numpy/matlib.pyi" = ["F811"]
[lint.flake8-builtins]
builtins-allowed-modules = ["random", "typing"]
[lint.flake8-import-conventions.extend-aliases]
"numpy" = "np"
"numpy.typing" = "npt"
[lint.isort]
# these are treated as stdlib within .pyi stubs
extra-standard-library = ["_typeshed", "typing_extensions"]
known-first-party = ["numpy"]
combine-as-imports = true
split-on-trailing-comma = false