# Following comments can be placed at the top of a test file to
# disable errors not considered relevant for testing under pytest.

# pylint: disable=missing-function-docstring, missing-type-doc, missing-class-docstring
# pylint: disable=missing-param-doc, missing-any-param-doc, redefined-outer-name
# pylint: disable=too-many-public-methods, too-many-arguments, too-many-locals
# pylint: disable=too-many-statements
# pylint: disable=protected-access, no-self-use, unused-argument, invalid-name
#   missing-fuction-docstring: doc not required for all tests
#   protected-access: not required for tests
#   not compatible with use of fixtures to parameterize tests:
#       too-many-arguments, too-many-public-methods
#   not compatible with pytest fixtures:
#       redefined-outer-name, no-self-use, missing-any-param-doc, missing-type-doc
#   unused-argument: not compatible with pytest fixtures, caught by pylance anyway.
#   invalid-name: names in tests not expected to strictly conform with snake_case.

# Any flake8 disabled violations handled via per-file-ignores on .flake8

[MASTER]

# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=pylint.extensions.broad_try_clause,
             pylint.extensions.confusing_elif,
             pylint.extensions.comparetozero,
             pylint.extensions.bad_builtin,
             pylint.extensions.mccabe,
             pylint.extensions.docstyle,
             pylint.extensions.check_elif,
             pylint.extensions.overlapping_exceptions,
             pylint.extensions.empty_comment,
             pylint.extensions.typing,
             pylint.extensions.docparams

[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 reenable 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=missing-raises-doc, # most exceptions are not worthy of documenting 
        missing-return-doc, # only included to public published documentation
        missing-yield-doc, # only included to public published documentation
        missing-yield-type-doc, # only included to public published documentation
        no-else-return, # prefer explict code paths 
        no-else-raise, # prefer explict code paths

[REPORTS]

# Set the output format. Available formats are text, parseable, colorized, json
# and msvs (visual studio). You can also give a reporter class, e.g.
# mypackage.mymodule.MyReporterClass.
output-format=colorized

[BASIC]

# Good variable names which should always be accepted, separated by a comma.
good-names=i, j,
        x, y,
        k, v,
        d,
        m,
        n, s, tt, bi,
        a, b,
        f,
        to, px,
        df,
        ii,
        ts,
        tz,
        bv,

[FORMAT]

# Maximum number of characters on a single line.
# max-line-length extended in line with black default style
max-line-length=100

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

[TYPING]
py-version=3.10
runtime-typing=no

[PARAMETER_DOCUMENTATION]
accept-no-param-doc=no
accept-no-raise-doc=yes
accept-no-return-doc=no
accept-no-yields-doc=no
default-docstring-type=numpy
