-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathruff.toml
More file actions
92 lines (86 loc) · 2.15 KB
/
ruff.toml
File metadata and controls
92 lines (86 loc) · 2.15 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
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".ipynb_checkpoints",
".mypy_cache",
".nox",
".pants.d",
".pyenv",
".pytest_cache",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
".vscode",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"site-packages",
"venv",
"*/migrations/*", # Django migration files
]
# Same as Black.
line-length = 88
indent-width = 4
target-version = "py313"
[lint]
select = [
"A",
"E", "F", "W", # Flake8 (E, F) 和 pycodestyle 警告 (W)
"I", # isort (导入排序)
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"T20", # flake8-print
"S", # Bandit (安全)
"PL", # Pylint (部分规则)
"UP", # pyupgrade 规则(自动现代代码升级)
"D", # pydocstyle (Docstring 规范)
"DJ", # flake8-django
"FIX",
"EM",
"LOG",
"G",
"TID",
"TD",
"RUF",
"COM",
"C90"
]
ignore = [
"RUF012", # Django Meta classes with mutable fields/widgets are normal
"PLC0415", # Django manage.py imports in try-except are standard
"S101", # Use of assert in tests is expected
"PLR2004", # Magic values in tests are acceptable (e.g., status codes)
"RUF001", # Chinese characters in strings are intentional
"RUF003", # Chinese characters in comments are intentional
"S106", # Hardcoded passwords in tests are acceptable
"DJ008", # Django models don't always need __str__ methods
"E501", # Long lines are sometimes necessary for readability
"D212",
"D203",
"COM812",
"PT009"
]
fixable = ["ALL"]
unfixable = []
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
[format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
docstring-code-format = true
docstring-code-line-length = "dynamic"
[lint.mccabe]
max-complexity = 20
[lint.per-file-ignores]
"**/tests/**/*.py" = ["D", "EM101", "RUF002"]