# pylint configuration file tailored to test code.
#
# NOTE: Keep in sync as much as possible with the standard pylintrc file.
# Only a few settings had to be adapted for the test code.

[MASTER]
profile = no
ignore =
persistent = no
cache-size = 50000
load-plugins =

[REPORTS]
output-format = colorized
include-ids = yes
files-output = no
reports = no
evaluation = 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
comment = yes

[BASIC]
required-attributes =
# disabling docstring checks since we have way too many without (complex
# inheritance hierarchies)
#no-docstring-rgx = __.*__
no-docstring-rgx = .*
module-rgx = (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
# added lower-case names
const-rgx = ((_{0,2}[A-Za-z][A-Za-z0-9_]*)|(__.*__))$
class-rgx = _?[A-Z][a-zA-Z0-9]+$
# added lower-case names
function-rgx = (_?((([A-Z]+[a-z0-9]+)|test|assert)([A-Z]+[a-z0-9]*)*)|main|([a-z_][a-z0-9_]*))$
# add lower-case names, since derived classes must obey method names
method-rgx = (_{0,2}(([A-Z]+[a-z0-9]+)|test|assert)([A-Z]+[a-z0-9]*)*|__.*__|runTests|setUp|tearDown|([a-z_][a-z0-9_]*))$
attr-rgx = [a-z_][a-z0-9_]{1,30}$
argument-rgx = [a-z_][a-z0-9_]*$
variable-rgx = (_?([a-z_][a-z0-9_]*)|(_?[A-Z0-9_]+))$
inlinevar-rgx = [A-Za-z_][A-Za-z0-9_]*$
good-names = i,j,k,_
bad-names = foo,bar,baz,toto,tutu,tata
bad-functions = xrange

[TYPECHECK]
ignore-mixin-members = yes
zope = no
acquired-members =

[VARIABLES]
init-import = no
dummy-variables-rgx = _
additional-builtins =

[CLASSES]
ignore-iface-methods =
defining-attr-methods = __init__,__new__,setUp

[DESIGN]
max-args = 15
max-locals = 50
max-returns = 10
max-branchs = 80
max-statements = 200
max-parents = 7
max-attributes = 20
# zero as struct-like (PODS) classes don't export any methods
min-public-methods = 0
max-public-methods = 50

[IMPORTS]
deprecated-modules = regsub,string,TERMIOS,Bastion,rexec
import-graph =
ext-import-graph =
int-import-graph =

[FORMAT]
max-line-length = 80
max-module-lines = 4500
indent-string = "  "

[MISCELLANEOUS]
notes = FIXME,XXX,TODO

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

[MESSAGES CONTROL]

# Enable only checker(s) with the given id(s). This option conflicts with the
# disable-checker option
#enable-checker=

# Enable all checker(s) except those with the given id(s). This option
# conflicts with the enable-checker option
#disable-checker=
disable-checker=similarities

# Enable all messages in the listed categories (IRCWEF).
#enable-msg-cat=

# Disable all messages in the listed categories (IRCWEF).
disable-msg-cat=

# Enable the message(s) with the given id(s).
#enable-msg=

# Disable the message(s) with the given id(s).
disable-msg=W0511,R0922,W0201

# The new pylint 0.21+ style (plus the similarities checker, which is no longer
# a separate opiton, but a generic disable control)
disable=W0511,R0922,W0201,R0922,R0801,I0011,R0201
