[MAIN]
# Modernized from the old pylintrc using the newly generated Pylint config as reference.
# Keep this file focused on project-specific choices instead of generated defaults.

# Auto-detect CPU count for faster runs. Change to 1 if you need deterministic single-process output.
jobs=0

# Match the Python version used by this project.
py-version=3.7

ignore=CVS
persistent=no
load-plugins=
extension-pkg-allow-list=


[MESSAGES CONTROL]
# Project-specific disables carried over from the old pylintrc.
# Prefer symbolic names over numeric IDs in modern Pylint.
disable=duplicate-code,
        no-else-return,
        useless-object-inheritance,
        too-many-lines,
        fixme


[REPORTS]
reports=no
score=yes
output-format=text
msg-template={path}:{line}:{column}: {msg_id}: {msg} ({symbol})
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)


[BASIC]
good-names=i,j,k,ex,fd,Run,_
bad-names=foo,bar,baz,toto,tutu,tata
include-naming-hint=no

# These regexes preserve the old project's naming rules.
function-rgx=[a-z_][a-z0-9_]{2,40}$
variable-rgx=[a-z_][a-z0-9_]{2,30}$
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
attr-rgx=[a-z_][a-z0-9_]{2,40}$
argument-rgx=[a-z_][a-z0-9_]{2,30}$
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,40}|(__.*__))$
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
class-rgx=[A-Z_][a-zA-Z0-9]+$
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
method-rgx=[a-z_][a-z0-9_]{2,40}$

no-docstring-rgx=__.*__
docstring-min-length=-1


[FORMAT]
max-line-length=100
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
single-line-if-stmt=no
max-module-lines=1000
indent-string='    '
indent-after-paren=4
expected-line-ending-format=


[LOGGING]
logging-modules=logging


[MISCELLANEOUS]
notes=FIXME,XXX,TODO


[SIMILARITIES]
min-similarity-lines=4
ignore-comments=yes
ignore-docstrings=yes
ignore-imports=no


[SPELLING]
spelling-dict=
spelling-ignore-words=
spelling-private-dict-file=
spelling-store-unknown-words=no


[TYPECHECK]
ignore-mixin-members=yes
ignored-modules=
ignored-classes=SQLObject
generated-members=REQUEST,acl_users,aq_parent


[VARIABLES]
init-import=no
dummy-variables-rgx=_|_$|dummy
additional-builtins=
callbacks=cb_,_cb
ignored-argument-names=_.*


[CLASSES]
defining-attr-methods=__init__,__new__,setUp
valid-classmethod-first-arg=cls
valid-metaclass-classmethod-first-arg=mcs
exclude-protected=_asdict,_fields,_replace,_source,_make


[DESIGN]
max-args=10
max-locals=15
max-returns=6
max-branches=20
max-statements=50
max-parents=7
max-attributes=20
min-public-methods=0
max-public-methods=40


[IMPORTS]
deprecated-modules=regsub,TERMIOS,Bastion,rexec


[EXCEPTIONS]
overgeneral-exceptions=builtins.Exception
