A list of pylint-errors with reasoning and examples of erroneous and correct code.
It's not required to install CLI util as long as you can navigate list of errors here or on this web-site but you may want to do so.
You can install a stable release simply by such commands:
$ python3 -m pip install plerr
$ plerr r1710
For pipx:
$ python3 -m pip install pipx # if not yet installed pipx
$ python3 -m pipx ensurepath # ensure directory where pipx stores apps is on PATH
$ pipx install plerr
$ plerr r1710
In order to use development plerr
builds you need to invoke the following commands:
$ git clone https://github.com/vald-phoenix/pylint-errors.git
$ sudo apt update && sudo apt install -y python3-pip # if not yet installed
$ cd pylint-errors
$ python3 setup.py test
$ python3 setup.py install --user
$ python3 -m plerr r1710
pipx users may install the library by such commands:
$ git clone https://github.com/vald-phoenix/pylint-errors.git
$ sudo apt install -y make python3-pip python3-venv # if not yet installed
$ cd pylint-errors
$ python3 -m pip install pipx wheel # install a package to build a wheel and pipx
$ python3 -m pipx ensurepath # ensure directory where pipx stores apps is on PATH
$ python3 setup.py test # run tests
$ make clean
$ python3 setup.py bdist_wheel # build a binary wheel
$ pipx install dist/* # install a binary wheel by pipx
$ plerr r1710
In order to get the latest updates just git pull origin master
and invoke a
command in the root of the project (sudo apt install make
if not yet
installed) make rai
to install to Python 3 user space site packages or
make raip
for pipx.
Error codes with [+] mean they've got examples of bad and good code. Rationalisation provided for all entries.
- C0102 (blacklisted-name) [+]
- C0103 (invalid-name) [+]
- C0112 (empty-docstring) [+]
- C0114 (missing-module-docstring) [+]
- C0115 (missing-class-docstring) [+]
- C0116 (missing-function-docstring) [+]
- C0121 (singleton-comparison) [+]
- C0122 (misplaced-comparison-constant) [+]
- C0123 (unidiomatic-typecheck) [+]
- E0100 (init-is-generator) [+]
- E0101 (return-in-init) [+]
- E0102 (function-redefined) [+]
- E0103 (not-in-loop) [+]
- E0104 (return-outside-function) [+]
- E0105 (yield-outside-function) [+]
- E0106 (return-arg-in-generator)
- E0107 (nonexistent-operator) [+]
- E0108 (duplicate-argument-name) [+]
- E0110 (abstract-class-instantiated) [+]
- E0111 (bad-reversed-sequence) [+]
- E0112 (too-many-star-expressions) [+]
- E0113 (invalid-star-assignment-target) [+]
- E0114 (star-needs-assignment-target) [+]
- E0115 (nonlocal-and-global) [+]
- E0116 (continue-in-finally) [+]
- E0117 (nonlocal-without-binding) [+]
- E0118 (used-prior-global-declaration) [+]
- E0119 (misplaced-format-function) [+]
- R0123 (literal-comparison) [+]
- R0124 (comparison-with-itself) [+]
- W0101 (unreachable) [+]
- W0102 (dangerous-default-value) [+]
- W0104 (pointless-statement) [+]
- W0105 (pointless-string-statement) [+]
- W0106 (expression-not-assigned) [+]
- W0107 (unnecessary-pass) [+]
- W0108 (unnecessary-lambda) [+]
- W0109 (duplicate-key) [+]
- W0111 (assign-to-new-keyword) [+]
- W0120 (useless-else-on-loop) [+]
- W0122 (exec-used) [+]
- W0123 (eval-used) [+]
- W0124 (confusing-with-statement) [+]
- W0125 (using-constant-test)
- W0126 (missing-parentheses-for-call-in-test)
- W0127 (self-assigning-variable) [+]
- W0128 (redeclared-assigned-name)
- W0143 (comparison-with-callable) [+]
- W0150 (lost-exception) [+]
- W0199 (assert-on-tuple) [+]
- C0202 (bad-classmethod-argument) [+]
- C0203 (bad-mcs-method-argument) [+]
- C0204 (bad-mcs-classmethod-argument) [+]
- C0205 (single-string-used-for-slots) [+]
- E0202 (method-hidden) [+]
- E0203 (access-member-before-definition) [+]
- E0211 (no-method-argument) [+]
- E0213 (no-self-argument) [+]
- E0236 (invalid-slots-object) [+]
- E0237 (assigning-non-slot) [+]
- E0238 (invalid-slots) [+]
- E0239 (inherit-non-class) [+]
- E0240 (inconsistent-mro) [+]
- E0241 (duplicate-bases) [+]
- E0242 (class-variable-slots-conflict) [+]
- E0301 (non-iterator-returned) [+]
- E0302 (unexpected-special-method-signature) [+]
- E0303 (invalid-length-returned) [+]
- F0202 (method-check-failed)
- R0201 (no-self-use) [+]
- R0202 (no-classmethod-decorator) [+]
- R0203 (no-staticmethod-decorator) [+]
- R0205 (useless-object-inheritance) [+]
- R0206 (property-with-parameters) [+]
- W0201 (attribute-defined-outside-init) [+]
- W0211 (bad-staticmethod-argument) [+]
- W0212 (protected-access) [+]
- W0221 (arguments-differ) [+]
- W0222 (signature-differs)
- W0223 (abstract-method) [+]
- W0231 (super-init-not-called) [+]
- W0232 (no-init) [+]
- W0233 (non-parent-init-called) [+]
- W0235 (useless-super-delegation) [+]
- W0236 (invalid-overridden-method) [+]
- R0901 (too-many-ancestors) [+]
- R0902 (too-many-instance-attributes) [+]
- R0903 (too-few-public-methods) [+]
- R0904 (too-many-public-methods) [+]
- R0911 (too-many-return-statements) [+]
- R0912 (too-many-branches) [+]
- R0913 (too-many-arguments) [+]
- R0914 (too-many-locals) [+]
- R0915 (too-many-statements) [+]
- R0916 (too-many-boolean-expressions) [+]
- R1260 (too-complex) [+]
- E0701 (bad-except-order) [+]
- E0702 (raising-bad-type) [+]
- E0703 (bad-exception-context) [+]
- E0704 (misplaced-bare-raise) [+]
- E0710 (raising-non-exception) [+]
- E0711 (notimplemented-raised) [+]
- E0712 (catching-non-exception) [+]
- W0702 (bare-except) [+]
- W0703 (broad-except) [+]
- W0705 (duplicate-except) [+]
- W0706 (try-except-raise) [+]
- W0711 (binary-op-exception) [+]
- W0715 (raising-format-tuple)
- W0716 (wrong-exception-operation) [+]
- C0301 (line-too-long) [+]
- C0302 (too-many-lines)
- C0303 (trailing-whitespace) [+]
- C0304 (missing-final-newline)
- C0305 (trailing-newlines)
- C0321 (multiple-statements) [+]
- C0325 (superfluous-parens) [+]
- C0326 (bad-whitespace) [+]
- C0327 (mixed-line-endings)
- C0328 (unexpected-line-ending-format)
- C0330 (bad-continuation)
- W0301 (unnecessary-semicolon) [+]
- W0311 (bad-indentation) [+]
- W0312 (mixed-indentation)
- C0410 (multiple-imports) [+]
- C0411 (wrong-import-order) [+]
- C0412 (ungrouped-imports) [+]
- C0413 (wrong-import-position) [+]
- C0414 (useless-import-alias) [+]
- C0415 (import-outside-toplevel) [+]
- E0401 (import-error) [+]
- E0402 (relative-beyond-top-level) [+]
- R0401 (cyclic-import) [+]
- W0401 (wildcard-import) [+]
- W0402 (deprecated-module) [+]
- W0404 (reimported) [+]
- W0406 (import-self) [+]
- W0407 (preferred-module) [+]
- W0410 (misplaced-future) [+]
- E1200 (logging-unsupported-format)
- E1201 (logging-format-truncated)
- E1205 (logging-too-many-args)
- E1206 (logging-too-few-args)
- W1201 (logging-not-lazy) [+]
- W1202 (logging-format-interpolation) [+]
- W9005 (multiple-constructor-doc) [+]
- W9006 (missing-raises-doc) [+]
- W9008 (redundant-returns-doc)
- W9010 (redundant-yields-doc)
- W9011 (missing-return-doc) [+]
- W9012 (missing-return-type-doc) [+]
- W9013 (missing-yield-doc)
- W9014 (missing-yield-type-doc)
- W9015 (missing-param-doc) [+]
- W9016 (missing-type-doc) [+]
- W9017 (differing-param-doc) [+]
- W9018 (differing-type-doc) [+]
- C0113 (unneeded-not) [+]
- C0200 (consider-using-enumerate) [+]
- C0201 (consider-iterating-dictionary) [+]
- C1801 (len-as-condition) [+]
- R1701 (consider-merging-isinstance)
- R1702 (too-many-nested-blocks)
- R1703 (simplifiable-if-statement)
- R1704 (redefined-argument-from-local)
- R1705 (no-else-return) [+]
- R1706 (consider-using-ternary)
- R1707 (trailing-comma-tuple) [+]
- R1708 (stop-iteration-return) [+]
- R1709 (simplify-boolean-expression)
- R1710 (inconsistent-return-statements) [+]
- R1711 (useless-return) [+]
- R1712 (consider-swap-variables) [+]
- R1713 (consider-using-join) [+]
- R1714 (consider-using-in) [+]
- R1715 (consider-using-get)
- R1716 (chained-comparison) [+]
- R1717 (consider-using-dict-comprehension)
- R1718 (consider-using-set-comprehension)
- R1719 (simplifiable-if-expression) [+]
- R1720 (no-else-raise) [+]
- R1721 (unnecessary-comprehension)
- R1722 (consider-using-sys-exit) [+]
- R1723 (no-else-break) [+]
- R1724 (no-else-continue) [+]
- C0401 (wrong-spelling-in-comment)
- C0402 (wrong-spelling-in-docstring)
- C0403 (invalid-characters-in-docstring)
- E1507 (invalid-envvar-value) [+]
- W1501 (bad-open-mode) [+]
- W1502 (boolean-datetime)
- W1503 (redundant-unittest-assert) [+]
- W1505 (deprecated-method)
- W1506 (bad-thread-instantiation) [+]
- W1507 (shallow-copy-environ) [+]
- W1508 (invalid-envvar-default) [+]
- W1509 (subprocess-popen-preexec-fn) [+]
- W1510 (subprocess-run-check) [+]
- E1300 (bad-format-character) [+]
- E1301 (truncated-format-string)
- E1302 (mixed-format-string) [+]
- E1303 (format-needs-mapping)
- E1304 (missing-format-string-key) [+]
- E1305 (too-many-format-args) [+]
- E1306 (too-few-format-args) [+]
- E1307 (bad-string-format-type) [+]
- E1310 (bad-str-strip-call)
- W1300 (bad-format-string-key)
- W1301 (unused-format-string-key)
- W1302 (bad-format-string) [+]
- W1303 (missing-format-argument-key) [+]
- W1304 (unused-format-string-argument) [+]
- W1305 (format-combined-specification) [+]
- W1306 (missing-format-attribute) [+]
- W1307 (invalid-format-index) [+]
- W1308 (duplicate-string-formatting-argument)
- W1401 (anomalous-backslash-in-string)
- W1402 (anomalous-unicode-escape-in-string) [+]
- W1403 (implicit-str-concat-in-sequence)
- E1101 (no-member) [+]
- E1102 (not-callable) [+]
- E1111 (assignment-from-no-return) [+]
- E1120 (no-value-for-parameter) [+]
- E1121 (too-many-function-args) [+]
- E1123 (unexpected-keyword-arg) [+]
- E1124 (redundant-keyword-arg) [+]
- E1125 (missing-kwoa)
- E1126 (invalid-sequence-index) [+]
- E1127 (invalid-slice-index) [+]
- E1128 (assignment-from-none) [+]
- E1129 (not-context-manager) [+]
- E1130 (invalid-unary-operand-type) [+]
- E1131 (unsupported-binary-operation) [+]
- E1132 (repeated-keyword)
- E1133 (not-an-iterable) [+]
- E1134 (not-a-mapping)
- E1135 (unsupported-membership-test) [+]
- E1136 (unsubscriptable-object) [+]
- E1137 (unsupported-assignment-operation) [+]
- E1138 (unsupported-delete-operation) [+]
- E1139 (invalid-metaclass)
- E1140 (unhashable-dict-key) [+]
- E1141 (dict-iter-missing-items) [+]
- I1101 (c-extension-no-member)
- W1113 (keyword-arg-before-vararg) [+]
- W1114 (arguments-out-of-order)
- E0601 (used-before-assignment) [+]
- E0602 (undefined-variable)
- E0603 (undefined-all-variable) [+]
- E0604 (invalid-all-object) [+]
- E0611 (no-name-in-module) [+]
- E0633 (unpacking-non-sequence) [+]
- W0601 (global-variable-undefined) [+]
- W0602 (global-variable-not-assigned) [+]
- W0603 (global-statement) [+]
- W0604 (global-at-module-level) [+]
- W0611 (unused-import) [+]
- W0612 (unused-variable) [+]
- W0613 (unused-argument) [+]
- W0614 (unused-wildcard-import) [+]
- W0621 (redefined-outer-name) [+]
- W0622 (redefined-builtin) [+]
- W0623 (redefine-in-handler)
- W0631 (undefined-loop-variable) [+]
- W0632 (unbalanced-tuple-unpacking) [+]
- W0640 (cell-var-from-loop) [+]
- W0641 (possibly-unused-variable)
- W0642 (self-cls-assignment)