[MASTER]

load-plugins=pylint.extensions.docparams,verboselogs.pylint

# Ignore generated code we don't control
ignore=_version.py

# Pylint raises false no-member error about "from pyVmomi import vim"
# Pylint doesn't handle distutils submodules when running in a virtualenv.
ignored-modules=distutils,pyVmomi

[REPORTS]

reports=no

[MESSAGE CONTROL]

#
# Disabled due to redundancy with flake8:
#   bad-continuation
#   line-too-long
#   trailing-whitespace
#
# Disabled due to useless noise:
#   locally-disabled
#   too-few-public-methods
#
# Disabled temporarily
#   missing-returns-doc (https://github.com/PyCQA/pylint/pull/1008)
#   missing-raises-doc (https://github.com/PyCQA/pylint/pull/1011)
#   duplicate-code (https://github.com/PyCQA/pylint/pull/1055,
#                   https://github.com/PyCQA/pylint/issues/214)
#
disable=bad-continuation,
  duplicate-code,
  fixme,
  line-too-long,
  locally-disabled,
  too-few-public-methods,
  trailing-whitespace,
  missing-returns-doc,
  missing-raises-doc

[BASIC]

# In invalid-name checker:
# - allow '_' variable name to indicate "unused"
# - allow variable names 'rc', 'ui', 'vm', as valid despite usual 3-char min
# - allow 'logger' as a "global constant" name
# - accept unittest.TestCase.'maxDiff' attribute
good-names=_,rc,ui,vm,logger,_,maxDiff

# In invalid-name checker:
# - ignore length of test case method names (test_*)
# - don't complain about assertFooBar() method naming conventions in unittest.
method-rgx=(test_[a-z0-9_]*|assert[A-Z][a-zA-Z0-9_]*|[a-z_][a-z0-9_]{2,30})$

[DESIGN]

# Current thresholds - to be driven down over time

# default: max-args=5
# current worst offender: add_disk_worker
max-args=10
# default: max-attributes=7
# current worst offender: OVF
max-attributes=29
# default: max-bool-expr=5
# default: max-branches=12
# default: max-locals=15
# current worst offender: OVF.profile_info_list
max-locals=29
# default: max-public-methods=20
# current worst offender: OVF
max-public-methods=73
# default: max-returns=6
# default: max-statements=50

[DOCS]

accept-no-param-doc=no
accept-no-return-type-doc=yes

[FORMAT]

# default: max-module-lines: 1000
# current worst offender: ovf.py
max-module-lines=3100

[LOGGING]

logging-modules=logging,verboselogs

[VARIABLES]

# Any _foo variable is a valid dummy name
dummy-variables-rgx=^_.*$
