[MASTER]
ignore=CVS
persistent=yes
load-plugins=
fail-under=9

[MESSAGES CONTROL]
disable=
    C0103,  # invalid-name (short vars in tests/loops)
    C0114,  # missing-module-docstring
    C0115,  # missing-class-docstring
    C0116,  # missing-function-docstring
    C0301,  # line-too-long (handled by black)
    C0303,  # trailing-whitespace
    C0415,  # import-outside-toplevel (lazy imports for circular deps)
    C1803,  # use-implicit-booleaness-not-comparison
    R0801,  # duplicate-code (assimilai pattern: backends share identical files)
    R0903,  # too-few-public-methods
    R0912,  # too-many-branches
    R0913,  # too-many-arguments
    R0915,  # too-many-statements
    W0212,  # protected-access (tests access internals)
    W0511,  # fixme
    W0612,  # unused-variable
    W0613,  # unused-argument (pytest fixtures)
    W0621,  # redefined-outer-name (pytest fixtures)
    W0718,  # broad-exception-caught (async server/daemon must catch broadly)
    W0719,  # broad-exception-raised
    W1202,  # logging-format-interpolation
    W1203,  # logging-fstring-interpolation

[REPORTS]
output-format=text
reports=yes
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)

[VARIABLES]
init-import=no
dummy-variables-rgx=_$|dummy

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

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

[BASIC]
good-names=i,j,k,ex,Run,_,e,f,fd,ws,ts,ok,ch,ip,op
bad-names=foo,bar,baz,toto,tutu,tata
function-rgx=[a-z_][a-z0-9_]{2,50}$
variable-rgx=[a-z_][a-z0-9_]{1,30}$
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
attr-rgx=[a-z_][a-z0-9_]{1,30}$
argument-rgx=[a-z_][a-z0-9_]{1,30}$
class-rgx=[A-Z_][a-zA-Z0-9]+$
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
no-docstring-rgx=^_

[DESIGN]
max-args=10
ignored-argument-names=_.*
max-locals=15
max-returns=6
max-branches=12
max-statements=50
max-parents=7
max-attributes=15
min-public-methods=2
max-public-methods=20

[CLASSES]
defining-attr-methods=__init__,__new__,setUp
valid-classmethod-first-arg=cls
valid-metaclass-classmethod-first-arg=mcs

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

[EXCEPTIONS]
overgeneral-exceptions=builtins.BaseException
