-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathruff.toml
129 lines (127 loc) · 2.19 KB
/
ruff.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
target-version = "py39"
line-length = 88
include = [
"python/**/*.{py,pyi}",
"scripts/**",
"tests/**/*.{py,pyi}",
"bench/**/*.{py,pyi}",
"examples/**/*.{py,pyi}",
]
format.docstring-code-format = true
lint.select = [
"A",
"ARG",
"B",
"C",
"DTZ",
"E",
"EM",
"F",
# "FBT",
"I",
"ICN",
"N",
"PLC",
"PLE",
"PLR",
"PLW",
"Q",
"RUF",
"RUF022", # unsorted-dunder-all
"S",
"T",
"TID",
"UP",
"W",
"YTT",
]
lint.ignore = [
# shadowing builtins
"A002",
"A003",
# Allow non-abstract empty methods in abstract base classes
"B027",
# Ignore complexity
"C901",
"E501", # line length
# Allow boolean positional values in function calls, like `dict.get(... True)`
"FBT003",
"PLR0911",
"PLR0912",
"PLR0913",
"PLR0915",
# type annotations union
# "UP007",
# todo figure out if this is needed
# "UP006",
# magic value cmp super annoying
"PLR2004",
"PLW0120",
# Ignore checks for possible passwords
"S105",
"S106",
"S107",
"TID252",
]
# Require explicit selection of preview rules.
lint.explicit-preview-rules = true
lint.exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".mypy_cache",
".nox",
".pants.d",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
# Tests can use magic values, assertions, and relative imports
lint.per-file-ignores."tests/**/*.py" = [
"B011",
"DTZ001",
"PL",
"S101",
"S103",
"S307",
"S603",
"T201",
"TID252",
]
lint.per-file-ignores."tests/reqwest/conftest.py"=[
"ARG001",
]
lint.per-file-ignores."python/ry/dev.py" = [
]
lint.per-file-ignores."python/ry/ryo3/*.pyi" = [
"F401",
"F821",
]
lint.per-file-ignores."scripts/**" = [
"S101",
"S603",
"T201",
]
lint.unfixable = [
# Don't touch unused imports
"F401",
]
lint.flake8-tidy-imports.ban-relative-imports = "all"
lint.isort.known-first-party = ["ry"]
# =============================================================================
# Type checking
# =============================================================================
lint.preview = true
lint.pydocstyle.convention = "google"