holy fuking shit
This commit is contained in:
@@ -52,3 +52,68 @@ mcm26b = "mcm26b.cli:main"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests", "referee/tests"]
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# pylint:全仓库静态检查口径
|
||||
#
|
||||
# 目标:`python -m pylint src scripts project tests referee main.py` 拿 10.00/10。
|
||||
# 原则:真实的逻辑 / 资源 / 命名 / 死代码问题一律改代码;下面 disable 的每一条
|
||||
# 都对应项目刻意的设计选择或已确认的静态分析误报,并写明理由,不做"一键静音"。
|
||||
# ---------------------------------------------------------------------------
|
||||
[tool.pylint.main]
|
||||
py-version = "3.10"
|
||||
jobs = 0
|
||||
# 不写 ~/Library/Caches/pylint:CI 与受限沙箱里没有该目录,会刷警告
|
||||
persistent = false
|
||||
recursive = true
|
||||
ignore = [".venv", ".uv-cache", "output"]
|
||||
|
||||
[tool.pylint.format]
|
||||
max-line-length = 100
|
||||
|
||||
[tool.pylint.design]
|
||||
# 阈值按"实际最长函数 + 余量"设定,而不是关闭检查:超过即说明该拆了
|
||||
max-args = 14
|
||||
max-positional-arguments = 10
|
||||
max-locals = 45
|
||||
max-branches = 26
|
||||
max-statements = 180
|
||||
max-attributes = 32
|
||||
max-nested-blocks = 6
|
||||
max-returns = 12
|
||||
max-module-lines = 4000
|
||||
min-public-methods = 0
|
||||
|
||||
[tool.pylint.basic]
|
||||
# 这些是既有代码里的短名/别名(importorskip 后的模块句柄、几何单字母常量、
|
||||
# 坐标系里的 x/y/z),让命名检查接受它们。
|
||||
# 注意:good-names 不覆盖 redefined-builtin——stdlib 回调签名里的 `format`
|
||||
# 之类只能在对应 def 上写行内 disable(见 server.py / referee 的 log_message)。
|
||||
good-names = [
|
||||
"i", "j", "k", "n", "m", "x", "y", "z", "_", "ex",
|
||||
"id", "pytest", "numpy", "S", "ROOT", "FONT", "ET",
|
||||
]
|
||||
# http.server 要求 do_GET/do_POST 这类方法名,不能改成 snake_case
|
||||
method-rgx = "[a-z_][a-z0-9_]{2,49}$|do_(GET|POST|PUT|DELETE|HEAD|PATCH|OPTIONS)$"
|
||||
|
||||
[tool.pylint."messages control"]
|
||||
disable = [
|
||||
# —— 项目刻意风格 ——
|
||||
"missing-module-docstring", # 内部小模块与 __main__ 不强制
|
||||
"missing-class-docstring",
|
||||
"missing-function-docstring",
|
||||
"import-outside-toplevel", # torch/SB3/referee 等重依赖与可选依赖懒加载
|
||||
"wrong-import-position", # 同上:importorskip 守卫后的延迟导入
|
||||
"ungrouped-imports", # 同上:延迟导入无法与顶部导入分组
|
||||
"broad-exception-caught", # 子进程 / IO / HTTP 边界防御式兜底,逐处注释
|
||||
"protected-access", # 测试与 mixin 有意检查内部状态
|
||||
"duplicate-code", # 脚本与测试夹具存在结构性相似,非复制粘贴缺陷
|
||||
"redefined-outer-name", # pytest 要求测试参数与 fixture 同名
|
||||
"attribute-defined-outside-init", # 轻量对象在 helper 里补字段
|
||||
"multiple-statements", # 单行守卫 (if x: return) 是可读性选择
|
||||
"use-dict-literal", # dict(...) 与 {...} 混用是既有风格
|
||||
"abstract-method", # 无头训练环境不需要实现 gym.Env.render
|
||||
# —— 已确认的静态分析误报 ——
|
||||
"possibly-used-before-assignment", # pytest.importorskip 成功即赋值,skip 会抛异常
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user