[BASIC]

# Regular expression matching correct argument names. Overrides argument-
# naming-style. If left empty, argument names will be checked with the set
# naming style.
argument-rgx=[a-z_][a-z0-9_]{0,15}$ # Sciris
variable-rgx=[a-z_][a-z0-9_]{0,15}$ # Sciris
attr-rgx=[a-z_][a-z0-9_]{0,15}$ # Sciris
class-attribute-rgx=[a-z_][a-z0-9_]{0,15}$ # Sciris
function-rgx=[a-z_][a-z0-9_]{0,15}$ # Sciris
method-rgx=[a-z_][a-z0-9_]{0,15}$ # Sciris
class-rgx=[a-zA-Z_][a-zA-Z0-9_]{0,15}$ # Sciris

# Good variable names which should always be accepted, separated by a comma.
good-names=E # Sciris


[DESIGN]

# Maximum number of arguments for function / method.
max-args=20 # Sciris

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

# Maximum number of boolean expressions in an if statement (see R0916).
max-bool-expr=5

# Maximum number of branch for function / method body.
max-branches=15 # Sciris

# Maximum number of locals for function / method body.
max-locals=20 # Sciris

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

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

# Maximum number of return / yield for function / method body.
max-returns=5 # Sciris

# Maximum number of statements in function / method body.
max-statements=200 # Sciris

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


[FORMAT]

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

# Maximum number of lines in a module.
max-module-lines=2000 # Sciris

# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=yes # Sciris


[IMPORTS]

# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=yes # Sciris


[MESSAGES CONTROL]

# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then re-enable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
disable=raw-checker-failed,
        bad-inline-option,
        locally-disabled,
        file-ignored,
        suppressed-message,
        useless-suppression,
        deprecated-pragma,
        use-symbolic-message-instead,
        C0103, # Sciris: allow lowercase constants
        C0321, # Sciris: multiple statements on a line
        C0325, # Sciris: allow parentheses in if
        C0411, # Sciris: allow different import order
        C0412, # Sciris: allow ungrouped imports
        C0413, # Sciris: allow imports not at the top
        E1101, # Sciris: don't check class membership (dynamic classes)
        R1705, # Sciris: allow else-return
        R1711, # Sciris: empty return
        R1720, # Sciris: allow else after raise
        R1735, # Sciris: dict literal
        W0702, # Sciris: allow bare except
        W0718 # Sciris: allow general exception

# 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=c-extension-no-member


[MISCELLANEOUS]

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