Provided by: pylint_2.4.4-2_all bug

NAME

       pylint - python code static checker

SYNOPSIS

       pylint [ OPTIONS ] [ <arguments> ]

DESCRIPTION

       pylint  is  a  Python  source  code analyzer which looks for programming errors, helps enforcing a coding
       standard and sniffs for some code smells (as defined in Martin Fowler's Refactoring book)

       Pylint can be seen as another PyChecker since nearly all tests you can do with PyChecker can also be done
       with Pylint. However, Pylint offers some more features, like checking length of lines of  code,  checking
       if  variable  names are well-formed according to your coding standard, or checking if declared interfaces
       are truly implemented, and much more.

       Additionally, it is possible to write plugins to add your own checks.

       Pylint is shipped with "pyreverse" (UML diagram generator) and  "symilar"  (an  independent  similarities
       checker).

OPTIONS

       --version
              show program's version number and exit

       --help, -h
              show this help message and exit

       --long-help
              more verbose help.

MASTER

       --rcfile=<file>
              Specify a configuration file.

       --init-hook=<code>
              Python code to execute, usually for sys.path manipulation such as pygtk.require().

       --errors-only, -E
              In  error  mode,  checkers  without  error  messages  are  disabled and for others, only the ERROR
              messages are displayed, and no reports are done by default.

       --py3k In Python 3 porting mode, all checkers will be disabled and only messages emitted by  the  porting
              checker will be displayed.

       --verbose, -v
              In verbose mode, extra non-checker-related info will be displayed.

       --ignore=<file>[,<file>...]
              Add files or directories to the blacklist. They should be base names, not paths. [default: CVS]

       --ignore-patterns=<pattern>[,<pattern>...]
              Add  files  or directories matching the regex patterns to the blacklist. The regex matches against
              base names, not paths. [default: none]

       --persistent=<y_or_n>
              Pickle collected data for later comparisons. [default: yes]

       --load-plugins=<modules>
              List of plugins (as comma separated values of python module names) to load,  usually  to  register
              additional checkers. [default: none]

       --jobs=<n-processes>, -j <n-processes>
              Use  multiple processes to speed up Pylint. Specifying 0 will auto-detect the number of processors
              available to use. [default: 1]

       --limit-inference-results=<number-of-results>
              Control the amount of potential inferred values when inferring a single object. This can help  the
              performance when dealing with large functions or complex, nested conditions.  [default: 100]

       --extension-pkg-whitelist=<pkg[,pkg]>
              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.  [default:
              none]

       --suggestion-mode=<yn>
              When  enabled,  pylint would attempt to guess common misconfiguration and emit user-friendly hints
              instead of false-positive error messages. [default: yes]

       --exit-zero
              Always return a 0 (non-error) status code, even if lint errors are found. This is primarily useful
              in continuous integration scripts.

       --from-stdin
              Interpret the stdin as a python script, whose filename needs to be passed as the module_or_package
              argument.

COMMANDS

       --help-msg=<msg-id>
              Display a help message for the given message id and exit. The value may be a comma separated  list
              of message ids.

       --list-msgs
              Generate pylint's messages.

       --list-groups
              List pylint's message groups.

       --list-conf-levels
              Generate pylint's confidence levels.

       --full-documentation
              Generate pylint's full documentation.

       --generate-rcfile
              Generate  a  sample  configuration  file according to the current configuration. You can put other
              options before this one to get them in the generated configuration.

MESSAGES CONTROL

       --confidence=<levels>
              Only show warnings with the listed confidence levels. Leave empty to show all. Valid levels: HIGH,
              INFERENCE, INFERENCE_FAILURE, UNDEFINED. [default: none]

       --enable=<msg ids>, -e <msg ids>
              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.

       --disable=<msg ids>, -d <msg ids>
              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".

REPORTS

       --output-format=<format>, -f <format>
              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. [default:
              text]

       --reports=<y_or_n>, -r <y_or_n>
              Tells whether to display a full report or only the messages. [default: no]

       --evaluation=<python_expression>
              Python expression which should return a score less than or equal to 10. You  have  access  to  the
              variables 'error', 'warning', 'refactor', and 'convention' which contain the number of messages in
              each category, as well as 'statement' which is the total number of statements analyzed. This score
              is  used  by the global evaluation report (RP0004). [default: 10.0 - ((float(5 * error + warning +
              refactor + convention) / statement) * 10)]

       --score=<y_or_n>, -s <y_or_n>
              Activate the evaluation score. [default: yes]

       --msg-template=<template>
              Template used to display messages. This is a python new-style format string  used  to  format  the
              message information. See doc for all details.

TYPECHECK

       --ignore-on-opaque-inference=<y_or_n>
              This  flag  controls  whether  pylint  should  warn about no-member and similar checks whenever an
              opaque object is returned when inferring. The inference  can  return  multiple  potential  results
              while  evaluating  a  Python  object,  but  some branches might not be evaluated, which results in
              partial inference. In that case, it might be useful to still emit no-member and other  checks  for
              the rest of the inferred objects. [default: yes]

       --ignore-mixin-members=<y_or_n>
              Tells whether missing members accessed in mixin class should be ignored. A mixin class is detected
              if its name ends with "mixin" (case insensitive). [default: yes]

       --ignore-none=<y_or_n>
              Tells  whether  to  warn  about  missing members when the owner of the attribute is inferred to be
              None. [default: yes]

       --ignored-modules=<module names>
              List  of  module  names  for  which  member  attributes  should  not  be   checked   (useful   for
              modules/projects  where  namespaces  are  manipulated  during  runtime  and  thus  existing member
              attributes cannot be deduced by static analysis). It supports qualified module names, as  well  as
              Unix pattern matching. [default: none]

       --ignored-classes=<members names>
              List  of  class  names  for which member attributes should not be checked (useful for classes with
              dynamically  set  attributes).   This   supports   the   use   of   qualified   names.   [default:
              optparse.Values,thread._local,_thread._local]

       --generated-members=<members names>
              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. [default: none]

       --contextmanager-decorators=<decorator names>
              List of decorators that produce context managers, such as contextlib.contextmanager. Add  to  this
              list   to   register   other   decorators   that   produce   valid   context  managers.  [default:
              contextlib.contextmanager]

       --missing-member-hint-distance=<member hint edit distance>
              The minimum edit distance a name should have in order to be  considered  a  similar  match  for  a
              missing member name. [default: 1]

       --missing-member-max-choices=<member hint max choices>
              The  total number of similar names that should be taken in consideration when showing a hint for a
              missing member. [default: 1]

       --missing-member-hint=<missing member hint>
              Show a hint with possible names when a member name was not found. The aspect of finding  the  hint
              is based on edit distance. [default: yes]

       --signature-mutators=<decorator names>
              List of decorators that change the signature of a decorated function. [default: none]

LOGGING

       --logging-modules=<comma separated list>
              Logging  modules  to  check  that  the  string  format arguments are in logging function parameter
              format. [default: logging]

       --logging-format-style=<old (%) or new ({)>
              Format style used to check logging format string. `old` means using % formatting, while  `new`  is
              for `{}` formatting. [default: old]

EXCEPTIONS

       --overgeneral-exceptions=<comma-separated class names>
              Exceptions  that  will  emit  a warning when being caught. Defaults to "BaseException, Exception".
              [default: BaseException,Exception]

SIMILARITIES

       --min-similarity-lines=<int>
              Minimum lines number of a similarity. [default: 4]

       --ignore-comments=<y or n>
              Ignore comments when computing similarities. [default: yes]

       --ignore-docstrings=<y or n>
              Ignore docstrings when computing similarities. [default: yes]

       --ignore-imports=<y or n>
              Ignore imports when computing similarities. [default: no]

IMPORTS

       --deprecated-modules=<modules>
              Deprecated modules which should not be used, separated by a comma. [default: optparse,tkinter.tix]

       --preferred-modules=<module:preferred-module>
              Couples of modules and preferred modules, separated by a comma. [default: none]

       --import-graph=<file.dot>
              Create a graph of every (i.e. internal and external) dependencies in the given file (report RP0402
              must not be disabled). [default: none]

       --ext-import-graph=<file.dot>
              Create a graph of external dependencies in the given file (report RP0402 must  not  be  disabled).
              [default: none]

       --int-import-graph=<file.dot>
              Create  a  graph  of internal dependencies in the given file (report RP0402 must not be disabled).
              [default: none]

       --known-standard-library=<modules>
              Force import order to recognize  a  module  as  part  of  the  standard  compatibility  libraries.
              [default: none]

       --known-third-party=<modules>
              Force import order to recognize a module as part of a third party library. [default: enchant]

       --analyse-fallback-blocks=<y_or_n>
              Analyse  import  fallback blocks. This can be used to support both Python 2 and 3 compatible code,
              which means that the block might have code that exists only in one or another interpreter, leading
              to false positives when analysed. [default: no]

       --allow-wildcard-with-all=<y_or_n>
              Allow wildcard imports from modules that define __all__. [default: no]

VARIABLES

       --init-import=<y_or_n>
              Tells whether we should check for unused import in __init__ files. [default: no]

       --dummy-variables-rgx=<regexp>
              A regular expression matching the name  of  dummy  variables  (i.e.  expected  to  not  be  used).
              [default: _+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_]

       --additional-builtins=<comma separated list>
              List  of  additional  names  supposed  to  be  defined in builtins. Remember that you should avoid
              defining new builtins when possible. [default: none]

       --callbacks=<callbacks>
              List of strings which can identify a callback function by name. A callback name must start or  end
              with one of those strings. [default: cb_,_cb]

       --redefining-builtins-modules=<comma separated list>
              List  of  qualified  module  names  which  can  have objects that can redefine builtins. [default:
              six.moves,past.builtins,future.builtins,builtins,io]

       --ignored-argument-names=<regexp>
              Argument names that  match  this  expression  will  be  ignored.  Default  to  name  with  leading
              underscore. [default: _.*|^ignored_|^unused_]

       --allow-global-unused-variables=<y_or_n>
              Tells whether unused global variables should be treated as a violation. [default: yes]

CLASSES

       --defining-attr-methods=<method names>
              List   of   method   names   used   to   declare  (i.e.  assign)  instance  attributes.  [default:
              __init__,__new__,setUp]

       --valid-classmethod-first-arg=<argument names>
              List of valid names for the first argument in a class method. [default: cls]

       --valid-metaclass-classmethod-first-arg=<argument names>
              List of valid names for the first argument in a metaclass class method. [default: cls]

       --exclude-protected=<protected access exclusions>
              List of member names, which should be  excluded  from  the  protected  access  warning.  [default:
              _asdict,_fields,_replace,_source,_make]

SPELLING

       --spelling-dict=<dict name>
              Spelling  dictionary  name.  Available  dictionaries:  none.  To make it work, install the python-
              enchant package. [default: none]

       --spelling-ignore-words=<comma separated words>
              List of comma separated words that should not be checked. [default: none]

       --spelling-private-dict-file=<path to file>
              A path to a file that contains the private dictionary; one word per line. [default: none]

       --spelling-store-unknown-words=<y_or_n>
              Tells whether to store unknown words to the private dictionary (see  the  --spelling-private-dict-
              file option) instead of raising a message. [default: no]

       --max-spelling-suggestions=N
              Limits count of emitted suggestions for spelling mistakes. [default: 4]

FORMAT

       --max-line-length=<int>
              Maximum number of characters on a single line. [default: 100]

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

       --single-line-if-stmt=<y_or_n>
              Allow the body of an if to be on the same line as the test if there is no else. [default: no]

       --single-line-class-stmt=<y_or_n>
              Allow the body of a class to be on the same line  as  the  declaration  if  body  contains  single
              statement. [default: no]

       --no-space-check=trailing-comma,dict-separator,empty-line
              List of optional constructs for which whitespace checking is disabled. `dict-separator` is used to
              allow  tabulation in dicts, etc.: {1  : 1,\n222: 2}. `trailing-comma` allows a space between comma
              and closing bracket: (a, ). `empty-line` allows space-only lines.  [default:  trailing-comma,dict-
              separator]

       --max-module-lines=<int>
              Maximum number of lines in a module. [default: 1000]

       --indent-string=<string>
              String  used  as  indentation unit. This is usually "    " (4 spaces) or "\t" (1 tab). [default: '
              ']

       --indent-after-paren=<int>
              Number of spaces of indent required inside a hanging or continued line. [default: 4]

       --expected-line-ending-format=<empty or LF or CRLF>
              Expected format of line ending, e.g. empty (any line ending), LF or CRLF. [default: none]

BASIC

       --good-names=<names>
              Good  variable  names  which  should  always  be  accepted,  separated  by  a   comma.   [default:
              i,j,k,ex,Run,_]

       --bad-names=<names>
              Bad   variable   names   which   should  always  be  refused,  separated  by  a  comma.  [default:
              foo,bar,baz,toto,tutu,tata]

       --name-group=<name1:name2>
              Colon-delimited sets of names that determine each other's naming style when the name regexes allow
              several styles. [default: none]

       --include-naming-hint=<y_or_n>
              Include a hint for the correct naming format with invalid-name. [default: no]

       --property-classes=<decorator names>
              List of decorators that produce properties, such as abc.abstractproperty.  Add  to  this  list  to
              register   other  decorators  that  produce  valid  properties.  These  decorators  are  taken  in
              consideration only for invalid-name. [default: abc.abstractproperty]

       --argument-naming-style=<style>
              Naming style matching correct argument names. [default: snake_case]

       --argument-rgx=<regexp>
              Regular expression matching correct argument names. Overrides argument-naming-style.

       --attr-naming-style=<style>
              Naming style matching correct attribute names. [default: snake_case]

       --attr-rgx=<regexp>
              Regular expression matching correct attribute names. Overrides attr-naming-style.

       --class-naming-style=<style>
              Naming style matching correct class names. [default: PascalCase]

       --class-rgx=<regexp>
              Regular expression matching correct class names. Overrides class-naming-style.

       --class-attribute-naming-style=<style>
              Naming style matching correct class attribute names. [default: any]

       --class-attribute-rgx=<regexp>
              Regular expression matching correct class attribute names. Overrides class-attribute-naming-style.

       --const-naming-style=<style>
              Naming style matching correct constant names. [default: UPPER_CASE]

       --const-rgx=<regexp>
              Regular expression matching correct constant names. Overrides const-naming-style.

       --function-naming-style=<style>
              Naming style matching correct function names. [default: snake_case]

       --function-rgx=<regexp>
              Regular expression matching correct function names. Overrides function-naming-style.

       --inlinevar-naming-style=<style>
              Naming style matching correct inline iteration names. [default: any]

       --inlinevar-rgx=<regexp>
              Regular expression matching correct inline iteration names. Overrides inlinevar-naming-style.

       --method-naming-style=<style>
              Naming style matching correct method names. [default: snake_case]

       --method-rgx=<regexp>
              Regular expression matching correct method names. Overrides method-naming-style.

       --module-naming-style=<style>
              Naming style matching correct module names. [default: snake_case]

       --module-rgx=<regexp>
              Regular expression matching correct module names. Overrides module-naming-style.

       --variable-naming-style=<style>
              Naming style matching correct variable names. [default: snake_case]

       --variable-rgx=<regexp>
              Regular expression matching correct variable names. Overrides variable-naming-style.

       --no-docstring-rgx=<regexp>
              Regular expression which should only  match  function  or  class  names  that  do  not  require  a
              docstring. [default: ^_]

       --docstring-min-length=<int>
              Minimum  line  length  for  functions/classes  that  require  docstrings, shorter ones are exempt.
              [default: -1]

MISCELLANEOUS

       --notes=<comma separated values>
              List of note tags to take in consideration, separated by a comma. [default: FIXME,XXX,TODO]

DESIGN

       --max-args=<int>
              Maximum number of arguments for function / method. [default: 5]

       --max-locals=<int>
              Maximum number of locals for function / method body. [default: 15]

       --max-returns=<int>
              Maximum number of return / yield for function / method body. [default: 6]

       --max-branches=<int>
              Maximum number of branch for function / method body. [default: 12]

       --max-statements=<int>
              Maximum number of statements in function / method body. [default: 50]

       --max-parents=<num>
              Maximum number of parents for a class (see R0901). [default: 7]

       --max-attributes=<num>
              Maximum number of attributes for a class (see R0902). [default: 7]

       --min-public-methods=<num>
              Minimum number of public methods for a class (see R0903). [default: 2]

       --max-public-methods=<num>
              Maximum number of public methods for a class (see R0904). [default: 20]

       --max-bool-expr=<num>
              Maximum number of boolean expressions in an if statement (see R0916). [default: 5]

REFACTORING

       --max-nested-blocks=<int>
              Maximum number of nested blocks for function / method body [default: 5]

       --never-returning-functions=NEVER_RETURNING_FUNCTIONS
              Complete name of functions that never returns. When checking for inconsistent-return-statements if
              a never returning function is called then it will be considered as an  explicit  return  statement
              and no message will be printed. [default: sys.exit]

STRING

       --check-str-concat-over-line-jumps=<y_or_n>
              This  flag  controls  whether  the  implicit-str-concat-in-sequence  should  generate a warning on
              implicit string concatenation in sequences defined over several lines. [default: no]

ENVIRONMENT VARIABLES

       The following environment variables are used:
           * PYLINTHOME
           Path to the directory where persistent data for the run will be stored. If not found, it defaults  to
       ~/.pylint.d/ or .pylint.d (in the current working directory).
           * PYLINTRC
           Path to the configuration file. See the documentation for the method used to search for configuration
       file.

OUTPUT

       Using the default text output, the message format is :

               MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE

       There are 5 kind of message types :
           * (C) convention, for programming standard violation
           * (R) refactor, for bad code smell
           * (W) warning, for python specific problems
           * (E) error, for probable bugs in the code
           * (F) fatal, if an error occurred which prevented pylint from doing further processing.

OUTPUT STATUS CODE

       Pylint should leave with following status code:
           * 0 if everything went fine
           * 1 if a fatal message was issued
           * 2 if an error message was issued
           * 4 if a warning message was issued
           * 8 if a refactor message was issued
           * 16 if a convention message was issued
           * 32 on usage error

       status  1  to 16 will be bit-ORed so you can know which different categories has been issued by analysing
       pylint output status code

SEE ALSO

       /usr/share/doc/pythonX.Y-pylint/

BUGS

       Please report bugs on the project's mailing list: mailto:code-quality@python.org

AUTHOR

       Python Code Quality Authority <code-quality@python.org>

pylint                                             2019-06-29                                          pylint(1)