[MASTER]
# 指定Python路径
init-hook='import sys; sys.path.append(".")'

# 忽略的文件和目录
ignore=.git,__pycache__,.venv,build,dist,tests,docs

# 通过 `pylint app/` 检查主程序时不扫描内置插件目录，
# 插件依赖和动态模型较多，容易产生与主程序无关的误报。
ignore-paths=^app/plugins(/|$)

# 并行作业数量
jobs=0

[MESSAGES CONTROL]
# 只启用确定性较强的严重问题检查，避免 SQLAlchemy、FastAPI 依赖注入、
# 第三方 SDK 等动态对象被 Pylint 推断成误报。
disable=all
enable=syntax-error,
       undefined-variable,
       used-before-assignment,
       possibly-used-before-assignment,
       unreachable,
       return-outside-function,
       yield-outside-function,
       continue-in-finally,
       nonlocal-without-binding,
       undefined-loop-variable,
       import-error,
       relative-beyond-top-level,
       no-name-in-module

[REPORTS]
# 设置报告格式
output-format=colorized
reports=yes
score=yes

[FORMAT]
# 最大行长度
max-line-length=120
# 缩进大小
indent-string='    '

[DESIGN]
# 最大参数数量
max-args=10
# 最大本地变量数量
max-locals=20
# 最大分支数量
max-branches=15
# 最大语句数量
max-statements=50
# 最大父类数量
max-parents=7
# 最大属性数量
max-attributes=10
# 最小公共方法数量
min-public-methods=1
# 最大公共方法数量
max-public-methods=25

[SIMILARITIES]
# 最小相似行数
min-similarity-lines=6
# 忽略注释
ignore-comments=yes
# 忽略文档字符串
ignore-docstrings=yes
# 忽略导入
ignore-imports=yes

[TYPECHECK]
# 生成缺失成员提示的类列表
generated-members=requests.packages.urllib3
# app.infrastructure.sites 会主动隐藏模块属性枚举，接口由同目录 sites.pyi 声明
ignored-modules=app.infrastructure.sites
