# .pylintrc - Maximum strictness, aligned with ruff and mypy
# Docstrings, naming, and code duplication are enforced everywhere (including tests)

[MASTER]
ignore=.venv,.mypy_cache,.ruff_cache,build,dist,tests/__pycache__,src/__pycache__
init-hook='import sys; sys.path.append("src")'

[MESSAGES CONTROL]
disable=
    C0301,  # line-too-long
    R0902,  # too-many-instance-attributes
    R0913,  # too-many-arguments
    R0917,  # too-many-positional-arguments
    R0912,  # too-many-branches
    R0915,  # too-many-statements
    R0903,  # too-few-public-methods
    R0904,  # too-many-public-methods
    W1203,  # logging-fstring-interpolation
    W0718,  # broad-exception-caught
    W0511,  # fixme
    E1136,  # unsubscriptable-object
    W0212,  # protected-access
    W0613,  # unused-argument
    W0105,  # pointless-string-statement
    R0801,  # duplicate-code
    W1514,  # unspecified-encoding

[FORMAT]
max-line-length=200
indent-string='    '

[DESIGN]
max-args=10
max-locals=25
max-returns=6
max-branches=12
max-statements=50
max-parents=7
max-attributes=10
max-public-methods=20

[TYPECHECK]
generated-members=pygame.*

[REPORTS]
output-format=colorized
reports=no

[SIMILARITIES]
ignore-comments=yes
ignore-docstrings=yes
ignore-imports=yes

[VARIABLES]
additional-builtins=pytest

[EXCEPTIONS]
overgeneral-exceptions=builtins.Exception

[IMPORTS]
# Accept ruff/isort's import order, so don't warn about import-order-style

[TESTS]
# Custom section for test file patterns (not standard in pylint, but for clarity)
# The disables above (docstrings, naming) are to allow pytest-style tests. 