[MASTER]

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-allow-list=mpi4py.MPI,
                         numpy,

# Add files or directories matching the regex patterns to the ignore-list. The
# regex matches against paths and can be in Posix or Windows format.
ignore-paths=(./)?.venv/,
             (./)?unirobot/robot/ros_lib/,
             (./)?unirobot/robot/utils/vis_hdf5.py,

# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
# TODO(xuan.hu): Disabled due to: https://github.com/reverbc/pylint-pytest/pull/22
load-plugins=pylint.extensions.no_self_use,
             # pylint_pytest,

# Discover python modules and packages in the file system subtree.
recursive=yes

# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use.
jobs=0

[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".
#
# Reference: https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#pylint
# c-extension-no-member: I1101
# not-callable: For `torch.tensor`, should remove when upgrade to torch 1.11.
# Reference: https://github.com/pytorch/pytorch/issues/24807
# duplicate-code: For temporarily fix.
# Reference: https://git.nevint.com/nio-pilot/torchpilot/issues/143
# too-many-lines: Too many lines in module, C0302
disable=c-extension-no-member,
        duplicate-code,
        not-callable,
        too-many-lines,
        use-dict-literal,
        arguments-differ,
        line-too-long,
        invalid-name,
        no-member,
        unused-argument,
        protected-access,
        possibly-used-before-assignment,
        unused-import,
        too-many-positional-arguments,
        deprecated-module,
        no-self-use,
        logging-fstring-interpolation,
        broad-exception-caught,
        unnecessary-dunder-call,
        fixme,
        unused-variable,
        too-many-instance-attributes,
        too-many-locals,
        unsubscriptable-object,
        unknown-option-value,
        too-many-statements,
        import-error,
        too-many-branches,
        too-few-public-methods,
        unspecified-encoding,
        raise-missing-from,
        consider-using-dict-items



[SIMILARITIES]

# Imports are removed from the similarity computation
ignore-imports=yes

# Minimum lines number of a similarity.
min-similarity-lines=20

[FORMAT]

# Maximum number of characters on a single line.
#
# Make pylint compatible with black.
# Reference: https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#pylint
max-line-length=88

[BASIC]

# Good variable names which should always be accepted, separated by a comma.

# good-names=

[TYPECHECK]

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

[DESIGN]

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

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

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