42 lines
1.4 KiB
TOML
42 lines
1.4 KiB
TOML
|
|
# Ruff configuration for Nexus
|
|||
|
|
# Docs: https://docs.astral.sh/ruff/
|
|||
|
|
#
|
|||
|
|
# 策略:只拦真正的BUG和安全问题,不强制代码风格升级
|
|||
|
|
# 存量代码不改,新增代码必须通过
|
|||
|
|
|
|||
|
|
target-version = "py310"
|
|||
|
|
line-length = 120
|
|||
|
|
|
|||
|
|
[lint]
|
|||
|
|
# 核心:只选真正影响正确性和安全的规则
|
|||
|
|
select = [
|
|||
|
|
"F", # pyflakes — 未定义名称、未使用导入(真正的BUG)
|
|||
|
|
"S", # flake8-bandit — 安全问题
|
|||
|
|
"B", # flake8-bugbear — 常见BUG模式
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
# 不选的规则(留给以后渐进式启用):
|
|||
|
|
# "E" — pycodestyle 风格(缩进、空格等,不影响正确性)
|
|||
|
|
# "UP" — pyupgrade(Optional→X|None 等,风格升级,存量太多)
|
|||
|
|
# "I" — isort(导入排序,风格问题)
|
|||
|
|
# "W" — pycodestyle warnings(风格)
|
|||
|
|
|
|||
|
|
ignore = [
|
|||
|
|
"S101", # assert used (fine in tests)
|
|||
|
|
"S104", # hardcoded bind all interfaces (0.0.0.0 is intentional)
|
|||
|
|
"S108", # /tmp usage
|
|||
|
|
"S603", # subprocess call (we validate inputs with shlex.quote)
|
|||
|
|
"S607", # subprocess with partial path
|
|||
|
|
"S311", # random module (not crypto)
|
|||
|
|
"B008", # function call in default argument (FastAPI Depends pattern)
|
|||
|
|
"B905", # zip without strict (Python 3.10+)
|
|||
|
|
"B006", # mutable default args (FastAPI pattern)
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
[lint.per-file-ignores]
|
|||
|
|
"tests/*.py" = ["S101", "S106"] # assert + hardcoded password in tests
|
|||
|
|
|
|||
|
|
[format]
|
|||
|
|
quote-style = "double"
|
|||
|
|
indent-style = "space"
|