[MASTER]
# ndexpr is crashing pylint. Hopefully remove this ignore when https://github.com/PyCQA/pylint/issues/1563 is fixed
ignore=ndexpr
extension-pkg-whitelist=SharedArray,zstd,ciso8601

[MESSAGES CONTROL]
disable=all

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=print-statement,
       parameter-unpacking,
       unpacking-in-except,
       old-raise-syntax,
       backtick,
       long-suffix,
       old-ne-operator,
       old-octal-literal,
       import-star-module-level,
       non-ascii-bytes-literal,
       invalid-unicode-literal,
       c-extension-no-member,
       apply-builtin,
       basestring-builtin,
       buffer-builtin,
       cmp-builtin,
       coerce-builtin,
       execfile-builtin,
       file-builtin,
       long-builtin,
       raw_input-builtin,
       reduce-builtin,
       standarderror-builtin,
       unicode-builtin,
       xrange-builtin,
       coerce-method,
       delslice-method,
       getslice-method,
       setslice-method,
       dict-iter-method,
       dict-view-method,
       next-method-called,
       metaclass-assignment,
       indexing-exception,
       raising-string,
       reload-builtin,
       oct-method,
       hex-method,
#       nonzero-method,
       cmp-method,
       input-builtin,
#       round-builtin,
       intern-builtin,
       unichr-builtin,
#       map-builtin-not-iterating,
#       zip-builtin-not-iterating,
#       range-builtin-not-iterating,
       filter-builtin-not-iterating,
       using-cmp-argument,
#       eq-without-hash,
       div-method,
       idiv-method,
       rdiv-method,
       exception-message-attribute,
       invalid-str-codec,
       sys-max-int,
       bad-python3-import,
       deprecated-string-function,
       deprecated-str-translate-call,
       deprecated-itertools-function,
       deprecated-types-field,
       next-method-defined,
       dict-items-not-iterating,
       dict-keys-not-iterating,
       dict-values-not-iterating,
       deprecated-operator-function,
       deprecated-urllib-function,
       xreadlines-attribute,
       deprecated-sys-function,
       exception-escape,
       useless-import-alias



[BASIC]

# List of builtins function names that should not be used, separated by a comma
bad-functions=apply,input

# Regular expression which should only match correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$

# Regular expression which should only match correct module level names
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__)|_log)$

# Regular expression which should only match correct class names
class-rgx=[A-Z_][a-zA-Z0-9]+$

# Regular expression which should only match correct function names
function-rgx=[a-z_][a-z0-9_]{2,50}$

# Regular expression which should only match correct method names
method-rgx=[a-z_][a-z0-9_]{2,50}$

# Regular expression which should only match correct instance attribute names
attr-rgx=[a-z_][a-z0-9_]{0,50}$

# Regular expression which should only match correct argument names
argument-rgx=[a-z_][a-z0-9_]{0,50}$

# Regular expression which should only match correct variable names
variable-rgx=[a-z_][a-z0-9_]{0,50}$

# Regular expression which should only match correct attribute names in class
# bodies
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,50}|(__.*__))$

# Regular expression which should only match correct list comprehension /
# generator expression variable names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$

# Good variable names which should always be accepted, separated by a comma
good-names=i,j,k,ex,Run,W,H,A,R,S,X,Y,XX,YY,XY,_

# Bad variable names which should always be refused, separated by a comma
bad-names=foo,bar,baz,toto,tutu,tata

# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=__.*__

# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1


[MISCELLANEOUS]

# List of note tags to take in consideration, separated by a comma.
notes=FIXME,XXX


[VARIABLES]

# Tells whether we should check for unused import in __init__ files.
init-import=no

# A regular expression matching the beginning of the name of dummy variables
# (i.e. not used).
dummy-variables-rgx=_$|dummy

# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
additional-builtins=


[TYPECHECK]

# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
ignore-mixin-members=yes

# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set).
ignored-classes=SQLObject

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed. Python regular
# expressions are accepted.
generated-members=REQUEST,acl_users,aq_parent


[FORMAT]

# Maximum number of characters on a single line.
max-line-length=120

# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$

# Maximum number of lines in a module
max-module-lines=1000

# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string='    '


[IMPORTS]

# Deprecated modules which should not be used, separated by a comma
deprecated-modules=regsub,TERMIOS,Bastion,rexec

# Create a graph of every (i.e. internal and external) dependencies in the
# given file (report RP0402 must not be disabled)
import-graph=

# Create a graph of external dependencies in the given file (report RP0402 must
# not be disabled)
ext-import-graph=

# Create a graph of internal dependencies in the given file (report RP0402 must
# not be disabled)
int-import-graph=


[DESIGN]

# Maximum number of arguments for function / method
max-args=10

# Argument names that match this expression will be ignored. Default to name
# with leading underscore
ignored-argument-names=_.*

# Maximum number of locals for function / method body
max-locals=16

# Early return often results in clearer code.
# The other complexity metrics are enough to prevent abuse.
# Maximum number of return / yield for function / method body
max-returns=128

# Maximum number of branch for function / method body
max-branches=12

# Maximum number of statements in function / method body
max-statements=50

# Maximum number of parents for a class (see R0901).
max-parents=7

# Maximum number of attributes for a class (see R0902).
max-attributes=14

# Minimum number of public methods for a class (see R0903).
min-public-methods=0

# Maximum number of public methods for a class (see R0904).
max-public-methods=20


[EXCEPTIONS]

# Exceptions that will emit a warning when being caught. Defaults to
# "Exception"
overgeneral-exceptions=Exception
