├── .coveragerc ├── .git-blame-ignore-revs ├── .gitattributes ├── .github ├── CODEOWNERS ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── BUG-REPORT.yml │ ├── FEATURE-REQUEST.yml │ ├── QUESTION.yml │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── SECURITY.md ├── dependabot.yml └── workflows │ ├── backport.yml │ ├── changelog.yml │ ├── checks.yaml │ ├── codeql-analysis.yml │ ├── primer-test.yaml │ ├── primer_comment.yaml │ ├── primer_run_main.yaml │ ├── primer_run_pr.yaml │ ├── release.yml │ ├── stale.yml │ └── tests.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .pre-commit-hooks.yaml ├── .readthedocs.yaml ├── CITATION.cff ├── CODE_OF_CONDUCT.md ├── CONTRIBUTORS.txt ├── LICENSE ├── MANIFEST.in ├── README.rst ├── codecov.yml ├── custom_dict.txt ├── doc ├── Makefile ├── additional_tools │ ├── pyreverse │ │ ├── configuration.rst │ │ ├── index.rst │ │ └── output_examples.rst │ └── symilar │ │ └── index.rst ├── conf.py ├── contact.rst ├── data │ ├── messages │ │ ├── a │ │ │ ├── abstract-class-instantiated │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── abstract-method │ │ │ │ ├── bad │ │ │ │ │ ├── abstract_method.py │ │ │ │ │ └── function_raising_not_implemented_error.py │ │ │ │ └── good │ │ │ │ │ ├── abstract_method.py │ │ │ │ │ └── function_raising_not_implemented_error.py │ │ │ ├── access-member-before-definition │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── anomalous-backslash-in-string │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── double_escape.py │ │ │ │ │ ├── existing_escape_sequence.py │ │ │ │ │ └── r_prefix.py │ │ │ │ └── related.rst │ │ │ ├── anomalous-unicode-escape-in-string │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── arguments-differ │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── add_option_in_base_class.py │ │ │ │ │ ├── default_value.py │ │ │ │ │ └── no_inheritance.py │ │ │ │ └── related.rst │ │ │ ├── arguments-out-of-order │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── arguments-renamed │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── assert-on-string-literal │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── assert-on-tuple │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── assigning-non-slot │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── assignment-from-no-return │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── assignment-from-none │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── astroid-error │ │ │ │ └── details.rst │ │ │ ├── attribute-defined-outside-init │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── await-outside-async │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ ├── b │ │ │ ├── bad-builtin │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── bad-chained-comparison │ │ │ │ ├── bad │ │ │ │ │ ├── parrot.py │ │ │ │ │ └── xor.py │ │ │ │ ├── good │ │ │ │ │ ├── parrot.py │ │ │ │ │ └── xor.py │ │ │ │ └── related.rst │ │ │ ├── bad-classmethod-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-configuration-section │ │ │ │ └── details.rst │ │ │ ├── bad-docstring-quotes │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── bad-dunder-name │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── bad-except-order │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-exception-cause │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── bad-file-encoding │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-format-character │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── bad-format-string-key │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── bad-format-string │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── bad-indentation │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── bad-inline-option │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-mcs-classmethod-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-mcs-method-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-open-mode │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-plugin-value │ │ │ │ └── details.rst │ │ │ ├── bad-reversed-sequence │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-staticmethod-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bad-str-strip-call │ │ │ │ ├── bad │ │ │ │ │ ├── hello_world.py │ │ │ │ │ └── remove_abc_from_both_side.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── hello_world.py │ │ │ │ │ └── remove_abc_from_both_side.py │ │ │ │ └── related.rst │ │ │ ├── bad-string-format-type │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── bad-super-call │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── bad-thread-instantiation │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── bare-except │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── bidirectional-unicode │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── binary-op-exception │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── boolean-datetime │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── broad-exception-caught │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── broad-exception-raised │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── broken-collections-callable │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ └── broken-noreturn │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ ├── c │ │ │ ├── c-extension-no-member │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── catching-non-exception │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── cell-var-from-loop │ │ │ │ ├── bad.py │ │ │ │ ├── good │ │ │ │ │ ├── functools.partial.py │ │ │ │ │ └── new_function.py │ │ │ │ └── related.rst │ │ │ ├── chained-comparison │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── class-variable-slots-conflict │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── comparison-of-constants │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── comparison-with-callable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── comparison-with-itself │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── condition-evals-to-constant │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── config-parse-error │ │ │ │ └── details.rst │ │ │ ├── confusing-consecutive-elif │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── confusing-with-statement │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-alternative-union-syntax │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-iterating-dictionary │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-merging-isinstance │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-refactoring-into-while-condition │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-swap-variables │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-ternary-expression │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-alias │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-any-or-all │ │ │ │ ├── bad │ │ │ │ │ ├── all_even.py │ │ │ │ │ └── any_even.py │ │ │ │ ├── good │ │ │ │ │ ├── all_even.py │ │ │ │ │ └── any_even.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-assignment-expr │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-augmented-assign │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-dict-comprehension │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── consider-using-dict-items │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-enumerate │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-f-string │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── consider-using-from-import │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-generator │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── consider-using-get │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-in │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-join │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-max-builtin │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-min-builtin │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-namedtuple-or-dataclass │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-set-comprehension │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── consider-using-sys-exit │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-ternary │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── consider-using-tuple │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── consider-using-with │ │ │ │ ├── bad │ │ │ │ │ ├── close.py │ │ │ │ │ └── not_even_close.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── contextmanager-generator-missing-cleanup │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── continue-in-finally │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ └── cyclic-import │ │ │ │ ├── bad │ │ │ │ ├── __init__.py │ │ │ │ ├── bad.py │ │ │ │ └── bad2.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ ├── d │ │ │ ├── dangerous-default-value │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── declare-non-slot │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── deprecated-argument │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── deprecated-attribute │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── deprecated-class │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── deprecated-decorator │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── deprecated-method │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── deprecated-module │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── deprecated-pragma │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── deprecated-typing-alias │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── dict-init-mutate │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── dict-iter-missing-items │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── differing-param-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── differing-type-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── disallowed-name │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── docstring-first-line-empty │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── duplicate-argument-name │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── duplicate-bases │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── duplicate-code │ │ │ │ ├── bad │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── apple.py │ │ │ │ │ └── orange.py │ │ │ │ ├── details.rst │ │ │ │ └── good │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── apple.py │ │ │ │ │ ├── fruit.py │ │ │ │ │ └── orange.py │ │ │ ├── duplicate-except │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── duplicate-key │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── duplicate-string-formatting-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── duplicate-value │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── e │ │ │ ├── else-if-used │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── empty-comment │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── empty-docstring │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── eq-without-hash │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── eval-used │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── exec-used │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ └── expression-not-assigned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── f │ │ │ ├── f-string-without-interpolation │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── fatal │ │ │ │ └── details.rst │ │ │ ├── file-ignored │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── fixme │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good │ │ │ │ │ ├── bug_tracker.py │ │ │ │ │ ├── fixed.py │ │ │ │ │ └── no_fix.py │ │ │ ├── forgotten-debug-statement │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── format-combined-specification │ │ │ │ ├── bad.py │ │ │ │ └── good │ │ │ │ │ ├── index_formatting.py │ │ │ │ │ └── order_formatting.py │ │ │ ├── format-needs-mapping │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── format-string-without-interpolation │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── function-redefined │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── g │ │ │ ├── global-at-module-level │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── global-statement │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── global-variable-not-assigned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── global-variable-undefined │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── i │ │ │ ├── implicit-flag-alias │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── implicit-str-concat │ │ │ │ ├── bad │ │ │ │ │ ├── list.py │ │ │ │ │ └── open.py │ │ │ │ ├── details.rst │ │ │ │ └── good │ │ │ │ │ ├── list.py │ │ │ │ │ └── open.py │ │ │ ├── import-error │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── import-outside-toplevel │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── import-private-name │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── import-self │ │ │ │ └── details.rst │ │ │ ├── inconsistent-mro │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── inconsistent-quotes │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── inconsistent-return-statements │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── inherit-non-class │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── init-is-generator │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-all-format │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-all-object │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── invalid-bool-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-bytes-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-character-backspace │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-character-carriage-return │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── invalid-character-esc │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-character-nul │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── invalid-character-sub │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-character-zero-width-space │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-characters-in-docstring │ │ │ │ └── details.rst │ │ │ ├── invalid-class-object │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-enum-extension │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-envvar-default │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-envvar-value │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-field-call │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-format-index │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-format-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-getnewargs-ex-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-getnewargs-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-hash-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-index-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-length-hint-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-length-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-metaclass │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-name │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── invalid-overridden-method │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-repr-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-sequence-index │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── invalid-slice-index │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-slice-step │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-slots-object │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── invalid-slots │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-star-assignment-target │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-str-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-unary-operand-type │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── invalid-unicode-codec │ │ │ │ └── details.rst │ │ │ └── isinstance-second-argument-not-valid-type │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── k │ │ │ ├── keyword-arg-before-vararg │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── kwarg-superseded-by-positional-arg │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── l │ │ │ ├── line-too-long │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── literal-comparison │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── locally-disabled │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── logging-format-interpolation │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── logging-format-truncated │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── logging-fstring-interpolation │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── logging-not-lazy │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── logging-too-few-args │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── logging-too-many-args │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── logging-unsupported-format │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── lost-exception │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── m │ │ │ ├── magic-value-comparison │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── method-cache-max-size-none │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── method-check-failed │ │ │ │ └── details.rst │ │ │ ├── method-hidden │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── misplaced-bare-raise │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── misplaced-comparison-constant │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── misplaced-format-function │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── misplaced-future │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── missing-any-param-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-class-docstring │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-final-newline │ │ │ │ ├── bad │ │ │ │ │ ├── crlf.py │ │ │ │ │ └── lf.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── crlf.py │ │ │ │ │ └── lf.py │ │ │ │ └── related.rst │ │ │ ├── missing-format-argument-key │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── missing-format-attribute │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-format-string-key │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-function-docstring │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-kwoa │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-module-docstring │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-param-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-parentheses-for-call-in-test │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── missing-raises-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-return-doc │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-return-type-doc │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-timeout │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── missing-type-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-yield-doc │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── missing-yield-type-doc │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── mixed-format-string │ │ │ │ ├── bad.py │ │ │ │ └── good │ │ │ │ │ ├── only_named.py │ │ │ │ │ └── only_ordered.py │ │ │ ├── mixed-line-endings │ │ │ │ ├── bad.py │ │ │ │ ├── good │ │ │ │ │ ├── full_crlf.py │ │ │ │ │ └── full_lf.py │ │ │ │ └── related.rst │ │ │ ├── modified-iterating-dict │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── modified-iterating-list │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── modified-iterating-set │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── multiple-constructor-doc │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── multiple-imports │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── multiple-statements │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── n │ │ │ ├── named-expr-without-context │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── nan-comparison │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── nested-min-max │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-classmethod-decorator │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-else-break │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-else-continue │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-else-raise │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-else-return │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-member │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── no-method-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-name-in-module │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-self-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-self-use │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── function.py │ │ │ │ │ ├── staticmethod.py │ │ │ │ │ └── use_self.py │ │ │ │ └── pylintrc │ │ │ ├── no-staticmethod-decorator │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── no-value-for-parameter │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── non-ascii-file-name │ │ │ │ ├── bad │ │ │ │ │ ├── bàd.py │ │ │ │ │ └── not_bétter.py │ │ │ │ ├── good │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── bad.py │ │ │ │ │ └── not_better.py │ │ │ │ └── related.rst │ │ │ ├── non-ascii-module-import │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── non-ascii-name │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── non-iterator-returned │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── non-parent-init-called │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── non-str-assignment-to-dunder-name │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── nonexistent-operator │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── nonlocal-and-global │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── nonlocal-without-binding │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── not-a-mapping │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── not-an-iterable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── not-async-context-manager │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── not-callable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── not-context-manager │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── not-in-loop │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── notimplemented-raised │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── o │ │ │ ├── overlapping-except │ │ │ │ ├── bad.py │ │ │ │ ├── good │ │ │ │ │ ├── less_generic_first.py │ │ │ │ │ └── only_generic.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ └── overridden-final-method │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ ├── p │ │ │ ├── parse-error │ │ │ │ └── details.rst │ │ │ ├── pointless-exception-statement │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── pointless-statement │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── pointless-string-statement │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── positional-only-arguments-expected │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── possibly-unused-variable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── possibly-used-before-assignment │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── potential-index-error │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── prefer-typing-namedtuple │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── preferred-module │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── property-with-parameters │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ └── protected-access │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── r │ │ │ ├── raise-missing-from │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── raising-bad-type │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── raising-format-tuple │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── raising-non-exception │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── raw-checker-failed │ │ │ │ └── details.rst │ │ │ ├── redeclared-assigned-name │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── redefined-argument-from-local │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── redefined-builtin │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── redefined-loop-name │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── redefined-outer-name │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── redefined-slots-in-subclass │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── redefined-variable-type │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── redundant-keyword-arg │ │ │ │ ├── bad.py │ │ │ │ └── good │ │ │ │ │ ├── only_arg.py │ │ │ │ │ └── only_kwarg.py │ │ │ ├── redundant-returns-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── redundant-typehint-argument │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── redundant-u-string-prefix │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── redundant-unittest-assert │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── redundant-yields-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── reimported │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── relative-beyond-top-level │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── absolute_import.py │ │ │ │ │ └── fix_the_relative_import.py │ │ │ │ └── related.rst │ │ │ ├── repeated-keyword │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── return-arg-in-generator │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── return-in-finally │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── return-in-init │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ └── return-outside-function │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── s │ │ │ ├── self-assigning-variable │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── self-cls-assignment │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── shadowed-import │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── shallow-copy-environ │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── signature-differs │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── simplifiable-condition │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── simplifiable-if-expression │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── simplifiable-if-statement │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── simplify-boolean-expression │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── single-string-used-for-slots │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── singledispatch-method │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── singledispatchmethod-function │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── singleton-comparison │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── star-needs-assignment-target │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── stop-iteration-return │ │ │ │ ├── bad │ │ │ │ │ ├── fruit_generator.py │ │ │ │ │ ├── two_fruit_generator.py │ │ │ │ │ └── two_good_fruit_generator.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── fruit_generator.py │ │ │ │ │ ├── two_fruit_generator.py │ │ │ │ │ └── two_good_fruit_generator.py │ │ │ │ └── related.rst │ │ │ ├── subclassed-final-class │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── subprocess-popen-preexec-fn │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── subprocess-run-check │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── super-init-not-called │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── super-with-arguments │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── super-without-brackets │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── superfluous-parens │ │ │ │ ├── bad │ │ │ │ │ ├── example_1.py │ │ │ │ │ └── example_2.py │ │ │ │ └── good │ │ │ │ │ ├── example_1.py │ │ │ │ │ └── example_2.py │ │ │ ├── suppressed-message │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ └── syntax-error │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ ├── t │ │ │ ├── too-complex │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── too-few-format-args │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── too-few-public-methods │ │ │ │ ├── bad.py │ │ │ │ └── good │ │ │ │ │ ├── dataclass_and_function.py │ │ │ │ │ ├── function.py │ │ │ │ │ └── larger_api.py │ │ │ ├── too-many-ancestors │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-arguments │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-boolean-expressions │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-branches │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── too-many-format-args │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── too-many-function-args │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-instance-attributes │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-lines │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── is_palindrome.py │ │ │ │ │ └── main.py │ │ │ │ └── pylintrc │ │ │ ├── too-many-locals │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── too-many-nested-blocks │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-positional-arguments │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── too-many-public-methods │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── too-many-return-statements │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-star-expressions │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── too-many-statements │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── too-many-try-statements │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── trailing-comma-tuple │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── trailing-newlines │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── trailing-whitespace │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── truncated-format-string │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── try-except-raise │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good │ │ │ │ │ ├── remove_try_except.py │ │ │ │ │ └── specialized_exception.py │ │ │ ├── typevar-double-variance │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── typevar-name-incorrect-variance │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ └── typevar-name-mismatch │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ ├── u │ │ │ ├── unbalanced-dict-unpacking │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unbalanced-tuple-unpacking │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── undefined-all-variable │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── undefined-loop-variable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── undefined-variable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unexpected-keyword-arg │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unexpected-line-ending-format │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── unexpected-special-method-signature │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── ungrouped-imports │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unhashable-member │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unidiomatic-typecheck │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── unknown-option-value │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-comprehension │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-default-type-args │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── unnecessary-dict-index-lookup │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-direct-lambda-call │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-dunder-call │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-ellipsis │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-lambda-assignment │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-lambda │ │ │ │ ├── bad │ │ │ │ │ ├── pandas.py │ │ │ │ │ └── print.py │ │ │ │ └── good │ │ │ │ │ ├── pandas.py │ │ │ │ │ └── print.py │ │ │ ├── unnecessary-list-index-lookup │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-negation │ │ │ │ ├── bad │ │ │ │ │ ├── double_not.py │ │ │ │ │ └── equivalent_comparator_exists.py │ │ │ │ └── good │ │ │ │ │ ├── double_not.py │ │ │ │ │ └── equivalent_comparator_exists.py │ │ │ ├── unnecessary-pass │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unnecessary-semicolon │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unpacking-non-sequence │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unreachable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unrecognized-inline-option │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unrecognized-option │ │ │ │ └── details.rst │ │ │ ├── unspecified-encoding │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unsubscriptable-object │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unsupported-assignment-operation │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unsupported-binary-operation │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── unsupported-delete-operation │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unsupported-membership-test │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unused-argument │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unused-format-string-argument │ │ │ │ ├── bad.py │ │ │ │ └── good │ │ │ │ │ ├── add_format_target.py │ │ │ │ │ └── remove_unused_args.py │ │ │ ├── unused-format-string-key │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unused-import │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── unused-private-member │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unused-variable │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── unused-wildcard-import │ │ │ │ ├── bad.py │ │ │ │ ├── detail.rst │ │ │ │ └── good.py │ │ │ ├── use-a-generator │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── use-dict-literal │ │ │ │ ├── bad │ │ │ │ │ ├── empty_dict.py │ │ │ │ │ ├── init_dict_from_another.py │ │ │ │ │ └── init_with_keyword.py │ │ │ │ ├── details.rst │ │ │ │ ├── good │ │ │ │ │ ├── empty_dict.py │ │ │ │ │ ├── init_dict_from_another.py │ │ │ │ │ └── init_with_literal.py │ │ │ │ └── related.rst │ │ │ ├── use-implicit-booleaness-not-comparison-to-string │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── use-implicit-booleaness-not-comparison-to-zero │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── use-implicit-booleaness-not-comparison │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── use-implicit-booleaness-not-len │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── use-list-literal │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── use-maxsplit-arg │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── use-sequence-for-iteration │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good │ │ │ │ │ ├── list.py │ │ │ │ │ └── tuple.py │ │ │ ├── use-set-for-membership │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── use-symbolic-message-instead │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── use-yield-from │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── used-before-assignment │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── used-prior-global-declaration │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── useless-else-on-loop │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── useless-import-alias │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── useless-object-inheritance │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── useless-option-value │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ └── good.py │ │ │ ├── useless-param-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── useless-parent-delegation │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── related.rst │ │ │ ├── useless-return │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── useless-suppression │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── useless-type-doc │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── useless-with-lock │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── using-assignment-expression-in-unsupported-version │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── using-constant-test │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── using-exception-groups-in-unsupported-version │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── using-f-string-in-unsupported-version │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ ├── using-final-decorator-in-unsupported-version │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── using-generic-type-syntax-in-unsupported-version │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ └── using-positional-only-args-in-unsupported-version │ │ │ │ ├── bad.py │ │ │ │ ├── details.rst │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ ├── w │ │ │ ├── while-used │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ ├── pylintrc │ │ │ │ └── related.rst │ │ │ ├── wildcard-import │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── wrong-exception-operation │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── wrong-import-order │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── wrong-import-position │ │ │ │ ├── bad.py │ │ │ │ └── good.py │ │ │ ├── wrong-spelling-in-comment │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ │ └── wrong-spelling-in-docstring │ │ │ │ ├── bad.py │ │ │ │ ├── good.py │ │ │ │ └── pylintrc │ │ └── y │ │ │ ├── yield-inside-async-function │ │ │ ├── bad.py │ │ │ ├── details.rst │ │ │ ├── good.py │ │ │ └── related.rst │ │ │ └── yield-outside-function │ │ │ ├── bad.py │ │ │ └── good.py │ └── ruff.toml ├── development_guide │ ├── api │ │ ├── index.rst │ │ └── pylint.rst │ ├── contributor_guide │ │ ├── contribute.rst │ │ ├── governance.rst │ │ ├── index.rst │ │ ├── major_release.rst │ │ ├── minor_release.rst │ │ ├── oss_fuzz.rst │ │ ├── patch_release.rst │ │ ├── profiling.rst │ │ ├── release.rst │ │ └── tests │ │ │ ├── index.rst │ │ │ ├── install.rst │ │ │ ├── launching_test.rst │ │ │ └── writing_test.rst │ ├── how_tos │ │ ├── custom_checkers.rst │ │ ├── index.rst │ │ ├── plugins.rst │ │ └── transform_plugins.rst │ └── technical_reference │ │ ├── checkers.rst │ │ ├── index.rst │ │ └── startup.rst ├── exts │ ├── pylint_extensions.py │ ├── pylint_features.py │ ├── pylint_messages.py │ ├── pylint_options.py │ └── pyreverse_configuration.py ├── faq.rst ├── index.rst ├── logo.png ├── logo.svg ├── make.bat ├── media │ ├── ClassChecker_diagram.png │ ├── Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png │ ├── Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png │ ├── pyreverse_example_classes.png │ └── pyreverse_example_packages.png ├── readthedoc_requirements.txt ├── requirements.txt ├── short_text_contribute.rst ├── short_text_installation.rst ├── test_messages_documentation.py ├── tutorial.rst ├── user_guide │ ├── checkers │ │ ├── extensions.rst │ │ ├── features.rst │ │ └── index.rst │ ├── configuration │ │ ├── .gitkeep │ │ ├── all-options.rst │ │ └── index.rst │ ├── installation │ │ ├── badge.rst │ │ ├── command_line_installation.rst │ │ ├── ide_integration │ │ │ ├── flymake-emacs.rst │ │ │ ├── index.rst │ │ │ └── textmate.rst │ │ ├── index.rst │ │ ├── pre-commit-integration.rst │ │ ├── upgrading_pylint.rst │ │ └── with-multiple-interpreters.rst │ ├── messages │ │ ├── index.rst │ │ ├── message_control.rst │ │ └── messages_overview.rst │ └── usage │ │ ├── index.rst │ │ ├── output.rst │ │ └── run.rst └── whatsnew │ ├── 0 │ ├── 0.x.rst │ └── index.rst │ ├── 1 │ ├── 1.0.rst │ ├── 1.1.rst │ ├── 1.2.rst │ ├── 1.3.rst │ ├── 1.4.rst │ ├── 1.5.rst │ ├── 1.6 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 1.7 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 1.8 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 1.9 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ └── index.rst │ ├── 2 │ ├── 2.0 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.1 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.10 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.11 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.12 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.13 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.14 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.15 │ │ └── index.rst │ ├── 2.16 │ │ └── index.rst │ ├── 2.17 │ │ └── index.rst │ ├── 2.2 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.3 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.4 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.5 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.6 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.7 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.8 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ ├── 2.9 │ │ ├── full.rst │ │ ├── index.rst │ │ └── summary.rst │ └── index.rst │ ├── 3 │ ├── 3.0 │ │ └── index.rst │ ├── 3.1 │ │ └── index.rst │ ├── 3.2 │ │ └── index.rst │ ├── 3.3 │ │ └── index.rst │ └── index.rst │ ├── 4 │ ├── 4.0 │ │ └── index.rst │ └── index.rst │ ├── fragments │ ├── 10028.false_negative │ ├── 10057.feature │ ├── 10061.false_positive │ ├── 10065.false_positive │ ├── 10071.breaking │ ├── 10073.bugfix │ ├── 10077.feature │ ├── 10081.bugfix │ ├── 10103.bugfix │ ├── 10105.bugfix │ ├── 10106.bugfix │ ├── 10161.false_positive │ ├── 10189.bugfix │ ├── 10203.bugfix │ ├── 10208.false_positive │ ├── 10211.false_positive │ ├── 10217.bugfix │ ├── 10236.feature │ ├── 10242.feature │ ├── 10256.other │ ├── 10277.other │ ├── 10282.bugfix │ ├── 10287.feature │ ├── 10334.bugfix │ ├── 10373.bugfix │ ├── 10382.internal │ ├── 10402.bugfix │ ├── 3585.breaking │ ├── 8893.false_negative │ ├── 9255.breaking │ ├── 9255.feature │ ├── 9353.feature │ ├── 9357.feature │ ├── 9668.false_positive │ ├── 9689.breaking │ ├── 9770.false_negative │ ├── 9962.breaking │ ├── 9999.false_negative │ └── _template.rst │ ├── full_changelog_explanation.rst │ ├── index.rst │ └── summary_explanation.rst ├── examples ├── Dockerfile ├── custom.py ├── custom_raw.py ├── deprecation_checker.py ├── pylintrc ├── pylintrc_camelcase └── pyproject.toml ├── pylint ├── __init__.py ├── __main__.py ├── __pkginfo__.py ├── checkers │ ├── __init__.py │ ├── async_checker.py │ ├── bad_chained_comparison.py │ ├── base │ │ ├── __init__.py │ │ ├── basic_checker.py │ │ ├── basic_error_checker.py │ │ ├── comparison_checker.py │ │ ├── docstring_checker.py │ │ ├── function_checker.py │ │ ├── name_checker │ │ │ ├── __init__.py │ │ │ ├── checker.py │ │ │ └── naming_style.py │ │ └── pass_checker.py │ ├── base_checker.py │ ├── classes │ │ ├── __init__.py │ │ ├── class_checker.py │ │ └── special_methods_checker.py │ ├── clear_lru_cache.py │ ├── dataclass_checker.py │ ├── deprecated.py │ ├── design_analysis.py │ ├── dunder_methods.py │ ├── ellipsis_checker.py │ ├── exceptions.py │ ├── format.py │ ├── imports.py │ ├── lambda_expressions.py │ ├── logging.py │ ├── method_args.py │ ├── misc.py │ ├── modified_iterating_checker.py │ ├── nested_min_max.py │ ├── newstyle.py │ ├── non_ascii_names.py │ ├── raw_metrics.py │ ├── refactoring │ │ ├── __init__.py │ │ ├── implicit_booleaness_checker.py │ │ ├── not_checker.py │ │ ├── recommendation_checker.py │ │ └── refactoring_checker.py │ ├── spelling.py │ ├── stdlib.py │ ├── strings.py │ ├── symilar.py │ ├── threading_checker.py │ ├── typecheck.py │ ├── unicode.py │ ├── unsupported_version.py │ ├── utils.py │ └── variables.py ├── config │ ├── __init__.py │ ├── _breaking_changes.py │ ├── _pylint_config │ │ ├── __init__.py │ │ ├── generate_command.py │ │ ├── help_message.py │ │ ├── main.py │ │ ├── setup.py │ │ └── utils.py │ ├── argument.py │ ├── arguments_manager.py │ ├── arguments_provider.py │ ├── callback_actions.py │ ├── config_file_parser.py │ ├── config_initialization.py │ ├── deprecation_actions.py │ ├── exceptions.py │ ├── find_default_config_files.py │ ├── help_formatter.py │ └── utils.py ├── constants.py ├── exceptions.py ├── extensions │ ├── __init__.py │ ├── _check_docs_utils.py │ ├── bad_builtin.py │ ├── bad_builtin.rst │ ├── broad_try_clause.py │ ├── check_elif.py │ ├── code_style.py │ ├── code_style.rst │ ├── comparison_placement.py │ ├── confusing_elif.py │ ├── consider_refactoring_into_while_condition.py │ ├── consider_ternary_expression.py │ ├── dict_init_mutate.py │ ├── docparams.py │ ├── docparams.rst │ ├── docstyle.py │ ├── dunder.py │ ├── empty_comment.py │ ├── eq_without_hash.py │ ├── for_any_all.py │ ├── magic_value.py │ ├── mccabe.py │ ├── mccabe.rst │ ├── no_self_use.py │ ├── overlapping_exceptions.py │ ├── private_import.py │ ├── redefined_loop_name.py │ ├── redefined_variable_type.py │ ├── set_membership.py │ ├── typing.py │ ├── typing.rst │ └── while_used.py ├── graph.py ├── interfaces.py ├── lint │ ├── __init__.py │ ├── base_options.py │ ├── caching.py │ ├── expand_modules.py │ ├── message_state_handler.py │ ├── parallel.py │ ├── pylinter.py │ ├── report_functions.py │ ├── run.py │ └── utils.py ├── message │ ├── __init__.py │ ├── _deleted_message_ids.py │ ├── message.py │ ├── message_definition.py │ ├── message_definition_store.py │ └── message_id_store.py ├── py.typed ├── pyreverse │ ├── __init__.py │ ├── diadefslib.py │ ├── diagrams.py │ ├── dot_printer.py │ ├── inspector.py │ ├── main.py │ ├── mermaidjs_printer.py │ ├── plantuml_printer.py │ ├── printer.py │ ├── printer_factory.py │ ├── utils.py │ └── writer.py ├── reporters │ ├── __init__.py │ ├── base_reporter.py │ ├── collecting_reporter.py │ ├── json_reporter.py │ ├── multi_reporter.py │ ├── progress_reporters.py │ ├── reports_handler_mix_in.py │ ├── text.py │ └── ureports │ │ ├── __init__.py │ │ ├── base_writer.py │ │ ├── nodes.py │ │ └── text_writer.py ├── testutils │ ├── __init__.py │ ├── _primer │ │ ├── __init__.py │ │ ├── package_to_lint.py │ │ ├── primer.py │ │ ├── primer_command.py │ │ ├── primer_compare_command.py │ │ ├── primer_prepare_command.py │ │ └── primer_run_command.py │ ├── _run.py │ ├── checker_test_case.py │ ├── configuration_test.py │ ├── constants.py │ ├── decorator.py │ ├── functional │ │ ├── __init__.py │ │ ├── find_functional_tests.py │ │ ├── lint_module_output_update.py │ │ └── test_file.py │ ├── get_test_info.py │ ├── global_test_linter.py │ ├── lint_module_test.py │ ├── output_line.py │ ├── pyreverse.py │ ├── reporter_for_tests.py │ ├── testing_pylintrc │ ├── tokenize_str.py │ ├── unittest_linter.py │ └── utils.py ├── typing.py └── utils │ ├── __init__.py │ ├── ast_walker.py │ ├── docs.py │ ├── file_state.py │ ├── linterstats.py │ ├── pragma_parser.py │ └── utils.py ├── pylintrc ├── pyproject.toml ├── requirements_test.txt ├── requirements_test_min.txt ├── requirements_test_pre_commit.txt ├── script ├── .contributors_aliases.json ├── __init__.py ├── bump_changelog.py ├── check_newsfragments.py ├── copyright.txt ├── create_contributor_list.py └── get_unused_message_id_category.py ├── tbump.toml ├── tests ├── .pylint_primer_tests │ └── .gitkeep ├── benchmark │ └── test_baseline_benchmarks.py ├── checkers │ ├── __init__.py │ ├── base │ │ ├── unittest_base.py │ │ ├── unittest_multi_naming_style.py │ │ └── unittest_name_preset.py │ ├── conftest.py │ ├── unittest_base_checker.py │ ├── unittest_deprecated.py │ ├── unittest_design.py │ ├── unittest_format.py │ ├── unittest_imports.py │ ├── unittest_misc.py │ ├── unittest_non_ascii_name.py │ ├── unittest_refactoring.py │ ├── unittest_spelling.py │ ├── unittest_stdlib.py │ ├── unittest_strings.py │ ├── unittest_symilar.py │ ├── unittest_typecheck.py │ ├── unittest_unicode │ │ ├── __init__.py │ │ ├── unittest_bad_chars.py │ │ ├── unittest_bidirectional_unicode.py │ │ ├── unittest_functions.py │ │ └── unittest_invalid_encoding.py │ ├── unittest_utils.py │ └── unittest_variables.py ├── config │ ├── conftest.py │ ├── data │ │ ├── logging_format_interpolation_style.py │ │ └── logging_format_interpolation_style.rc │ ├── file_to_lint.py │ ├── functional │ │ ├── ini │ │ │ ├── pylintrc_with_deleted_message.8.out │ │ │ ├── pylintrc_with_deleted_message.ini │ │ │ ├── pylintrc_with_deleted_message.result.json │ │ │ ├── pylintrc_with_interpolation_error.1.out │ │ │ ├── pylintrc_with_interpolation_error.ini │ │ │ ├── pylintrc_with_interpolation_error.result.json │ │ │ ├── pylintrc_with_message_control.ini │ │ │ ├── pylintrc_with_message_control.result.json │ │ │ ├── pylintrc_with_missing_comma.4.out │ │ │ ├── pylintrc_with_missing_comma.ini │ │ │ ├── pylintrc_with_missing_comma.result.json │ │ │ ├── pylintrc_with_multi_line_init_hook.ini │ │ │ ├── pylintrc_with_quoted_init_hook.0.out │ │ │ └── pylintrc_with_quoted_init_hook.ini │ │ ├── setup_cfg │ │ │ ├── do_not_read_other_tools_configuration │ │ │ │ ├── setup.4.out │ │ │ │ ├── setup.cfg │ │ │ │ └── setup.result.json │ │ │ ├── identical_name_in_flake8 │ │ │ │ ├── setup.cfg │ │ │ │ └── setup.result.json │ │ │ ├── issue_3630 │ │ │ │ ├── not_setup.2.out │ │ │ │ ├── not_setup.cfg │ │ │ │ ├── not_setup.result.json │ │ │ │ ├── setup.2.out │ │ │ │ ├── setup.cfg │ │ │ │ └── setup.result.json │ │ │ ├── issue_4272 │ │ │ │ ├── option_in_wrong_section.cfg │ │ │ │ └── option_in_wrong_section.result.json │ │ │ ├── setup_cfg_with_message_control.cfg │ │ │ └── setup_cfg_with_message_control.result.json │ │ ├── toml │ │ │ ├── issue_3122 │ │ │ │ ├── toml_with_missing_comma.4.out │ │ │ │ ├── toml_with_missing_comma.result.json │ │ │ │ └── toml_with_missing_comma.toml │ │ │ ├── issue_3181 │ │ │ │ ├── toml_decode_error.1.out │ │ │ │ ├── toml_decode_error.toml │ │ │ │ ├── top_level_list_of_disable.result.json │ │ │ │ └── top_level_list_of_disable.toml │ │ │ ├── issue_4580 │ │ │ │ ├── correct_basic_name_group.result.json │ │ │ │ ├── correct_basic_name_group.toml │ │ │ │ ├── correct_import_preferred_module.result.json │ │ │ │ ├── correct_import_preferred_module.toml │ │ │ │ ├── rich_types.result.json │ │ │ │ ├── rich_types.toml │ │ │ │ ├── top_level_disable.result.json │ │ │ │ ├── top_level_disable.toml │ │ │ │ ├── valid_data_for_basic.result.json │ │ │ │ ├── valid_data_for_basic.toml │ │ │ │ ├── valid_data_for_import.result.json │ │ │ │ └── valid_data_for_import.toml │ │ │ ├── issue_4746 │ │ │ │ ├── loaded_plugin_does_not_exists.2.out │ │ │ │ ├── loaded_plugin_does_not_exists.result.json │ │ │ │ └── loaded_plugin_does_not_exists.toml │ │ │ ├── issue_9680 │ │ │ │ ├── bad_regex_in_ignore_paths.32.out │ │ │ │ └── bad_regex_in_ignore_paths.toml │ │ │ ├── rich_types.result.json │ │ │ ├── rich_types.toml │ │ │ ├── toml_with_enable.result.json │ │ │ ├── toml_with_enable.toml │ │ │ ├── toml_with_message_control.result.json │ │ │ ├── toml_with_message_control.toml │ │ │ ├── toml_with_mutually_exclusive_disable_enable_all.toml │ │ │ ├── toml_with_specific_disable_before_enable_all.toml │ │ │ ├── toml_with_specific_enable_before_disable_all.toml │ │ │ ├── toml_with_unknown_option.2.out │ │ │ ├── toml_with_unknown_option.result.json │ │ │ ├── toml_with_unknown_option.toml │ │ │ ├── toml_without_pylint.toml │ │ │ └── unknown_msgid │ │ │ │ ├── enable_unknown_msgid.4.out │ │ │ │ ├── enable_unknown_msgid.result.json │ │ │ │ └── enable_unknown_msgid.toml │ │ └── tox │ │ │ └── unrecognized_options │ │ │ ├── tox.ini │ │ │ └── tox.result.json │ ├── pylint_config │ │ ├── test_pylint_config_generate.py │ │ ├── test_pylint_config_help.py │ │ ├── test_pylint_config_utils.py │ │ └── test_run_pylint_config.py │ ├── test_argparse_config.py │ ├── test_config.py │ ├── test_find_default_config_files.py │ ├── test_functional_config_loading.py │ └── test_per_directory_config.py ├── conftest.py ├── data │ ├── __init__.py │ ├── a_script │ ├── clientmodule_test.py │ ├── empty_pylintrc │ ├── nullable_pattern.py │ ├── property_pattern.py │ └── suppliermodule_test.py ├── extensions │ ├── __init__.py │ ├── test_check_docs_utils.py │ └── test_private_import.py ├── functional │ ├── __init__.py │ ├── a │ │ ├── __init__.py │ │ ├── abstract │ │ │ ├── abstract_abc_methods.py │ │ │ ├── abstract_class_instantiated.py │ │ │ ├── abstract_class_instantiated.txt │ │ │ ├── abstract_class_instantiated_in_class.py │ │ │ ├── abstract_method.py │ │ │ └── abstract_method.txt │ │ ├── access │ │ │ ├── access_attr_before_def_false_positive.py │ │ │ ├── access_attr_before_def_false_positive.rc │ │ │ ├── access_member_before_definition.py │ │ │ ├── access_member_before_definition.txt │ │ │ ├── access_to__name__.py │ │ │ ├── access_to__name__.txt │ │ │ ├── access_to_protected_members.py │ │ │ ├── access_to_protected_members.txt │ │ │ └── access_to_protected_members_typing.py │ │ ├── alternative │ │ │ ├── alternative_union_syntax.py │ │ │ ├── alternative_union_syntax.rc │ │ │ ├── alternative_union_syntax_error.py │ │ │ ├── alternative_union_syntax_error.rc │ │ │ ├── alternative_union_syntax_error.txt │ │ │ ├── alternative_union_syntax_py37.py │ │ │ ├── alternative_union_syntax_py37.rc │ │ │ ├── alternative_union_syntax_py37.txt │ │ │ ├── alternative_union_syntax_regession_8119.py │ │ │ └── alternative_union_syntax_regession_8119.rc │ │ ├── anomalous_backslash_escape.py │ │ ├── anomalous_backslash_escape.txt │ │ ├── anomalous_unicode_escape.py │ │ ├── anomalous_unicode_escape.txt │ │ ├── arguments.py │ │ ├── arguments.rc │ │ ├── arguments.txt │ │ ├── arguments_differ.py │ │ ├── arguments_differ.txt │ │ ├── arguments_differ_issue5371.py │ │ ├── arguments_out_of_order.py │ │ ├── arguments_out_of_order.txt │ │ ├── arguments_renamed.py │ │ ├── arguments_renamed.txt │ │ ├── assert_on_string_literal.py │ │ ├── assert_on_string_literal.txt │ │ ├── assert_on_tuple.py │ │ ├── assert_on_tuple.txt │ │ ├── assigning │ │ │ ├── assigning_non_slot.py │ │ │ ├── assigning_non_slot.txt │ │ │ ├── assigning_non_slot_4509.py │ │ │ └── assigning_non_slot_4509.txt │ │ ├── assignment │ │ │ ├── assignment_expression.py │ │ │ ├── assignment_expression.txt │ │ │ ├── assignment_from_no_return.py │ │ │ ├── assignment_from_no_return.txt │ │ │ ├── assignment_from_no_return_2.py │ │ │ ├── assignment_from_no_return_2.txt │ │ │ └── assignment_from_no_return_py3.py │ │ ├── async_functions.py │ │ ├── async_functions.txt │ │ ├── attribute_defined_outside_init.py │ │ ├── attribute_defined_outside_init.txt │ │ ├── attribute_defined_outside_init_py38.py │ │ ├── attribute_defined_outside_init_py38.rc │ │ ├── await_outside_async.py │ │ └── await_outside_async.txt │ ├── b │ │ ├── __init__.py │ │ ├── bad_chained_comparison.py │ │ ├── bad_chained_comparison.txt │ │ ├── bad_char │ │ │ ├── bad_char_backspace.py │ │ │ ├── bad_char_backspace.txt │ │ │ ├── bad_char_carriage_return.py │ │ │ ├── bad_char_carriage_return.rc │ │ │ ├── bad_char_carriage_return.txt │ │ │ ├── bad_char_esc.py │ │ │ ├── bad_char_esc.txt │ │ │ ├── bad_char_sub.py │ │ │ ├── bad_char_sub.txt │ │ │ ├── bad_char_zero_width_space.py │ │ │ └── bad_char_zero_width_space.txt │ │ ├── bad_except_order.py │ │ ├── bad_except_order.txt │ │ ├── bad_exception_cause.py │ │ ├── bad_exception_cause.txt │ │ ├── bad_indentation.py │ │ ├── bad_indentation.txt │ │ ├── bad_inline_option.py │ │ ├── bad_inline_option.rc │ │ ├── bad_inline_option.txt │ │ ├── bad_open_mode.py │ │ ├── bad_open_mode.txt │ │ ├── bad_option_value.py │ │ ├── bad_option_value.txt │ │ ├── bad_option_value_disable.py │ │ ├── bad_option_value_disable.txt │ │ ├── bad_reversed_sequence.py │ │ ├── bad_reversed_sequence.txt │ │ ├── bad_reversed_sequence_py37.py │ │ ├── bad_reversed_sequence_py37.rc │ │ ├── bad_reversed_sequence_py37.txt │ │ ├── bad_reversed_sequence_py38.py │ │ ├── bad_staticmethod_argument.py │ │ ├── bad_staticmethod_argument.txt │ │ ├── bad_string_format_type.py │ │ ├── bad_string_format_type.txt │ │ ├── bad_thread_instantiation.py │ │ ├── bad_thread_instantiation.txt │ │ ├── bare_except.py │ │ ├── bare_except.txt │ │ ├── base_init_vars.py │ │ ├── boolean_datetime.py │ │ ├── boolean_datetime.rc │ │ ├── boolean_datetime.txt │ │ ├── broad_exception │ │ │ ├── broad_exception_caught.py │ │ │ ├── broad_exception_caught.rc │ │ │ ├── broad_exception_caught.txt │ │ │ ├── broad_exception_caught_trystar.py │ │ │ ├── broad_exception_caught_trystar.rc │ │ │ ├── broad_exception_caught_trystar.txt │ │ │ ├── broad_exception_raised.py │ │ │ ├── broad_exception_raised.rc │ │ │ ├── broad_exception_raised.txt │ │ │ ├── broad_exception_raised_trystar.py │ │ │ ├── broad_exception_raised_trystar.rc │ │ │ └── broad_exception_raised_trystar.txt │ │ ├── bugfix_local_scope_metaclass_1177.py │ │ └── builtin_module_test.py │ ├── c │ │ ├── __init__.py │ │ ├── cached_property.py │ │ ├── cached_property.txt │ │ ├── cell_var_from_loop_enabled_regression.py │ │ ├── cell_var_from_loop_enabled_regression.rc │ │ ├── cell_var_from_loop_enabled_regression.txt │ │ ├── cellvar_escaping_loop.py │ │ ├── cellvar_escaping_loop.txt │ │ ├── class_attributes.py │ │ ├── class_members.py │ │ ├── class_members_py30.py │ │ ├── class_members_py30.txt │ │ ├── class_protocol_ellipsis.py │ │ ├── class_scope.py │ │ ├── class_scope.txt │ │ ├── class_variable_slots_conflict_exempted.py │ │ ├── classes_meth_could_be_a_function.py │ │ ├── classes_protected_member_access.py │ │ ├── comparison_of_constants.py │ │ ├── comparison_of_constants.txt │ │ ├── comparison_with_callable.py │ │ ├── comparison_with_callable.txt │ │ ├── comparison_with_callable_typing_constants.py │ │ ├── condition_evals_to_constant.py │ │ ├── condition_evals_to_constant.txt │ │ ├── confidence_filter.py │ │ ├── confidence_filter.rc │ │ ├── confidence_filter.txt │ │ ├── confusing_with_statement.py │ │ ├── confusing_with_statement.txt │ │ ├── consider │ │ │ ├── consider_iterating_dictionary.py │ │ │ ├── consider_iterating_dictionary.txt │ │ │ ├── consider_join.py │ │ │ ├── consider_join.txt │ │ │ ├── consider_join_for_non_empty_separator.py │ │ │ ├── consider_join_for_non_empty_separator.rc │ │ │ ├── consider_merging_isinstance.py │ │ │ ├── consider_merging_isinstance.txt │ │ │ ├── consider_swap_variables.py │ │ │ ├── consider_swap_variables.txt │ │ │ ├── consider_using_dict_comprehension.py │ │ │ ├── consider_using_dict_comprehension.txt │ │ │ ├── consider_using_dict_items.py │ │ │ ├── consider_using_dict_items.txt │ │ │ ├── consider_using_enumerate.py │ │ │ ├── consider_using_enumerate.txt │ │ │ ├── consider_using_f_string.py │ │ │ ├── consider_using_f_string.txt │ │ │ ├── consider_using_generator.py │ │ │ ├── consider_using_generator.txt │ │ │ ├── consider_using_get.py │ │ │ ├── consider_using_get.txt │ │ │ ├── consider_using_in.py │ │ │ ├── consider_using_in.txt │ │ │ ├── consider_using_min_max_builtin.py │ │ │ ├── consider_using_min_max_builtin.txt │ │ │ ├── consider_using_set_comprehension.py │ │ │ ├── consider_using_set_comprehension.txt │ │ │ ├── consider_using_sys_exit.py │ │ │ ├── consider_using_sys_exit.txt │ │ │ ├── consider_using_sys_exit_exempted.py │ │ │ ├── consider_using_sys_exit_local_scope.py │ │ │ ├── consider_using_with.py │ │ │ ├── consider_using_with.txt │ │ │ ├── consider_using_with_open.py │ │ │ └── consider_using_with_open.txt │ │ ├── contextmanager_generator_missing_cleanup.py │ │ ├── contextmanager_generator_missing_cleanup.txt │ │ ├── continue_in_finally.py │ │ ├── continue_in_finally.rc │ │ ├── continue_in_finally.txt │ │ ├── control_pragmas.py │ │ ├── crash_missing_module_type.py │ │ ├── ctor_arguments.py │ │ └── ctor_arguments.txt │ ├── d │ │ ├── __init__.py │ │ ├── dangerous_default_value.py │ │ ├── dangerous_default_value.txt │ │ ├── dataclass │ │ │ ├── dataclass_kw_only.py │ │ │ ├── dataclass_kw_only.rc │ │ │ ├── dataclass_kw_only.txt │ │ │ ├── dataclass_parameter.py │ │ │ ├── dataclass_parameter.rc │ │ │ ├── dataclass_typecheck.py │ │ │ ├── dataclass_typecheck.txt │ │ │ ├── dataclass_with_default_factory.py │ │ │ ├── dataclass_with_default_factory.txt │ │ │ ├── dataclass_with_field.py │ │ │ └── dataclass_with_field.txt │ │ ├── decorator_scope.py │ │ ├── decorator_unused.py │ │ ├── defined_and_used_on_same_line.py │ │ ├── deprecated │ │ │ ├── deprecated_attribute_py312.py │ │ │ ├── deprecated_attribute_py312.rc │ │ │ ├── deprecated_attribute_py312.txt │ │ │ ├── deprecated_class_py33.py │ │ │ ├── deprecated_class_py33.rc │ │ │ ├── deprecated_class_py33.txt │ │ │ ├── deprecated_decorators.py │ │ │ ├── deprecated_decorators.txt │ │ │ ├── deprecated_method_suppression.py │ │ │ ├── deprecated_methods_py36.py │ │ │ ├── deprecated_methods_py36.txt │ │ │ ├── deprecated_methods_py39.py │ │ │ ├── deprecated_methods_py39.rc │ │ │ ├── deprecated_methods_py39.txt │ │ │ ├── deprecated_module_py3.py │ │ │ ├── deprecated_module_py3.rc │ │ │ ├── deprecated_module_py3.txt │ │ │ ├── deprecated_module_py310.py │ │ │ ├── deprecated_module_py310.rc │ │ │ ├── deprecated_module_py310.txt │ │ │ ├── deprecated_module_py33.py │ │ │ ├── deprecated_module_py33.txt │ │ │ ├── deprecated_module_py36.py │ │ │ ├── deprecated_module_py36.txt │ │ │ ├── deprecated_module_py39.py │ │ │ ├── deprecated_module_py39.rc │ │ │ ├── deprecated_module_py39.txt │ │ │ ├── deprecated_module_py39_earlier_pyversion.py │ │ │ ├── deprecated_module_py39_earlier_pyversion.rc │ │ │ ├── deprecated_module_py39_earlier_pyversion.txt │ │ │ ├── deprecated_module_py4.py │ │ │ ├── deprecated_module_py4.rc │ │ │ ├── deprecated_module_py4.txt │ │ │ ├── deprecated_module_redundant.py │ │ │ ├── deprecated_module_redundant.rc │ │ │ ├── deprecated_module_redundant.txt │ │ │ ├── deprecated_module_uninstalled.py │ │ │ ├── deprecated_module_uninstalled.rc │ │ │ ├── deprecated_module_uninstalled.txt │ │ │ └── deprecated_relative_import │ │ │ │ ├── __init__.py │ │ │ │ ├── dot_relative_import.py │ │ │ │ ├── dot_relative_import.txt │ │ │ │ └── subpackage │ │ │ │ ├── __init__.py │ │ │ │ ├── dot_dot_relative_import.py │ │ │ │ └── dot_dot_relative_import.txt │ │ ├── dict_iter_missing_items.py │ │ ├── dict_iter_missing_items.txt │ │ ├── disable_msg_github_issue_1389.py │ │ ├── disable_msg_next_line.py │ │ ├── disable_msg_next_line.txt │ │ ├── disable_ungrouped_imports.py │ │ ├── disable_ungrouped_imports.txt │ │ ├── disable_wrong_import_order.py │ │ ├── disable_wrong_import_order.txt │ │ ├── disable_wrong_import_position.py │ │ ├── disabled_msgid_in_pylintrc.py │ │ ├── disabled_msgid_in_pylintrc.rc │ │ ├── disallowed_name.py │ │ ├── disallowed_name.txt │ │ ├── docstrings.py │ │ ├── docstrings.txt │ │ ├── dotted_ancestor.py │ │ ├── dotted_ancestor.txt │ │ └── duplicate │ │ │ ├── duplicate_argument_name.py │ │ │ ├── duplicate_argument_name.txt │ │ │ ├── duplicate_bases.py │ │ │ ├── duplicate_bases.txt │ │ │ ├── duplicate_dict_literal_key.py │ │ │ ├── duplicate_dict_literal_key.txt │ │ │ ├── duplicate_except.py │ │ │ ├── duplicate_except.txt │ │ │ ├── duplicate_string_formatting_argument.py │ │ │ ├── duplicate_string_formatting_argument.txt │ │ │ ├── duplicate_value.py │ │ │ └── duplicate_value.txt │ ├── e │ │ ├── .#emacs_file_lock.py │ │ ├── .#emacs_file_lock_by_conf.py │ │ ├── .#emacs_file_lock_by_conf.rc │ │ ├── .#emacs_file_lock_redefined_conf.py │ │ ├── .#emacs_file_lock_redefined_conf.rc │ │ ├── .#emacs_file_lock_redefined_conf.txt │ │ ├── __init__.py │ │ ├── e1101_9588_base_attr_aug_assign.py │ │ ├── empty_docstring.py │ │ ├── empty_docstring.txt │ │ ├── enum_self_defined_member_5138.py │ │ ├── enum_self_defined_member_5138.txt │ │ ├── enum_self_defined_member_6805.py │ │ ├── enum_self_defined_member_6805.txt │ │ ├── enum_subclasses.py │ │ ├── eval_used.py │ │ ├── eval_used.txt │ │ ├── exception_is_binary_op.py │ │ ├── exception_is_binary_op.txt │ │ ├── excess_escapes.py │ │ ├── excess_escapes.txt │ │ ├── exec_used.py │ │ ├── exec_used.txt │ │ └── external_classmethod_crash.py │ ├── ext │ │ ├── bad_builtin │ │ │ ├── bad_builtin_extension.py │ │ │ ├── bad_builtin_extension.rc │ │ │ ├── bad_builtin_extension.txt │ │ │ ├── bad_builtins.py │ │ │ ├── bad_builtins.rc │ │ │ └── bad_builtins.txt │ │ ├── bad_dunder │ │ │ ├── bad_dunder_name.py │ │ │ ├── bad_dunder_name.rc │ │ │ └── bad_dunder_name.txt │ │ ├── broad_try_clause │ │ │ ├── broad_try_clause_extension.py │ │ │ ├── broad_try_clause_extension.rc │ │ │ └── broad_try_clause_extension.txt │ │ ├── check_elif │ │ │ ├── check_elif.py │ │ │ ├── check_elif.rc │ │ │ └── check_elif.txt │ │ ├── code_style │ │ │ ├── cs_consider_using_assignment_expr.py │ │ │ ├── cs_consider_using_assignment_expr.rc │ │ │ ├── cs_consider_using_assignment_expr.txt │ │ │ ├── cs_consider_using_augmented_assign.py │ │ │ ├── cs_consider_using_augmented_assign.rc │ │ │ ├── cs_consider_using_augmented_assign.txt │ │ │ ├── cs_consider_using_namedtuple_or_dataclass.py │ │ │ ├── cs_consider_using_namedtuple_or_dataclass.rc │ │ │ ├── cs_consider_using_namedtuple_or_dataclass.txt │ │ │ ├── cs_consider_using_tuple.py │ │ │ ├── cs_consider_using_tuple.rc │ │ │ ├── cs_consider_using_tuple.txt │ │ │ ├── cs_default.py │ │ │ ├── cs_default.rc │ │ │ ├── cs_prefer_typing_namedtuple.py │ │ │ ├── cs_prefer_typing_namedtuple.rc │ │ │ ├── cs_prefer_typing_namedtuple.txt │ │ │ ├── cs_py_version_35.py │ │ │ └── cs_py_version_35.rc │ │ ├── comparison_placement │ │ │ ├── misplaced_comparison_constant.py │ │ │ ├── misplaced_comparison_constant.rc │ │ │ └── misplaced_comparison_constant.txt │ │ ├── confusing_elif │ │ │ ├── confusing_elif.py │ │ │ ├── confusing_elif.rc │ │ │ └── confusing_elif.txt │ │ ├── consider_refactoring_into_while_condition │ │ │ ├── consider_refactoring_into_while_condition.py │ │ │ ├── consider_refactoring_into_while_condition.rc │ │ │ ├── consider_refactoring_into_while_condition.txt │ │ │ ├── consider_refactoring_into_while_condition_py38.py │ │ │ ├── consider_refactoring_into_while_condition_py38.rc │ │ │ └── consider_refactoring_into_while_condition_py38.txt │ │ ├── consider_ternary_expression │ │ │ ├── consider_ternary_expression.py │ │ │ ├── consider_ternary_expression.rc │ │ │ └── consider_ternary_expression.txt │ │ ├── dict_init_mutate.py │ │ ├── dict_init_mutate.rc │ │ ├── dict_init_mutate.txt │ │ ├── docparams │ │ │ ├── docparams.py │ │ │ ├── docparams.rc │ │ │ ├── docparams.txt │ │ │ ├── docparams_py38.py │ │ │ ├── docparams_py38.rc │ │ │ ├── docparams_py38.txt │ │ │ ├── missing_param_doc.py │ │ │ ├── missing_param_doc.rc │ │ │ ├── missing_param_doc.txt │ │ │ ├── missing_param_doc_py38.py │ │ │ ├── missing_param_doc_py38.rc │ │ │ ├── parameter │ │ │ │ ├── missing_param_doc.py │ │ │ │ ├── missing_param_doc.rc │ │ │ │ ├── missing_param_doc_required.py │ │ │ │ ├── missing_param_doc_required.rc │ │ │ │ ├── missing_param_doc_required.txt │ │ │ │ ├── missing_param_doc_required_Google.py │ │ │ │ ├── missing_param_doc_required_Google.rc │ │ │ │ ├── missing_param_doc_required_Google.txt │ │ │ │ ├── missing_param_doc_required_Numpy.py │ │ │ │ ├── missing_param_doc_required_Numpy.rc │ │ │ │ ├── missing_param_doc_required_Numpy.txt │ │ │ │ ├── missing_param_doc_required_Sphinx.py │ │ │ │ ├── missing_param_doc_required_Sphinx.rc │ │ │ │ ├── missing_param_doc_required_Sphinx.txt │ │ │ │ ├── missing_param_doc_required_min_length.py │ │ │ │ ├── missing_param_doc_required_min_length.rc │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_check_init.py │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_check_init.rc │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_check_init.txt │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_check_none.py │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_check_none.rc │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_default.py │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_default.rc │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_test_all.py │ │ │ │ ├── missing_param_doc_required_no_doc_rgx_test_all.rc │ │ │ │ └── missing_param_doc_required_no_doc_rgx_test_all.txt │ │ │ ├── raise │ │ │ │ ├── missing_raises_doc.py │ │ │ │ ├── missing_raises_doc.rc │ │ │ │ ├── missing_raises_doc.txt │ │ │ │ ├── missing_raises_doc_Google.py │ │ │ │ ├── missing_raises_doc_Google.rc │ │ │ │ ├── missing_raises_doc_Google.txt │ │ │ │ ├── missing_raises_doc_Numpy.py │ │ │ │ ├── missing_raises_doc_Numpy.rc │ │ │ │ ├── missing_raises_doc_Numpy.txt │ │ │ │ ├── missing_raises_doc_Sphinx.py │ │ │ │ ├── missing_raises_doc_Sphinx.rc │ │ │ │ ├── missing_raises_doc_Sphinx.txt │ │ │ │ ├── missing_raises_doc_options.py │ │ │ │ ├── missing_raises_doc_options.rc │ │ │ │ ├── missing_raises_doc_required.py │ │ │ │ ├── missing_raises_doc_required.rc │ │ │ │ ├── missing_raises_doc_required.txt │ │ │ │ ├── missing_raises_doc_required_Google.py │ │ │ │ ├── missing_raises_doc_required_Google.rc │ │ │ │ ├── missing_raises_doc_required_Numpy.py │ │ │ │ ├── missing_raises_doc_required_Numpy.rc │ │ │ │ ├── missing_raises_doc_required_Sphinx.py │ │ │ │ ├── missing_raises_doc_required_Sphinx.rc │ │ │ │ ├── missing_raises_doc_required_exc_inheritance.py │ │ │ │ ├── missing_raises_doc_required_exc_inheritance.rc │ │ │ │ └── missing_raises_doc_required_exc_inheritance.txt │ │ │ ├── return │ │ │ │ ├── missing_return_doc.py │ │ │ │ ├── missing_return_doc.rc │ │ │ │ ├── missing_return_doc_Google.py │ │ │ │ ├── missing_return_doc_Google.rc │ │ │ │ ├── missing_return_doc_Google.txt │ │ │ │ ├── missing_return_doc_Numpy.py │ │ │ │ ├── missing_return_doc_Numpy.rc │ │ │ │ ├── missing_return_doc_Numpy.txt │ │ │ │ ├── missing_return_doc_Sphinx.py │ │ │ │ ├── missing_return_doc_Sphinx.rc │ │ │ │ ├── missing_return_doc_Sphinx.txt │ │ │ │ ├── missing_return_doc_required.py │ │ │ │ ├── missing_return_doc_required.rc │ │ │ │ ├── missing_return_doc_required.txt │ │ │ │ ├── missing_return_doc_required_Google.py │ │ │ │ ├── missing_return_doc_required_Google.rc │ │ │ │ ├── missing_return_doc_required_Google.txt │ │ │ │ ├── missing_return_doc_required_Numpy.py │ │ │ │ ├── missing_return_doc_required_Numpy.rc │ │ │ │ ├── missing_return_doc_required_Numpy.txt │ │ │ │ ├── missing_return_doc_required_Sphinx.py │ │ │ │ ├── missing_return_doc_required_Sphinx.rc │ │ │ │ └── missing_return_doc_required_Sphinx.txt │ │ │ ├── useless_type_doc.py │ │ │ ├── useless_type_doc.rc │ │ │ ├── useless_type_doc.txt │ │ │ └── yield │ │ │ │ ├── missing_yield_doc.py │ │ │ │ ├── missing_yield_doc.rc │ │ │ │ ├── missing_yield_doc_Google.py │ │ │ │ ├── missing_yield_doc_Google.rc │ │ │ │ ├── missing_yield_doc_Google.txt │ │ │ │ ├── missing_yield_doc_Numpy.py │ │ │ │ ├── missing_yield_doc_Numpy.rc │ │ │ │ ├── missing_yield_doc_Numpy.txt │ │ │ │ ├── missing_yield_doc_Sphinx.py │ │ │ │ ├── missing_yield_doc_Sphinx.rc │ │ │ │ ├── missing_yield_doc_required.py │ │ │ │ ├── missing_yield_doc_required.rc │ │ │ │ ├── missing_yield_doc_required.txt │ │ │ │ ├── missing_yield_doc_required_Google.py │ │ │ │ ├── missing_yield_doc_required_Google.rc │ │ │ │ ├── missing_yield_doc_required_Google.txt │ │ │ │ ├── missing_yield_doc_required_Numpy.py │ │ │ │ ├── missing_yield_doc_required_Numpy.rc │ │ │ │ ├── missing_yield_doc_required_Numpy.txt │ │ │ │ ├── missing_yield_doc_required_Sphinx.py │ │ │ │ ├── missing_yield_doc_required_Sphinx.rc │ │ │ │ └── missing_yield_doc_required_Sphinx.txt │ │ ├── docstyle │ │ │ ├── docstyle_first_line_empty.py │ │ │ ├── docstyle_first_line_empty.rc │ │ │ ├── docstyle_first_line_empty.txt │ │ │ ├── docstyle_quotes.py │ │ │ ├── docstyle_quotes.rc │ │ │ └── docstyle_quotes.txt │ │ ├── empty_comment │ │ │ ├── empty_comment.py │ │ │ ├── empty_comment.rc │ │ │ └── empty_comment.txt │ │ ├── eq_without_hash │ │ │ ├── eq_without_hash.py │ │ │ ├── eq_without_hash.rc │ │ │ └── eq_without_hash.txt │ │ ├── for_any_all │ │ │ ├── for_any_all.py │ │ │ ├── for_any_all.rc │ │ │ └── for_any_all.txt │ │ ├── magic_value_comparison │ │ │ ├── magic_value_comparison.py │ │ │ ├── magic_value_comparison.rc │ │ │ └── magic_value_comparison.txt │ │ ├── mccabe │ │ │ ├── mccabe.py │ │ │ ├── mccabe.rc │ │ │ └── mccabe.txt │ │ ├── no_self_use │ │ │ ├── no_self_use.py │ │ │ ├── no_self_use.rc │ │ │ └── no_self_use.txt │ │ ├── overlapping_exceptions │ │ │ ├── overlapping_exceptions.py │ │ │ ├── overlapping_exceptions.rc │ │ │ └── overlapping_exceptions.txt │ │ ├── plugin_does_not_exists.py │ │ ├── plugin_does_not_exists.rc │ │ ├── plugin_does_not_exists.txt │ │ ├── private_import │ │ │ ├── private_import.py │ │ │ ├── private_import.rc │ │ │ └── private_import.txt │ │ ├── redefined_loop_name │ │ │ ├── redefined_loop_name.py │ │ │ ├── redefined_loop_name.rc │ │ │ ├── redefined_loop_name.txt │ │ │ ├── reused_outer_loop_variable.py │ │ │ ├── reused_outer_loop_variable.rc │ │ │ └── reused_outer_loop_variable.txt │ │ ├── redefined_variable_type │ │ │ ├── redefined_variable_type.py │ │ │ ├── redefined_variable_type.rc │ │ │ ├── redefined_variable_type.txt │ │ │ ├── regression_newtype_fstring.py │ │ │ └── regression_newtype_fstring.rc │ │ ├── set_membership │ │ │ ├── use_set_membership.py │ │ │ ├── use_set_membership.rc │ │ │ └── use_set_membership.txt │ │ ├── typing │ │ │ ├── redundant_typehint_argument.py │ │ │ ├── redundant_typehint_argument.rc │ │ │ ├── redundant_typehint_argument.txt │ │ │ ├── redundant_typehint_argument_py310.py │ │ │ ├── redundant_typehint_argument_py310.rc │ │ │ ├── redundant_typehint_argument_py310.txt │ │ │ ├── typing_broken_callable.py │ │ │ ├── typing_broken_callable.rc │ │ │ ├── typing_broken_callable.txt │ │ │ ├── typing_broken_callable_deprecated_alias.py │ │ │ ├── typing_broken_callable_deprecated_alias.rc │ │ │ ├── typing_broken_callable_future_import.py │ │ │ ├── typing_broken_callable_future_import.rc │ │ │ ├── typing_broken_callable_future_import.txt │ │ │ ├── typing_broken_noreturn.py │ │ │ ├── typing_broken_noreturn.rc │ │ │ ├── typing_broken_noreturn.txt │ │ │ ├── typing_broken_noreturn_future_import.py │ │ │ ├── typing_broken_noreturn_future_import.rc │ │ │ ├── typing_broken_noreturn_future_import.txt │ │ │ ├── typing_broken_noreturn_py372.py │ │ │ ├── typing_broken_noreturn_py372.rc │ │ │ ├── typing_consider_using_alias.py │ │ │ ├── typing_consider_using_alias.rc │ │ │ ├── typing_consider_using_alias.txt │ │ │ ├── typing_consider_using_alias_without_future.py │ │ │ ├── typing_consider_using_alias_without_future.rc │ │ │ ├── typing_consider_using_alias_without_future.txt │ │ │ ├── typing_consider_using_union.py │ │ │ ├── typing_consider_using_union.rc │ │ │ ├── typing_consider_using_union.txt │ │ │ ├── typing_consider_using_union_py310.py │ │ │ ├── typing_consider_using_union_py310.rc │ │ │ ├── typing_consider_using_union_py310.txt │ │ │ ├── typing_consider_using_union_without_future.py │ │ │ ├── typing_consider_using_union_without_future.rc │ │ │ ├── typing_consider_using_union_without_future.txt │ │ │ ├── typing_deprecated_alias.py │ │ │ ├── typing_deprecated_alias.rc │ │ │ ├── typing_deprecated_alias.txt │ │ │ ├── unnecessary_default_type_args.313.txt │ │ │ ├── unnecessary_default_type_args.py │ │ │ ├── unnecessary_default_type_args.rc │ │ │ └── unnecessary_default_type_args.txt │ │ └── while_used │ │ │ ├── while_used.py │ │ │ ├── while_used.rc │ │ │ └── while_used.txt │ ├── f │ │ ├── __init__.py │ │ ├── f_string_without_interpolation.py │ │ ├── f_string_without_interpolation.txt │ │ ├── fallback_import_disabled.py │ │ ├── fallback_import_enabled.py │ │ ├── fallback_import_enabled.rc │ │ ├── fallback_import_enabled.txt │ │ ├── first_arg.py │ │ ├── first_arg.txt │ │ ├── fixme.py │ │ ├── fixme.rc │ │ ├── fixme.txt │ │ ├── fixme_bad_formatting_1139.py │ │ ├── fixme_bad_formatting_1139.rc │ │ ├── fixme_bad_formatting_1139.txt │ │ ├── fixme_docstring.py │ │ ├── fixme_docstring.rc │ │ ├── fixme_docstring.txt │ │ ├── forgotten_debug_statement.py │ │ ├── forgotten_debug_statement.txt │ │ ├── formatted_string_literal_with_if.py │ │ ├── func_disable_linebased.py │ │ ├── func_disable_linebased.txt │ │ ├── function_redefined.py │ │ ├── function_redefined.txt │ │ ├── function_redefined_2540.py │ │ ├── future_import.py │ │ ├── future_unicode_literals.py │ │ ├── future_unicode_literals.rc │ │ └── future_unicode_literals.txt │ ├── g │ │ ├── __init__.py │ │ ├── generated_members.py │ │ ├── generated_members.rc │ │ ├── generated_members.txt │ │ ├── generic_alias │ │ │ ├── __init__.py │ │ │ ├── generic_alias_collections.py │ │ │ ├── generic_alias_collections.txt │ │ │ ├── generic_alias_mixed_py39.py │ │ │ ├── generic_alias_mixed_py39.txt │ │ │ ├── generic_alias_related.py │ │ │ ├── generic_alias_related.txt │ │ │ ├── generic_alias_related_py39.py │ │ │ ├── generic_alias_related_py39.txt │ │ │ ├── generic_alias_side_effects.py │ │ │ ├── generic_alias_side_effects.txt │ │ │ ├── generic_alias_typing.py │ │ │ └── generic_alias_typing.txt │ │ ├── generic_class_syntax.py │ │ ├── generic_class_syntax_py312.py │ │ ├── generic_class_syntax_py312.rc │ │ ├── genexp_in_class_scope.py │ │ ├── genexpr_variable_scope.py │ │ ├── genexpr_variable_scope.txt │ │ ├── globals.py │ │ └── globals.txt │ ├── i │ │ ├── __init__.py │ │ ├── implicit │ │ │ ├── implicit_flag_alias.py │ │ │ ├── implicit_flag_alias.txt │ │ │ ├── implicit_str_concat.py │ │ │ ├── implicit_str_concat.txt │ │ │ ├── implicit_str_concat_latin1.py │ │ │ ├── implicit_str_concat_latin1.txt │ │ │ ├── implicit_str_concat_multiline.py │ │ │ ├── implicit_str_concat_multiline.rc │ │ │ ├── implicit_str_concat_multiline.txt │ │ │ └── implicit_str_concat_utf8.py │ │ ├── import_aliasing.py │ │ ├── import_aliasing.txt │ │ ├── import_dummy.py │ │ ├── import_error.py │ │ ├── import_error.rc │ │ ├── import_error.txt │ │ ├── import_itself.py │ │ ├── import_itself.txt │ │ ├── import_outside_toplevel.py │ │ ├── import_outside_toplevel.rc │ │ ├── import_outside_toplevel.txt │ │ ├── inconsistent │ │ │ ├── inconsistent_mro.py │ │ │ ├── inconsistent_mro.txt │ │ │ ├── inconsistent_quotes.py │ │ │ ├── inconsistent_quotes.rc │ │ │ ├── inconsistent_quotes.txt │ │ │ ├── inconsistent_quotes2.py │ │ │ ├── inconsistent_quotes2.rc │ │ │ ├── inconsistent_quotes2.txt │ │ │ ├── inconsistent_quotes_fstring.py │ │ │ ├── inconsistent_quotes_fstring.rc │ │ │ ├── inconsistent_quotes_fstring_py312.py │ │ │ ├── inconsistent_quotes_fstring_py312.rc │ │ │ ├── inconsistent_quotes_fstring_py312.txt │ │ │ ├── inconsistent_quotes_fstring_py312_311.py │ │ │ ├── inconsistent_quotes_fstring_py312_311.rc │ │ │ ├── inconsistent_returns.py │ │ │ ├── inconsistent_returns.rc │ │ │ ├── inconsistent_returns.txt │ │ │ ├── inconsistent_returns_noreturn.py │ │ │ ├── inconsistent_returns_noreturn.rc │ │ │ └── inconsistent_returns_noreturn.txt │ │ ├── inference_crash_4692.py │ │ ├── inference_crash_4692.txt │ │ ├── inherit_non_class.py │ │ ├── inherit_non_class.txt │ │ ├── init_is_generator.py │ │ ├── init_is_generator.txt │ │ ├── init_not_called.py │ │ ├── init_not_called.txt │ │ ├── init_return_from_inner_function.py │ │ ├── init_subclass_classmethod.py │ │ ├── inner_classes.py │ │ ├── invalid │ │ │ ├── invalid_all │ │ │ │ ├── invalid_all_format.py │ │ │ │ ├── invalid_all_format.txt │ │ │ │ ├── invalid_all_format_list_confusion.py │ │ │ │ ├── invalid_all_format_list_confusion.txt │ │ │ │ ├── invalid_all_format_tuple_confusion.py │ │ │ │ ├── invalid_all_format_tuple_confusion.txt │ │ │ │ ├── invalid_all_format_valid_1.py │ │ │ │ ├── invalid_all_format_valid_2.py │ │ │ │ ├── invalid_all_format_valid_3.py │ │ │ │ ├── invalid_all_format_valid_4.py │ │ │ │ ├── invalid_all_format_valid_5.py │ │ │ │ ├── invalid_all_format_valid_6.py │ │ │ │ ├── invalid_all_object.py │ │ │ │ └── invalid_all_object.txt │ │ │ ├── invalid_bool_returned.py │ │ │ ├── invalid_bool_returned.txt │ │ │ ├── invalid_bytes_returned.py │ │ │ ├── invalid_bytes_returned.txt │ │ │ ├── invalid_class_object.py │ │ │ ├── invalid_class_object.txt │ │ │ ├── invalid_enum_extension.py │ │ │ ├── invalid_enum_extension.txt │ │ │ ├── invalid_envvar_value.py │ │ │ ├── invalid_envvar_value.txt │ │ │ ├── invalid_exceptions │ │ │ │ ├── invalid_exceptions_caught.py │ │ │ │ ├── invalid_exceptions_caught.rc │ │ │ │ ├── invalid_exceptions_caught.txt │ │ │ │ ├── invalid_exceptions_raised.py │ │ │ │ └── invalid_exceptions_raised.txt │ │ │ ├── invalid_field_call.py │ │ │ ├── invalid_field_call.txt │ │ │ ├── invalid_format_returned.py │ │ │ ├── invalid_format_returned.txt │ │ │ ├── invalid_getnewargs │ │ │ │ ├── invalid_getnewargs_ex_returned.py │ │ │ │ ├── invalid_getnewargs_ex_returned.txt │ │ │ │ ├── invalid_getnewargs_returned.py │ │ │ │ └── invalid_getnewargs_returned.txt │ │ │ ├── invalid_hash_returned.py │ │ │ ├── invalid_hash_returned.txt │ │ │ ├── invalid_index_returned.py │ │ │ ├── invalid_index_returned.txt │ │ │ ├── invalid_length │ │ │ │ ├── invalid_length_hint_returned.py │ │ │ │ ├── invalid_length_hint_returned.txt │ │ │ │ ├── invalid_length_returned.py │ │ │ │ └── invalid_length_returned.txt │ │ │ ├── invalid_metaclass.py │ │ │ ├── invalid_metaclass.txt │ │ │ ├── invalid_metaclass_py3.py │ │ │ ├── invalid_name.py │ │ │ ├── invalid_name.rc │ │ │ ├── invalid_name.txt │ │ │ ├── invalid_name │ │ │ │ ├── invalid_name-module-disable.py │ │ │ │ ├── invalid_name_enum.py │ │ │ │ ├── invalid_name_enum.txt │ │ │ │ ├── invalid_name_issue_3405.py │ │ │ │ ├── invalid_name_issue_3405.rc │ │ │ │ ├── invalid_name_issue_3405.txt │ │ │ │ ├── invalid_name_module_level.py │ │ │ │ ├── invalid_name_module_level.txt │ │ │ │ ├── invalid_name_multinaming_style.py │ │ │ │ ├── invalid_name_multinaming_style.rc │ │ │ │ ├── invalid_name_multinaming_style.txt │ │ │ │ ├── invalid_name_property.py │ │ │ │ ├── invalid_name_property.rc │ │ │ │ └── invalid_name_property.txt │ │ │ ├── invalid_overridden_method.py │ │ │ ├── invalid_overridden_method.txt │ │ │ ├── invalid_repr_returned.py │ │ │ ├── invalid_repr_returned.txt │ │ │ ├── invalid_sequence_index.py │ │ │ ├── invalid_sequence_index.txt │ │ │ ├── invalid_slice_index.py │ │ │ ├── invalid_slice_index.txt │ │ │ ├── invalid_star_assignment_target.py │ │ │ ├── invalid_star_assignment_target.txt │ │ │ ├── invalid_str_returned.py │ │ │ ├── invalid_str_returned.txt │ │ │ ├── invalid_unary_operand_type.py │ │ │ └── invalid_unary_operand_type.txt │ │ ├── isinstance_second_argument.py │ │ ├── isinstance_second_argument.txt │ │ ├── isinstance_second_argument_py310.py │ │ ├── isinstance_second_argument_py310.rc │ │ ├── isinstance_second_argument_py310.txt │ │ ├── iterable_context.py │ │ ├── iterable_context.txt │ │ ├── iterable_context_asyncio.py │ │ ├── iterable_context_asyncio.rc │ │ ├── iterable_context_py3.py │ │ ├── iterable_context_py3.txt │ │ ├── iterable_context_py36.py │ │ └── iterable_context_py36.txt │ ├── k │ │ ├── __init__.py │ │ ├── keyword_arg_before_vararg.py │ │ ├── keyword_arg_before_vararg.txt │ │ ├── keyword_arg_before_vararg_positional_only.py │ │ ├── keyword_arg_before_vararg_positional_only.txt │ │ ├── kwarg_superseded_by_positional_arg.py │ │ └── kwarg_superseded_by_positional_arg.txt │ ├── l │ │ ├── __init__.py │ │ ├── lambda_use_before_assign.py │ │ ├── line │ │ │ ├── __init__.py │ │ │ ├── line_endings.py │ │ │ ├── line_endings.rc │ │ │ ├── line_endings.txt │ │ │ ├── line_too_long.py │ │ │ ├── line_too_long.txt │ │ │ ├── line_too_long_end_of_module.py │ │ │ ├── line_too_long_with_utf8.py │ │ │ ├── line_too_long_with_utf8.txt │ │ │ └── line_too_long_with_utf8_2.py │ │ ├── literal_comparison.py │ │ ├── literal_comparison.txt │ │ ├── logging │ │ │ ├── __init__.py │ │ │ ├── logging_format_interpolation.py │ │ │ ├── logging_format_interpolation.txt │ │ │ ├── logging_format_interpolation_py36.py │ │ │ ├── logging_format_interpolation_py36.rc │ │ │ ├── logging_format_interpolation_py36.txt │ │ │ ├── logging_format_interpolation_style.py │ │ │ ├── logging_format_interpolation_style.rc │ │ │ ├── logging_fstring_interpolation_py36.py │ │ │ ├── logging_fstring_interpolation_py36.rc │ │ │ ├── logging_fstring_interpolation_py36.txt │ │ │ ├── logging_fstring_interpolation_py37.py │ │ │ ├── logging_fstring_interpolation_py37.rc │ │ │ ├── logging_fstring_interpolation_py37.txt │ │ │ ├── logging_not_lazy.py │ │ │ ├── logging_not_lazy.txt │ │ │ ├── logging_not_lazy_module.py │ │ │ ├── logging_not_lazy_module.rc │ │ │ ├── logging_not_lazy_module.txt │ │ │ ├── logging_not_lazy_with_logger.py │ │ │ ├── logging_not_lazy_with_logger.rc │ │ │ ├── logging_not_lazy_with_logger.txt │ │ │ ├── logging_too_few_args_new_style.py │ │ │ ├── logging_too_few_args_new_style.rc │ │ │ ├── logging_too_few_args_new_style.txt │ │ │ ├── logging_too_few_args_old_style.py │ │ │ ├── logging_too_few_args_old_style.rc │ │ │ ├── logging_too_few_args_old_style.txt │ │ │ ├── logging_too_many_args_new_style.py │ │ │ ├── logging_too_many_args_new_style.rc │ │ │ ├── logging_too_many_args_new_style.txt │ │ │ ├── logging_too_many_args_old_style.py │ │ │ ├── logging_too_many_args_old_style.rc │ │ │ └── logging_too_many_args_old_style.txt │ │ ├── logical_tautology.py │ │ ├── logical_tautology.txt │ │ ├── loopvar_in_dict_comp.py │ │ ├── loopvar_in_dict_comp.txt │ │ ├── lost_exception.py │ │ └── lost_exception.txt │ ├── m │ │ ├── __init__.py │ │ ├── mapping_context.py │ │ ├── mapping_context.txt │ │ ├── mapping_context_py3.py │ │ ├── mapping_context_py3.txt │ │ ├── member │ │ │ ├── member_checks.py │ │ │ ├── member_checks.txt │ │ │ ├── member_checks_async.py │ │ │ ├── member_checks_async.txt │ │ │ ├── member_checks_hints.py │ │ │ ├── member_checks_hints.rc │ │ │ ├── member_checks_hints.txt │ │ │ ├── member_checks_ignore_none.py │ │ │ ├── member_checks_ignore_none.rc │ │ │ ├── member_checks_ignore_none.txt │ │ │ ├── member_checks_inference_improvements.py │ │ │ ├── member_checks_no_hints.py │ │ │ ├── member_checks_no_hints.rc │ │ │ ├── member_checks_no_hints.txt │ │ │ ├── member_checks_opaque.py │ │ │ ├── member_checks_opaque.rc │ │ │ ├── member_checks_opaque.txt │ │ │ ├── member_checks_typed_annotations.py │ │ │ └── member_checks_typed_annotations.txt │ │ ├── membership_protocol.py │ │ ├── membership_protocol.txt │ │ ├── membership_protocol_py3.py │ │ ├── membership_protocol_py3.txt │ │ ├── metaclass_attr_access.py │ │ ├── method_cache_max_size_none.py │ │ ├── method_cache_max_size_none.txt │ │ ├── method_hidden.py │ │ ├── method_hidden.txt │ │ ├── misplaced_bare_raise.py │ │ ├── misplaced_bare_raise.txt │ │ ├── misplaced_format_function.py │ │ ├── misplaced_format_function.txt │ │ ├── misplaced_future.py │ │ ├── misplaced_future.txt │ │ ├── missing │ │ │ ├── missing_class_docstring.py │ │ │ ├── missing_class_docstring.txt │ │ │ ├── missing_docstring.py │ │ │ ├── missing_docstring.txt │ │ │ ├── missing_docstring_new_style.py │ │ │ ├── missing_docstring_new_style.txt │ │ │ ├── missing_final_newline.py │ │ │ ├── missing_final_newline.txt │ │ │ ├── missing_function_docstring.py │ │ │ ├── missing_function_docstring.rc │ │ │ ├── missing_function_docstring.txt │ │ │ ├── missing_function_docstring_min_length.py │ │ │ ├── missing_function_docstring_min_length.rc │ │ │ ├── missing_function_docstring_min_length.txt │ │ │ ├── missing_function_docstring_rgx.py │ │ │ ├── missing_function_docstring_rgx.rc │ │ │ ├── missing_function_docstring_rgx.txt │ │ │ ├── missing_kwoa.py │ │ │ ├── missing_kwoa.txt │ │ │ ├── missing_module_docstring.py │ │ │ ├── missing_module_docstring.txt │ │ │ ├── missing_module_docstring_disabled.py │ │ │ ├── missing_module_docstring_empty.py │ │ │ ├── missing_parentheses_for_call_in_test.py │ │ │ ├── missing_parentheses_for_call_in_test.txt │ │ │ ├── missing_self_argument.py │ │ │ ├── missing_self_argument.txt │ │ │ ├── missing_timeout.py │ │ │ └── missing_timeout.txt │ │ ├── mixin_class_rgx.py │ │ ├── mixin_class_rgx.rc │ │ ├── mixin_class_rgx.txt │ │ ├── modified_iterating.py │ │ ├── modified_iterating.txt │ │ ├── module___dict__.py │ │ ├── module___dict__.txt │ │ ├── monkeypatch_method.py │ │ ├── multiple_imports.py │ │ ├── multiple_imports.txt │ │ ├── multiple_statements.py │ │ ├── multiple_statements.txt │ │ ├── multiple_statements_single_line.py │ │ ├── multiple_statements_single_line.rc │ │ └── multiple_statements_single_line.txt │ ├── n │ │ ├── __init__.py │ │ ├── name │ │ │ ├── name_final.py │ │ │ ├── name_final.txt │ │ │ ├── name_final_snake_case.py │ │ │ ├── name_final_snake_case.rc │ │ │ ├── name_final_snake_case.txt │ │ │ ├── name_good_bad_names_regex.py │ │ │ ├── name_good_bad_names_regex.rc │ │ │ ├── name_good_bad_names_regex.txt │ │ │ ├── name_preset_snake_case.py │ │ │ ├── name_preset_snake_case.rc │ │ │ ├── name_preset_snake_case.txt │ │ │ ├── name_styles.py │ │ │ ├── name_styles.rc │ │ │ └── name_styles.txt │ │ ├── namePresetCamelCase.py │ │ ├── namePresetCamelCase.rc │ │ ├── namePresetCamelCase.txt │ │ ├── named_expr_without_context_py38.py │ │ ├── named_expr_without_context_py38.txt │ │ ├── namedtuple_member_inference.py │ │ ├── namedtuple_member_inference.txt │ │ ├── names_in__all__.py │ │ ├── names_in__all__.txt │ │ ├── nan_comparison_check.py │ │ ├── nan_comparison_check.txt │ │ ├── nested_blocks_issue1088.py │ │ ├── nested_blocks_issue1088.txt │ │ ├── nested_func_defined_in_loop.py │ │ ├── nested_func_defined_in_loop.txt │ │ ├── nested_min_max.py │ │ ├── nested_min_max.txt │ │ ├── nested_min_max_py39.py │ │ ├── nested_min_max_py39.txt │ │ ├── new_style_class_py_30.py │ │ ├── new_style_class_py_30.txt │ │ ├── no │ │ │ ├── __init__.py │ │ │ ├── no_classmethod_decorator.py │ │ │ ├── no_classmethod_decorator.txt │ │ │ ├── no_dummy_redefined.py │ │ │ ├── no_dummy_redefined.txt │ │ │ ├── no_else_break.py │ │ │ ├── no_else_break.txt │ │ │ ├── no_else_continue.py │ │ │ ├── no_else_continue.txt │ │ │ ├── no_else_raise.py │ │ │ ├── no_else_raise.txt │ │ │ ├── no_else_return.py │ │ │ ├── no_else_return.txt │ │ │ ├── no_member.py │ │ │ ├── no_member_assign_same_line.py │ │ │ ├── no_member_assign_same_line.txt │ │ │ ├── no_member_augassign.py │ │ │ ├── no_member_augassign.txt │ │ │ ├── no_member_binary_operations.py │ │ │ ├── no_member_dataclasses.py │ │ │ ├── no_member_dataclasses.txt │ │ │ ├── no_member_decorator.py │ │ │ ├── no_member_if_statements.py │ │ │ ├── no_member_if_statements.txt │ │ │ ├── no_member_imports.py │ │ │ ├── no_member_imports.rc │ │ │ ├── no_member_imports.txt │ │ │ ├── no_member_nested_namedtuple.py │ │ │ ├── no_member_nested_namedtuple.rc │ │ │ ├── no_member_subclassed_dataclasses.py │ │ │ ├── no_member_typevar.py │ │ │ ├── no_method_argument_py38.py │ │ │ ├── no_name_in_module.py │ │ │ ├── no_name_in_module.rc │ │ │ ├── no_name_in_module.txt │ │ │ ├── no_self_argument.py │ │ │ ├── no_self_argument.txt │ │ │ ├── no_staticmethod_decorator.py │ │ │ ├── no_staticmethod_decorator.txt │ │ │ └── no_warning_docstring.py │ │ ├── non │ │ │ ├── __init__.py │ │ │ ├── non_ascii_name.py │ │ │ ├── non_ascii_name.txt │ │ │ ├── non_ascii_name_backward_test_code.py │ │ │ ├── non_ascii_name_backward_test_msg.py │ │ │ ├── non_init_parent_called.py │ │ │ ├── non_init_parent_called.txt │ │ │ ├── non_iterator_returned.py │ │ │ ├── non_iterator_returned.txt │ │ │ ├── non_parent_init_called.py │ │ │ ├── non_str_assignment_to_dunder_name.py │ │ │ └── non_str_assignment_to_dunder_name.txt │ │ ├── non_ascii_import │ │ │ ├── __init__.py │ │ │ ├── non_ascii_import.py │ │ │ ├── non_ascii_import_as_bad.py │ │ │ ├── non_ascii_import_as_bad.txt │ │ │ ├── non_ascii_import_as_okay.py │ │ │ ├── non_ascii_import_from_as.py │ │ │ └── non_ascii_import_from_as.txt │ │ ├── non_ascii_name │ │ │ ├── __init__.py │ │ │ ├── non_ascii_name_assignment_expressions.py │ │ │ ├── non_ascii_name_assignment_expressions.txt │ │ │ ├── non_ascii_name_decorator.py │ │ │ ├── non_ascii_name_decorator.txt │ │ │ ├── non_ascii_name_dict_kwargs.py │ │ │ ├── non_ascii_name_for_loop.py │ │ │ ├── non_ascii_name_for_loop.txt │ │ │ ├── non_ascii_name_function.py │ │ │ ├── non_ascii_name_function.txt │ │ │ ├── non_ascii_name_function_argument.py │ │ │ ├── non_ascii_name_function_argument.txt │ │ │ ├── non_ascii_name_inline_var.py │ │ │ ├── non_ascii_name_inline_var.txt │ │ │ ├── non_ascii_name_kwargs.py │ │ │ ├── non_ascii_name_kwargs.txt │ │ │ ├── non_ascii_name_local.py │ │ │ ├── non_ascii_name_local.txt │ │ │ ├── non_ascii_name_loł.py │ │ │ ├── non_ascii_name_loł.txt │ │ │ ├── non_ascii_name_pos_and_kwonly_function.py │ │ │ ├── non_ascii_name_pos_and_kwonly_function.txt │ │ │ ├── non_ascii_name_staticmethod.py │ │ │ ├── non_ascii_name_staticmethod.txt │ │ │ ├── non_ascii_name_try_except.py │ │ │ ├── non_ascii_name_try_except.txt │ │ │ ├── non_ascii_name_variable.py │ │ │ └── non_ascii_name_variable.txt │ │ ├── non_ascii_name_class │ │ │ ├── __init__.py │ │ │ ├── non_ascii_name_class.py │ │ │ ├── non_ascii_name_class.txt │ │ │ ├── non_ascii_name_class_attribute.py │ │ │ ├── non_ascii_name_class_attribute.txt │ │ │ ├── non_ascii_name_class_constant.py │ │ │ ├── non_ascii_name_class_constant.txt │ │ │ ├── non_ascii_name_class_method.py │ │ │ └── non_ascii_name_class_method.txt │ │ ├── none_dunder_protocols.py │ │ ├── none_dunder_protocols.txt │ │ ├── none_dunder_protocols_py38.py │ │ ├── none_dunder_protocols_py38.txt │ │ ├── nonexistent_operator.py │ │ ├── nonexistent_operator.txt │ │ ├── nonlocal_and_global.py │ │ ├── nonlocal_and_global.txt │ │ ├── nonlocal_without_binding.py │ │ ├── nonlocal_without_binding.txt │ │ ├── not_async_context_manager.py │ │ ├── not_async_context_manager.txt │ │ ├── not_async_context_manager_py37.py │ │ ├── not_callable.py │ │ ├── not_callable.txt │ │ ├── not_context_manager.py │ │ ├── not_context_manager.txt │ │ ├── not_in_loop.py │ │ └── not_in_loop.txt │ ├── o │ │ ├── __init__.py │ │ ├── object_as_class_attribute.py │ │ ├── overloaded_operator.py │ │ ├── overridden_final_method_py38.py │ │ ├── overridden_final_method_py38.txt │ │ ├── overridden_final_method_regression.py │ │ └── overridden_final_method_regression.txt │ ├── p │ │ ├── __init__.py │ │ ├── pattern_matching.py │ │ ├── pattern_matching.rc │ │ ├── positional_only_arguments_expected.py │ │ ├── positional_only_arguments_expected.txt │ │ ├── postponed │ │ │ ├── postponed_evaluation_activated.py │ │ │ ├── postponed_evaluation_activated_with_alias.py │ │ │ ├── postponed_evaluation_not_activated.py │ │ │ ├── postponed_evaluation_not_activated.txt │ │ │ ├── postponed_evaluation_pep585.py │ │ │ └── postponed_evaluation_pep585.txt │ │ ├── potential_index_error.py │ │ ├── potential_index_error.txt │ │ ├── pragma_after_backslash.py │ │ ├── preferred_module.py │ │ ├── preferred_module.rc │ │ ├── preferred_module.txt │ │ ├── property_affectation_py26.py │ │ ├── property_with_parameters.py │ │ ├── property_with_parameters.txt │ │ ├── protected_access.py │ │ ├── protected_access.rc │ │ ├── protected_access.txt │ │ ├── protected_access_access_different_scopes.py │ │ ├── protected_access_access_different_scopes.txt │ │ ├── protected_access_special_methods_off.py │ │ ├── protected_access_special_methods_off.rc │ │ ├── protected_access_special_methods_off.txt │ │ ├── protected_access_special_methods_on.py │ │ ├── protected_access_special_methods_on.rc │ │ ├── protected_access_special_methods_on.txt │ │ ├── protocol_classes.py │ │ ├── protocol_classes.txt │ │ ├── protocol_classes_abstract.py │ │ ├── protocol_classes_abstract.txt │ │ ├── py_version_35.py │ │ └── py_version_35.rc │ ├── r │ │ ├── __init__.py │ │ ├── raise_missing_from.py │ │ ├── raise_missing_from.txt │ │ ├── raising │ │ │ ├── raising_bad_type.py │ │ │ ├── raising_bad_type.txt │ │ │ ├── raising_format_tuple.py │ │ │ ├── raising_format_tuple.txt │ │ │ ├── raising_non_exception.py │ │ │ ├── raising_non_exception.txt │ │ │ └── raising_self.py │ │ ├── recursion │ │ │ ├── recursion_error_2667.py │ │ │ ├── recursion_error_2836.py │ │ │ ├── recursion_error_2861.py │ │ │ ├── recursion_error_2899.py │ │ │ ├── recursion_error_2906.py │ │ │ ├── recursion_error_3152.py │ │ │ ├── recursion_error_3159.py │ │ │ ├── recursion_error_940.py │ │ │ ├── recursion_error_crash.py │ │ │ ├── recursion_error_crash_2683.py │ │ │ ├── recursion_error_crash_astroid_623.py │ │ │ └── recursion_regression_2960.py │ │ ├── redeclared_assigned_name.py │ │ ├── redeclared_assigned_name.rc │ │ ├── redeclared_assigned_name.txt │ │ ├── redefine_loop.py │ │ ├── redefined │ │ │ ├── redefined_argument_from_local.py │ │ │ ├── redefined_argument_from_local.txt │ │ │ ├── redefined_builtin.py │ │ │ ├── redefined_builtin.rc │ │ │ ├── redefined_builtin.txt │ │ │ ├── redefined_builtin_allowed.py │ │ │ ├── redefined_builtin_allowed.rc │ │ │ ├── redefined_builtin_allowed.txt │ │ │ ├── redefined_except_handler.py │ │ │ ├── redefined_except_handler.txt │ │ │ ├── redefined_outer_name_type_checking.py │ │ │ ├── redefined_slots.py │ │ │ └── redefined_slots.txt │ │ ├── redundant_u_string_prefix.py │ │ ├── redundant_u_string_prefix.txt │ │ ├── redundant_unittest_assert.py │ │ ├── redundant_unittest_assert.txt │ │ ├── regression │ │ │ ├── regression_1326_crash_uninferable.py │ │ │ ├── regression_2306_enum_value.py │ │ │ ├── regression_2443_duplicate_bases.py │ │ │ ├── regression_2913.py │ │ │ ├── regression_2937_ifexp.py │ │ │ ├── regression_3091.py │ │ │ ├── regression_3231_no_member_property.py │ │ │ ├── regression_3416_unused_argument_raise.py │ │ │ ├── regression_3416_unused_argument_raise.txt │ │ │ ├── regression_3507_typing_alias_isinstance.py │ │ │ ├── regression_3535_double_enum_inherit.py │ │ │ ├── regression_3595_notcallable_collections.py │ │ │ ├── regression_4083_sequence_index.py │ │ │ ├── regression_4221_object_instanceattr.py │ │ │ ├── regression_4358_unsubscriptable_enum.py │ │ │ ├── regression_4439.py │ │ │ ├── regression_4439.rc │ │ │ ├── regression_4439.txt │ │ │ ├── regression_4612_crash_pytest_fixture.py │ │ │ ├── regression_4680.py │ │ │ ├── regression_4680.txt │ │ │ ├── regression_4688_duplicated_bases_member_hints.py │ │ │ ├── regression_4688_duplicated_bases_member_hints.txt │ │ │ ├── regression_4723.py │ │ │ ├── regression_4723.txt │ │ │ ├── regression_4891.py │ │ │ ├── regression_6531_crash_index_error.py │ │ │ ├── regression_9074_refactor_loop_with_unary_variable.py │ │ │ ├── regression_9865_calling_bound_lambda.py │ │ │ ├── regression_9875_enumerate.py │ │ │ ├── regression_9875_enumerate.txt │ │ │ ├── regression___file___global.py │ │ │ ├── regression___file___global.txt │ │ │ ├── regression_implicit_none_with_no_return.py │ │ │ ├── regression_implicit_none_with_no_return.txt │ │ │ ├── regression_infer_call_result_3690.py │ │ │ ├── regression_infer_call_result_3690.txt │ │ │ ├── regression_issue_4631.py │ │ │ ├── regression_issue_4631.rc │ │ │ ├── regression_issue_4633.py │ │ │ ├── regression_no_member_1078.py │ │ │ ├── regression_no_value_for_parameter.py │ │ │ ├── regression_posonly_args.py │ │ │ ├── regression_properties_in_class_context.py │ │ │ ├── regression_properties_in_class_context.txt │ │ │ ├── regression_property_no_member_2641.py │ │ │ ├── regression_property_no_member_3269.py │ │ │ ├── regression_property_no_member_844.py │ │ │ └── regression_property_no_member_870.py │ │ ├── regression_02 │ │ │ ├── regression_10105.py │ │ │ ├── regression_10334.py │ │ │ ├── regression_10334.txt │ │ │ ├── regression_2567.py │ │ │ ├── regression_2964.py │ │ │ ├── regression_3866.py │ │ │ ├── regression_3976.py │ │ │ ├── regression_3979.py │ │ │ ├── regression_4126.py │ │ │ ├── regression_4126.rc │ │ │ ├── regression_4660.py │ │ │ ├── regression_4982.py │ │ │ ├── regression_5030.py │ │ │ ├── regression_5048.py │ │ │ ├── regression_5244.py │ │ │ ├── regression_5408.py │ │ │ ├── regression_5408.rc │ │ │ ├── regression_5461.py │ │ │ ├── regression_5479.py │ │ │ ├── regression_5479.txt │ │ │ ├── regression_5776.py │ │ │ ├── regression_5801.py │ │ │ ├── regression_8067.py │ │ │ ├── regression_8067.txt │ │ │ ├── regression_8109.py │ │ │ ├── regression_8207.py │ │ │ ├── regression_9751.py │ │ │ ├── regression_distutil_import_error_73.py │ │ │ ├── regression_distutil_import_error_73.rc │ │ │ ├── regression_distutil_import_error_73.txt │ │ │ ├── regression_dynamic_getitiem.py │ │ │ ├── regression_dynamic_getitiem.txt │ │ │ ├── regression_enum_1734.py │ │ │ ├── regression_lambda_inference_not_callable.py │ │ │ ├── regression_lambda_inference_not_callable.txt │ │ │ ├── regression_no_member_7631.py │ │ │ ├── regression_node_statement.py │ │ │ ├── regression_node_statement_two.py │ │ │ ├── regression_property_slots_2439.py │ │ │ ├── regression_protected_access.py │ │ │ ├── regression_protected_access.txt │ │ │ └── regression_too_many_arguments_2335.py │ │ ├── reimport.py │ │ ├── reimport.txt │ │ ├── reimported.py │ │ ├── reimported.txt │ │ ├── renamed_import_logging_not_lazy.py │ │ ├── renamed_import_logging_not_lazy.rc │ │ ├── renamed_import_logging_not_lazy.txt │ │ ├── repeated_keyword.py │ │ ├── repeated_keyword.txt │ │ ├── return_in_finally.py │ │ ├── return_in_finally.txt │ │ ├── return_in_init.py │ │ ├── return_in_init.txt │ │ ├── return_outside_function.py │ │ └── return_outside_function.txt │ ├── s │ │ ├── __init__.py │ │ ├── self │ │ │ ├── self_assigning_variable.py │ │ │ ├── self_assigning_variable.txt │ │ │ ├── self_cls_assignment.py │ │ │ └── self_cls_assignment.txt │ │ ├── shadowed_import.py │ │ ├── shadowed_import.txt │ │ ├── shallow_copy_environ.py │ │ ├── shallow_copy_environ.txt │ │ ├── signature_differs.py │ │ ├── signature_differs.txt │ │ ├── simplifiable │ │ │ ├── simplifiable_condition.py │ │ │ ├── simplifiable_condition.txt │ │ │ ├── simplifiable_if_expression.py │ │ │ ├── simplifiable_if_expression.txt │ │ │ ├── simplifiable_if_statement.py │ │ │ └── simplifiable_if_statement.txt │ │ ├── simplify_chained_comparison.py │ │ ├── simplify_chained_comparison.txt │ │ ├── singledispatch │ │ │ ├── singledispatch_functions.py │ │ │ ├── singledispatch_functions.txt │ │ │ ├── singledispatch_method.py │ │ │ ├── singledispatch_method.txt │ │ │ ├── singledispatchmethod_function.py │ │ │ └── singledispatchmethod_function.txt │ │ ├── singleton_comparison.py │ │ ├── singleton_comparison.txt │ │ ├── slots_checks.py │ │ ├── slots_checks.txt │ │ ├── socketerror_import.py │ │ ├── star │ │ │ ├── star_needs_assignment_target.py │ │ │ └── star_needs_assignment_target.txt │ │ ├── statement_without_effect.py │ │ ├── statement_without_effect.txt │ │ ├── statement_without_effect_py312.py │ │ ├── statement_without_effect_py312.rc │ │ ├── statement_without_effect_py36.py │ │ ├── statement_without_effect_py36.txt │ │ ├── stop_iteration_inside_generator.py │ │ ├── stop_iteration_inside_generator.txt │ │ ├── string │ │ │ ├── string_formatting.py │ │ │ ├── string_formatting.txt │ │ │ ├── string_formatting_disable.py │ │ │ ├── string_formatting_disable.rc │ │ │ ├── string_formatting_disable.txt │ │ │ ├── string_formatting_error.py │ │ │ ├── string_formatting_error.txt │ │ │ ├── string_formatting_failed_inference.py │ │ │ ├── string_formatting_failed_inference_py35.py │ │ │ ├── string_formatting_py3.py │ │ │ ├── string_formatting_py3.txt │ │ │ ├── string_log_formatting.py │ │ │ └── string_log_formatting.txt │ │ ├── subclassed_final_class_py38.py │ │ ├── subclassed_final_class_py38.txt │ │ ├── subprocess_popen_preexec_fn.py │ │ ├── subprocess_popen_preexec_fn.txt │ │ ├── subprocess_run_check.py │ │ ├── subprocess_run_check.txt │ │ ├── super │ │ │ ├── super_checks.py │ │ │ ├── super_checks.txt │ │ │ ├── super_init_not_called.py │ │ │ ├── super_init_not_called.rc │ │ │ ├── super_init_not_called.txt │ │ │ ├── super_init_not_called_extensions_py310.py │ │ │ ├── super_init_not_called_extensions_py310.rc │ │ │ ├── super_init_not_called_extensions_py310.txt │ │ │ ├── super_init_not_called_py38.py │ │ │ ├── super_with_arguments.py │ │ │ ├── super_with_arguments.rc │ │ │ ├── super_with_arguments.txt │ │ │ ├── super_without_brackets.py │ │ │ └── super_without_brackets.txt │ │ ├── superfluous_parens.py │ │ ├── superfluous_parens.txt │ │ ├── superfluous_parens_walrus_py38.py │ │ ├── superfluous_parens_walrus_py38.txt │ │ ├── suspicious_str_strip_call.py │ │ ├── suspicious_str_strip_call.txt │ │ ├── symlink │ │ │ ├── _binding │ │ │ │ ├── __init__.py │ │ │ │ └── symlink_module.py │ │ │ └── symlink_module │ │ │ │ ├── __init__.py │ │ │ │ └── symlink_module.py │ │ ├── syntax │ │ │ ├── syntax_error.py │ │ │ ├── syntax_error.rc │ │ │ ├── syntax_error.txt │ │ │ ├── syntax_error_jython.py │ │ │ ├── syntax_error_jython.rc │ │ │ └── syntax_error_jython.txt │ │ ├── sys_stream_regression_1004.py │ │ └── sys_stream_regression_1004.txt │ ├── t │ │ ├── __init__.py │ │ ├── ternary.py │ │ ├── ternary.txt │ │ ├── test_compile.py │ │ ├── tokenize_error.py │ │ ├── tokenize_error.rc │ │ ├── tokenize_error.txt │ │ ├── tokenize_error_jython.py │ │ ├── tokenize_error_jython.rc │ │ ├── tokenize_error_jython.txt │ │ ├── tokenize_error_py312.py │ │ ├── tokenize_error_py312.rc │ │ ├── tokenize_error_py312.txt │ │ ├── too │ │ │ ├── __init__.py │ │ │ ├── too_few_public_methods.py │ │ │ ├── too_few_public_methods.txt │ │ │ ├── too_few_public_methods_37.py │ │ │ ├── too_few_public_methods_excluded.py │ │ │ ├── too_few_public_methods_excluded.rc │ │ │ ├── too_few_public_methods_excluded.txt │ │ │ ├── too_many_ancestors.py │ │ │ ├── too_many_ancestors.txt │ │ │ ├── too_many_ancestors_ignored_parents.py │ │ │ ├── too_many_ancestors_ignored_parents.rc │ │ │ ├── too_many_ancestors_ignored_parents.txt │ │ │ ├── too_many_arguments.py │ │ │ ├── too_many_arguments.txt │ │ │ ├── too_many_arguments_issue_1045.py │ │ │ ├── too_many_arguments_overload.py │ │ │ ├── too_many_boolean_expressions.py │ │ │ ├── too_many_boolean_expressions.txt │ │ │ ├── too_many_branches.py │ │ │ ├── too_many_branches.txt │ │ │ ├── too_many_function_args.py │ │ │ ├── too_many_function_args.txt │ │ │ ├── too_many_instance_attributes.py │ │ │ ├── too_many_instance_attributes.txt │ │ │ ├── too_many_instance_attributes_py37.py │ │ │ ├── too_many_lines.py │ │ │ ├── too_many_lines.txt │ │ │ ├── too_many_lines_disabled.py │ │ │ ├── too_many_locals.py │ │ │ ├── too_many_locals.txt │ │ │ ├── too_many_nested_blocks.py │ │ │ ├── too_many_nested_blocks.txt │ │ │ ├── too_many_positional_arguments.py │ │ │ ├── too_many_positional_arguments.txt │ │ │ ├── too_many_public_methods.py │ │ │ ├── too_many_public_methods.txt │ │ │ ├── too_many_return_statements.py │ │ │ ├── too_many_return_statements.txt │ │ │ ├── too_many_star_expressions.py │ │ │ ├── too_many_star_expressions.txt │ │ │ ├── too_many_statements.py │ │ │ ├── too_many_statements.rc │ │ │ └── too_many_statements.txt │ │ ├── trailing_comma_tuple.py │ │ ├── trailing_comma_tuple.txt │ │ ├── trailing_comma_tuple_9608.py │ │ ├── trailing_comma_tuple_9608.rc │ │ ├── trailing_comma_tuple_9608.txt │ │ ├── trailing_newlines.py │ │ ├── trailing_newlines.txt │ │ ├── trailing_whitespaces.py │ │ ├── trailing_whitespaces.txt │ │ ├── try_except_raise.py │ │ ├── try_except_raise.txt │ │ ├── try_except_raise_crash.py │ │ ├── try_except_raise_crash.rc │ │ ├── try_except_raise_crash.txt │ │ ├── type │ │ │ ├── __init__.py │ │ │ ├── typealias_naming_style_default.py │ │ │ ├── typealias_naming_style_default.rc │ │ │ ├── typealias_naming_style_default.txt │ │ │ ├── typealias_naming_style_py312.py │ │ │ ├── typealias_naming_style_py312.rc │ │ │ ├── typealias_naming_style_py312.txt │ │ │ ├── typealias_naming_style_rgx.py │ │ │ ├── typealias_naming_style_rgx.rc │ │ │ ├── typealias_naming_style_rgx.txt │ │ │ ├── typedDict.py │ │ │ ├── typevar_double_variance.py │ │ │ ├── typevar_double_variance.txt │ │ │ ├── typevar_name_incorrect_variance.py │ │ │ ├── typevar_name_incorrect_variance.txt │ │ │ ├── typevar_name_mismatch.py │ │ │ ├── typevar_name_mismatch.txt │ │ │ ├── typevar_naming_style_default.py │ │ │ ├── typevar_naming_style_default.txt │ │ │ ├── typevar_naming_style_py312.py │ │ │ ├── typevar_naming_style_py312.rc │ │ │ ├── typevar_naming_style_py312.txt │ │ │ ├── typevar_naming_style_rgx.py │ │ │ ├── typevar_naming_style_rgx.rc │ │ │ └── typevar_naming_style_rgx.txt │ │ ├── typing_generic.py │ │ ├── typing_use.py │ │ └── typing_use.txt │ ├── u │ │ ├── __init__.py │ │ ├── unbalanced │ │ │ ├── unbalanced_dict_unpacking.py │ │ │ ├── unbalanced_dict_unpacking.txt │ │ │ ├── unbalanced_tuple_unpacking.py │ │ │ ├── unbalanced_tuple_unpacking.txt │ │ │ └── unbalanced_tuple_unpacking_py30.py │ │ ├── undefined │ │ │ ├── undefined_all_variable_edge_case.py │ │ │ ├── undefined_all_variable_edge_case.txt │ │ │ ├── undefined_loop_variable.py │ │ │ ├── undefined_loop_variable.txt │ │ │ ├── undefined_loop_variable_py311.py │ │ │ ├── undefined_loop_variable_py311.rc │ │ │ ├── undefined_loop_variable_py38.py │ │ │ ├── undefined_variable.py │ │ │ ├── undefined_variable.txt │ │ │ ├── undefined_variable_classes.py │ │ │ ├── undefined_variable_crash_on_attribute.py │ │ │ ├── undefined_variable_decorators.py │ │ │ ├── undefined_variable_py30.py │ │ │ ├── undefined_variable_py30.txt │ │ │ ├── undefined_variable_py312.py │ │ │ ├── undefined_variable_py312.rc │ │ │ ├── undefined_variable_py38.py │ │ │ ├── undefined_variable_py38.txt │ │ │ ├── undefined_variable_typing.py │ │ │ └── undefined_variable_typing.rc │ │ ├── unexpected_keyword_arg.py │ │ ├── unexpected_keyword_arg.txt │ │ ├── unexpected_special_method_signature.py │ │ ├── unexpected_special_method_signature.txt │ │ ├── ungrouped_imports.py │ │ ├── ungrouped_imports.txt │ │ ├── ungrouped_imports_isort_compatible.py │ │ ├── ungrouped_imports_suppression.py │ │ ├── ungrouped_imports_suppression.rc │ │ ├── ungrouped_imports_suppression.txt │ │ ├── unhashable_member.py │ │ ├── unhashable_member.txt │ │ ├── unhashable_member_py312.py │ │ ├── unhashable_member_py312.rc │ │ ├── unicode │ │ │ ├── unicode_bidi_commenting_out.py │ │ │ ├── unicode_bidi_commenting_out.txt │ │ │ ├── unicode_bidi_early_return.py │ │ │ ├── unicode_bidi_early_return.txt │ │ │ ├── unicode_bidi_pep672.py │ │ │ └── unicode_bidi_pep672.txt │ │ ├── unidiomatic_typecheck.py │ │ ├── unidiomatic_typecheck.txt │ │ ├── uninferable_all_object.py │ │ ├── unknown_encoding_jython.py │ │ ├── unknown_encoding_jython.rc │ │ ├── unknown_encoding_jython.txt │ │ ├── unnecessary │ │ │ ├── unnecessary_comprehension.py │ │ │ ├── unnecessary_comprehension.txt │ │ │ ├── unnecessary_dict_index_lookup.py │ │ │ ├── unnecessary_dict_index_lookup.txt │ │ │ ├── unnecessary_direct_lambda_call.py │ │ │ ├── unnecessary_direct_lambda_call.rc │ │ │ ├── unnecessary_direct_lambda_call.txt │ │ │ ├── unnecessary_dunder_call.py │ │ │ ├── unnecessary_dunder_call.txt │ │ │ ├── unnecessary_dunder_call_async_py310.py │ │ │ ├── unnecessary_dunder_call_async_py310.rc │ │ │ ├── unnecessary_dunder_call_async_py310.txt │ │ │ ├── unnecessary_dunder_call_async_py39.py │ │ │ ├── unnecessary_dunder_call_async_py39.rc │ │ │ ├── unnecessary_ellipsis.py │ │ │ ├── unnecessary_ellipsis.txt │ │ │ ├── unnecessary_lambda.py │ │ │ ├── unnecessary_lambda.txt │ │ │ ├── unnecessary_lambda_assignment.py │ │ │ ├── unnecessary_lambda_assignment.txt │ │ │ ├── unnecessary_list_index_lookup.py │ │ │ ├── unnecessary_list_index_lookup.txt │ │ │ ├── unnecessary_negation.py │ │ │ ├── unnecessary_negation.txt │ │ │ ├── unnecessary_pass.py │ │ │ └── unnecessary_pass.txt │ │ ├── unpacking │ │ │ ├── unpacking.py │ │ │ ├── unpacking_generalizations.py │ │ │ ├── unpacking_generalizations.txt │ │ │ ├── unpacking_non_sequence.py │ │ │ ├── unpacking_non_sequence.txt │ │ │ ├── unpacking_non_sequence_py310.py │ │ │ ├── unpacking_non_sequence_py310.rc │ │ │ └── unpacking_non_sequence_py37.py │ │ ├── unreachable.py │ │ ├── unreachable.txt │ │ ├── unrecognized_inline_option.py │ │ ├── unrecognized_inline_option.txt │ │ ├── unspecified_encoding_py38.py │ │ ├── unspecified_encoding_py38.txt │ │ ├── unsubscriptable_object.py │ │ ├── unsubscriptable_value.py │ │ ├── unsubscriptable_value.rc │ │ ├── unsubscriptable_value.txt │ │ ├── unsubscriptable_value_py37.py │ │ ├── unsubscriptable_value_py37.txt │ │ ├── unsupported │ │ │ ├── unsupported_assignment_operation.py │ │ │ ├── unsupported_assignment_operation.rc │ │ │ ├── unsupported_assignment_operation.txt │ │ │ ├── unsupported_binary_operation.py │ │ │ ├── unsupported_binary_operation.rc │ │ │ ├── unsupported_binary_operation.txt │ │ │ ├── unsupported_delete_operation.py │ │ │ ├── unsupported_delete_operation.rc │ │ │ ├── unsupported_delete_operation.txt │ │ │ ├── unsupported_version_for_assignment_expression.py │ │ │ ├── unsupported_version_for_assignment_expression.rc │ │ │ ├── unsupported_version_for_assignment_expression.txt │ │ │ ├── unsupported_version_for_exception_group.py │ │ │ ├── unsupported_version_for_exception_group.rc │ │ │ ├── unsupported_version_for_exception_group.txt │ │ │ ├── unsupported_version_for_f_string.py │ │ │ ├── unsupported_version_for_f_string.rc │ │ │ ├── unsupported_version_for_f_string.txt │ │ │ ├── unsupported_version_for_final.py │ │ │ ├── unsupported_version_for_final.rc │ │ │ ├── unsupported_version_for_final.txt │ │ │ ├── unsupported_version_for_generic_type_syntax.py │ │ │ ├── unsupported_version_for_generic_type_syntax.rc │ │ │ ├── unsupported_version_for_generic_type_syntax.txt │ │ │ ├── unsupported_version_for_posonly_args.py │ │ │ ├── unsupported_version_for_posonly_args.rc │ │ │ └── unsupported_version_for_posonly_args.txt │ │ ├── unused │ │ │ ├── __init__.py │ │ │ ├── unused_argument.py │ │ │ ├── unused_argument.txt │ │ │ ├── unused_argument_py3.py │ │ │ ├── unused_argument_py3.txt │ │ │ ├── unused_global_variable1.py │ │ │ ├── unused_global_variable2.py │ │ │ ├── unused_global_variable2.rc │ │ │ ├── unused_global_variable2.txt │ │ │ ├── unused_global_variable3.py │ │ │ ├── unused_global_variable4.py │ │ │ ├── unused_global_variable4.rc │ │ │ ├── unused_global_variable4.txt │ │ │ ├── unused_import.py │ │ │ ├── unused_import.txt │ │ │ ├── unused_import_assigned_to.py │ │ │ ├── unused_import_class_def_keyword.py │ │ │ ├── unused_import_everything_disabled.py │ │ │ ├── unused_import_everything_disabled.rc │ │ │ ├── unused_import_positional_only_py38.py │ │ │ ├── unused_import_py30.py │ │ │ ├── unused_import_py30.txt │ │ │ ├── unused_module.py │ │ │ ├── unused_name_from_wildcard_import.py │ │ │ ├── unused_name_from_wildcard_import.txt │ │ │ ├── unused_name_in_string_literal_type_annotation.py │ │ │ ├── unused_name_in_string_literal_type_annotation_py310.py │ │ │ ├── unused_name_in_string_literal_type_annotation_py310.rc │ │ │ ├── unused_name_in_string_literal_type_annotation_py38.py │ │ │ ├── unused_name_in_string_literal_type_annotation_py38.txt │ │ │ ├── unused_name_in_string_literal_type_annotation_py39.py │ │ │ ├── unused_private_member.py │ │ │ ├── unused_private_member.txt │ │ │ ├── unused_typing_imports.py │ │ │ ├── unused_variable.py │ │ │ ├── unused_variable.txt │ │ │ ├── unused_variable_after_inference.py │ │ │ ├── unused_variable_after_inference.rc │ │ │ ├── unused_variable_py36.py │ │ │ ├── unused_variable_py38.py │ │ │ ├── unused_variable_py38.rc │ │ │ └── unused_variable_py38.txt │ │ ├── use │ │ │ ├── use_a_generator.py │ │ │ ├── use_a_generator.txt │ │ │ ├── use_implicit_booleaness_not_comparison.py │ │ │ ├── use_implicit_booleaness_not_comparison.txt │ │ │ ├── use_implicit_booleaness_not_comparison_to_string.py │ │ │ ├── use_implicit_booleaness_not_comparison_to_string.rc │ │ │ ├── use_implicit_booleaness_not_comparison_to_string.txt │ │ │ ├── use_implicit_booleaness_not_comparison_to_zero.py │ │ │ ├── use_implicit_booleaness_not_comparison_to_zero.rc │ │ │ ├── use_implicit_booleaness_not_comparison_to_zero.txt │ │ │ ├── use_implicit_booleaness_not_len.py │ │ │ ├── use_implicit_booleaness_not_len.txt │ │ │ ├── use_literal_dict.py │ │ │ ├── use_literal_dict.txt │ │ │ ├── use_literal_list.py │ │ │ ├── use_literal_list.txt │ │ │ ├── use_maxsplit_arg.py │ │ │ ├── use_maxsplit_arg.txt │ │ │ ├── use_sequence_for_iteration.py │ │ │ ├── use_sequence_for_iteration.txt │ │ │ ├── use_symbolic_message_instead.py │ │ │ ├── use_symbolic_message_instead.txt │ │ │ ├── use_yield_from.py │ │ │ ├── use_yield_from.txt │ │ │ └── used_before_assignment_except_handler_for_try_with_return_py38.py │ │ ├── used │ │ │ ├── used_before_assignment.py │ │ │ ├── used_before_assignment.txt │ │ │ ├── used_before_assignment_488.py │ │ │ ├── used_before_assignment_class_nested_under_function.py │ │ │ ├── used_before_assignment_comprehension_homonyms.py │ │ │ ├── used_before_assignment_conditional.py │ │ │ ├── used_before_assignment_conditional.txt │ │ │ ├── used_before_assignment_else_continue.py │ │ │ ├── used_before_assignment_else_continue.txt │ │ │ ├── used_before_assignment_else_return.py │ │ │ ├── used_before_assignment_else_return.txt │ │ │ ├── used_before_assignment_except_handler_for_try_with_return.py │ │ │ ├── used_before_assignment_except_handler_for_try_with_return.txt │ │ │ ├── used_before_assignment_issue1081.py │ │ │ ├── used_before_assignment_issue1081.txt │ │ │ ├── used_before_assignment_issue2615.py │ │ │ ├── used_before_assignment_issue2615.txt │ │ │ ├── used_before_assignment_issue4761.py │ │ │ ├── used_before_assignment_issue4761.txt │ │ │ ├── used_before_assignment_issue626.py │ │ │ ├── used_before_assignment_issue626.txt │ │ │ ├── used_before_assignment_issue85.py │ │ │ ├── used_before_assignment_issue85.txt │ │ │ ├── used_before_assignment_issue853.py │ │ │ ├── used_before_assignment_nonlocal.py │ │ │ ├── used_before_assignment_nonlocal.txt │ │ │ ├── used_before_assignment_postponed_evaluation.py │ │ │ ├── used_before_assignment_postponed_evaluation.txt │ │ │ ├── used_before_assignment_py310.py │ │ │ ├── used_before_assignment_py310.rc │ │ │ ├── used_before_assignment_py310.txt │ │ │ ├── used_before_assignment_py311.py │ │ │ ├── used_before_assignment_py312.py │ │ │ ├── used_before_assignment_py312.rc │ │ │ ├── used_before_assignment_py312.txt │ │ │ ├── used_before_assignment_py37.py │ │ │ ├── used_before_assignment_py37.txt │ │ │ ├── used_before_assignment_scoping.py │ │ │ ├── used_before_assignment_scoping.txt │ │ │ ├── used_before_assignment_ternary.py │ │ │ ├── used_before_assignment_ternary.txt │ │ │ ├── used_before_assignment_type_annotations.py │ │ │ ├── used_before_assignment_type_annotations.txt │ │ │ ├── used_before_assignment_typing.py │ │ │ ├── used_before_assignment_typing.txt │ │ │ ├── used_prior_global_declaration.py │ │ │ └── used_prior_global_declaration.txt │ │ ├── useless │ │ │ ├── useless_else_on_loop.py │ │ │ ├── useless_else_on_loop.txt │ │ │ ├── useless_object_inheritance.py │ │ │ ├── useless_object_inheritance.txt │ │ │ ├── useless_parent_delegation.py │ │ │ ├── useless_parent_delegation.txt │ │ │ ├── useless_parent_delegation_py38.py │ │ │ ├── useless_parent_delegation_py38.txt │ │ │ ├── useless_return.py │ │ │ ├── useless_return.txt │ │ │ ├── useless_suppression.py │ │ │ ├── useless_suppression.rc │ │ │ ├── useless_with_lock.py │ │ │ └── useless_with_lock.txt │ │ ├── using_constant_test.py │ │ └── using_constant_test.txt │ ├── w │ │ ├── __init__.py │ │ ├── wildcard_import.py │ │ ├── wildcard_import.txt │ │ ├── wildcard_import_allowed.py │ │ ├── wildcard_import_allowed.rc │ │ ├── wildcard_import_allowed.txt │ │ ├── with_used_before_assign.py │ │ ├── with_used_before_assign.txt │ │ ├── with_using_generator.py │ │ ├── with_using_generator.txt │ │ ├── wrong_exception_operation.py │ │ ├── wrong_exception_operation.rc │ │ ├── wrong_exception_operation.txt │ │ ├── wrong_exception_operation_py37.py │ │ ├── wrong_exception_operation_py37.rc │ │ ├── wrong_exception_operation_py37.txt │ │ ├── wrong_import_order.py │ │ ├── wrong_import_order.txt │ │ ├── wrong_import_order2.py │ │ ├── wrong_import_position.py │ │ ├── wrong_import_position.txt │ │ ├── wrong_import_position10.py │ │ ├── wrong_import_position11.py │ │ ├── wrong_import_position11.txt │ │ ├── wrong_import_position12.py │ │ ├── wrong_import_position12.txt │ │ ├── wrong_import_position13.py │ │ ├── wrong_import_position13.txt │ │ ├── wrong_import_position14.py │ │ ├── wrong_import_position14.txt │ │ ├── wrong_import_position15.py │ │ ├── wrong_import_position2.py │ │ ├── wrong_import_position3.py │ │ ├── wrong_import_position4.py │ │ ├── wrong_import_position5.py │ │ ├── wrong_import_position6.py │ │ ├── wrong_import_position7.py │ │ ├── wrong_import_position8.py │ │ ├── wrong_import_position9.py │ │ └── wrong_import_position_exclude_dunder_main.py │ └── y │ │ ├── __init__.py │ │ ├── yield_assign.py │ │ ├── yield_from_iterable.py │ │ ├── yield_from_iterable.txt │ │ ├── yield_from_outside_func.py │ │ ├── yield_from_outside_func.txt │ │ ├── yield_inside_async_function.py │ │ ├── yield_inside_async_function.txt │ │ ├── yield_outside_func.py │ │ ├── yield_outside_func.txt │ │ └── yield_return_mix.py ├── input │ ├── __init__.py │ ├── benchmark_minimal_file.py │ ├── func_3k_removed_stuff_py_30.py │ ├── func_i0011.py │ ├── func_i0012.py │ ├── func_i0013.py │ ├── func_i0014.py │ ├── func_i0020.py │ ├── func_i0022.py │ ├── func_noerror_cycle │ │ ├── __init__.py │ │ ├── a.py │ │ └── b.py │ ├── func_return_yield_mix_py_33.py │ ├── func_w0122_py_30.py │ ├── func_w0401.py │ ├── func_w0401_disabled.py │ ├── func_w0401_disabled_in_func.py │ ├── func_w0401_package │ │ ├── __init__.py │ │ ├── all_the_things.py │ │ ├── thing1.py │ │ └── thing2.py │ ├── func_w0801.py │ ├── hide_code_with_imports.py │ ├── ignore_except_pass_by_default.py │ ├── multiline-import │ ├── noext │ ├── not__init__.py │ ├── similar1 │ ├── similar2 │ ├── similar3 │ ├── similar4 │ ├── similar5 │ ├── similar6 │ ├── similar_cls_a.py │ ├── similar_cls_b.py │ ├── similar_empty_func_1.py │ ├── similar_empty_func_2.py │ ├── similar_lines_a.py │ ├── similar_lines_b.py │ ├── w0401_cycle.py │ └── w0801_same.py ├── lint │ ├── __init__.py │ ├── test_caching.py │ ├── test_pylinter.py │ ├── test_run_pylint.py │ ├── test_utils.py │ ├── unittest_expand_modules.py │ └── unittest_lint.py ├── message │ ├── __init__.py │ ├── conftest.py │ ├── test_no_removed_msgid_or_symbol_used.py │ ├── unittest_message.py │ ├── unittest_message_definition.py │ ├── unittest_message_definition_store.py │ └── unittest_message_id_store.py ├── messages │ ├── builtin_module.txt │ ├── func_3k_removed_stuff_py_30.txt │ ├── func_bad_cont_dictcomp_py27.txt │ ├── func_bug113231.txt │ ├── func_disable_linebased.txt │ ├── func_disable_linebased_py30.txt │ ├── func_i0011.txt │ ├── func_i0012.txt │ ├── func_i0013.txt │ ├── func_i0014.txt │ ├── func_i0020.txt │ ├── func_i0022.txt │ ├── func_noerror_cycle.txt │ ├── func_raw_escapes.txt │ ├── func_return_yield_mix_py_33.txt │ ├── func_toolonglines_py30.txt │ ├── func_typecheck_callfunc_assigment.txt │ ├── func_typecheck_getattr_py30.txt │ ├── func_typecheck_non_callable_call.txt │ ├── func_unicode_literal_py26.txt │ ├── func_unicode_literal_py274.txt │ ├── func_use_for_or_listcomp_var_py29.txt │ ├── func_use_for_or_listcomp_var_py30.txt │ ├── func_variables_unused_name_from_wilcard_import.txt │ ├── func_w0122_py_30.txt │ ├── func_w0312.txt │ ├── func_w0332_py_30.txt │ ├── func_w0401.txt │ ├── func_w0401_disabled.txt │ ├── func_w0401_disabled_in_func.txt │ ├── func_w0401_package.txt │ ├── func_w0622.txt │ ├── func_w0623.txt │ ├── func_w0623_py_30.txt │ ├── func_w0801.txt │ └── func_with_without_as_py25.txt ├── primer │ ├── __main__.py │ ├── packages_to_prime.json │ └── test_primer_stdlib.py ├── pyreverse │ ├── conftest.py │ ├── data │ │ ├── classes_No_Name.dot │ │ ├── classes_No_Name.html │ │ ├── classes_No_Name.mmd │ │ ├── classes_No_Name.puml │ │ ├── classes_No_Name.vcg │ │ ├── classes_colorized.dot │ │ ├── classes_colorized.puml │ │ ├── classes_depth_limited_0.dot │ │ ├── classes_depth_limited_1.dot │ │ ├── classes_no_standalone.dot │ │ ├── classes_type_check_imports.dot │ │ ├── packages_No_Name.dot │ │ ├── packages_No_Name.html │ │ ├── packages_No_Name.mmd │ │ ├── packages_No_Name.puml │ │ ├── packages_No_Name.vcg │ │ ├── packages_colorized.dot │ │ ├── packages_colorized.puml │ │ ├── packages_depth_limited_0.dot │ │ ├── packages_depth_limited_1.dot │ │ ├── packages_no_standalone.dot │ │ └── packages_type_check_imports.dot │ ├── functional │ │ ├── class_diagrams │ │ │ ├── aggregation │ │ │ │ ├── comprehensions.mmd │ │ │ │ ├── comprehensions.py │ │ │ │ ├── fields.mmd │ │ │ │ └── fields.py │ │ │ ├── aggregation_filtering │ │ │ │ ├── all.mmd │ │ │ │ ├── all.py │ │ │ │ ├── all.rc │ │ │ │ ├── other.mmd │ │ │ │ ├── other.py │ │ │ │ ├── other.rc │ │ │ │ ├── pub_only.mmd │ │ │ │ ├── pub_only.py │ │ │ │ ├── pub_only.rc │ │ │ │ ├── special.mmd │ │ │ │ ├── special.py │ │ │ │ └── special.rc │ │ │ ├── annotations │ │ │ │ ├── attributes_annotation.dot │ │ │ │ ├── attributes_annotation.mmd │ │ │ │ ├── attributes_annotation.puml │ │ │ │ ├── attributes_annotation.py │ │ │ │ ├── attributes_annotation.rc │ │ │ │ ├── line_breaks.dot │ │ │ │ ├── line_breaks.mmd │ │ │ │ ├── line_breaks.puml │ │ │ │ ├── line_breaks.py │ │ │ │ ├── line_breaks.rc │ │ │ │ ├── method_annotation.mmd │ │ │ │ └── method_annotation.py │ │ │ ├── attributes │ │ │ │ ├── _monkey.py │ │ │ │ ├── delayed_external_monkey_patching.mmd │ │ │ │ ├── delayed_external_monkey_patching.py │ │ │ │ ├── duplicates.mmd │ │ │ │ ├── duplicates.py │ │ │ │ ├── instance_attributes.mmd │ │ │ │ └── instance_attributes.py │ │ │ ├── colorized_output │ │ │ │ ├── colorized.mmd │ │ │ │ ├── colorized.puml │ │ │ │ ├── colorized.py │ │ │ │ ├── colorized.rc │ │ │ │ ├── custom_colors.dot │ │ │ │ ├── custom_colors.puml │ │ │ │ ├── custom_colors.py │ │ │ │ └── custom_colors.rc │ │ │ ├── inheritance │ │ │ │ ├── no_standalone.mmd │ │ │ │ ├── no_standalone.py │ │ │ │ ├── no_standalone.rc │ │ │ │ ├── simple_inheritance.mmd │ │ │ │ └── simple_inheritance.py │ │ │ ├── namespaces │ │ │ │ └── pep420 │ │ │ │ │ ├── pep420.dot │ │ │ │ │ ├── pep420.mmd │ │ │ │ │ ├── pep420.puml │ │ │ │ │ ├── pep420.py │ │ │ │ │ └── pep420.rc │ │ │ ├── property_decorator │ │ │ │ ├── property_decorator.mmd │ │ │ │ └── property_decorator.py │ │ │ └── regression │ │ │ │ ├── regression_8031.mmd │ │ │ │ └── regression_8031.py │ │ └── package_diagrams │ │ │ ├── __init__.py │ │ │ └── type_check_imports │ │ │ ├── __init__.py │ │ │ ├── mod_a.py │ │ │ ├── mod_b.py │ │ │ ├── mod_c.py │ │ │ ├── mod_d.py │ │ │ └── packages.mmd │ ├── test_diadefs.py │ ├── test_diagrams.py │ ├── test_inspector.py │ ├── test_main.py │ ├── test_printer.py │ ├── test_printer_factory.py │ ├── test_pyreverse_functional.py │ ├── test_utils.py │ └── test_writer.py ├── regrtest_data │ ├── absimp │ │ ├── __init__.py │ │ └── string.py │ ├── allow_reexport │ │ ├── __init__.py │ │ └── file.py │ ├── application_crash.py │ ├── bad_package │ │ ├── __init__.py │ │ └── wrong.py │ ├── beyond_top │ │ ├── __init__.py │ │ └── data.py │ ├── beyond_top_four │ │ ├── double_name │ │ │ └── __init__.py │ │ └── module │ │ │ ├── __init__.py │ │ │ ├── double_name │ │ │ ├── __init__.py │ │ │ └── function.py │ │ │ └── sub_module │ │ │ ├── __init__.py │ │ │ └── sub_sub_module │ │ │ ├── __init__.py │ │ │ └── main.py │ ├── beyond_top_three │ │ ├── __init__.py │ │ ├── a.py │ │ └── level1 │ │ │ ├── __init__.py │ │ │ └── beyond_top_three.py │ ├── beyond_top_two │ │ ├── import_package.py │ │ └── namespace_package │ │ │ ├── lower_level │ │ │ └── helper_function.py │ │ │ ├── plugin_api.py │ │ │ └── top_level_function.py │ ├── classdoc_usage.py │ ├── comments_pylintrc │ ├── dataclasses_pyreverse │ │ └── __init__.py │ ├── decimal_inference.py │ ├── descriptor_crash.py │ ├── directory │ │ ├── ignored_subdirectory │ │ │ └── failing.py │ │ ├── package │ │ │ ├── __init__.py │ │ │ ├── module.py │ │ │ └── subpackage │ │ │ │ ├── __init__.py │ │ │ │ └── module.py │ │ └── subdirectory │ │ │ ├── module.py │ │ │ └── subsubdirectory │ │ │ └── module.py │ ├── dummy │ │ ├── __init__.py │ │ ├── another.py │ │ └── dummy.py │ ├── dummy_plugin.rc │ ├── dummy_plugin │ │ ├── dummy_conf_plugin.py │ │ └── dummy_plugin.py │ ├── dummy_wildcard.py │ ├── duplicate_code │ │ ├── ignore_conditional_imports │ │ │ ├── __init__.py │ │ │ ├── file_one.py │ │ │ └── file_two.py │ │ ├── ignore_imports │ │ │ ├── __init__.py │ │ │ ├── file_one.py │ │ │ └── file_two.py │ │ ├── raw_strings_all │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ ├── second.py │ │ │ └── third.py │ │ ├── raw_strings_disable_file │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ ├── second.py │ │ │ └── third.py │ │ ├── raw_strings_disable_file_double │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ ├── second.py │ │ │ └── third.py │ │ ├── raw_strings_disable_line_begin │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ └── second.py │ │ ├── raw_strings_disable_line_disable_all │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ └── second.py │ │ ├── raw_strings_disable_line_end │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ └── second.py │ │ ├── raw_strings_disable_line_middle │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ └── second.py │ │ ├── raw_strings_disable_scope │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ ├── second.py │ │ │ └── third.py │ │ ├── raw_strings_disable_scope_double │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ ├── second.py │ │ │ └── third.py │ │ ├── raw_strings_disable_scope_second_function │ │ │ ├── __init__.py │ │ │ ├── first.py │ │ │ └── second.py │ │ └── useless_suppression │ │ │ ├── __init__.py │ │ │ ├── file_one.py │ │ │ └── file_two.py │ ├── empty.py │ ├── encoding │ │ ├── bad_missing_num.py │ │ ├── bad_wrong_num.py │ │ └── good.py │ ├── fail_on.py │ ├── fail_on_info_only.py │ ├── fail_under_minus10.py │ ├── fail_under_plus7_5.py │ ├── fixme.py │ ├── func_block_disable_msg.py │ ├── hang │ │ └── pkg4972 │ │ │ ├── __init__.py │ │ │ └── string │ │ │ └── __init__.py │ ├── ignore_pattern │ │ ├── .hidden │ │ │ └── module.py │ │ └── module.py │ ├── import_assign.py │ ├── import_package_subpackage_module.py │ ├── import_something.py │ ├── imported_module_in_typehint │ │ ├── module_a.py │ │ └── module_b.py │ ├── importing_plugin │ │ └── importing_plugin.py │ ├── init_wildcard │ │ └── __init__.py │ ├── invalid_encoding.py │ ├── issue_5724.py │ ├── line_too_long_no_code.py │ ├── long_test_file.py │ ├── max_inferable_limit_for_classes │ │ ├── main.py │ │ ├── nodes │ │ │ └── roles.py │ │ └── other_funcs.py │ ├── meta.py │ ├── module_global.py │ ├── no_stdout_encoding.py │ ├── numarray_import.py │ ├── numarray_inf.py │ ├── package │ │ ├── AudioTime.py │ │ ├── __init__.py │ │ └── subpackage │ │ │ ├── __init__.py │ │ │ └── module.py │ ├── package_all │ │ ├── __init__.py │ │ └── notmissing.py │ ├── pep420 │ │ ├── basic │ │ │ └── project │ │ │ │ └── namespace │ │ │ │ └── package │ │ │ │ └── __init__.py │ │ └── wrapper │ │ │ └── project │ │ │ └── namespace │ │ │ └── package │ │ │ └── logging │ │ │ ├── __init__.py │ │ │ └── wrapper │ │ │ └── __init__.py │ ├── pkg_mod_imports │ │ ├── __init__.py │ │ └── base │ │ │ ├── __init__.py │ │ │ └── errors.py │ ├── precedence_test.py │ ├── preferred_module │ │ ├── unpreferred_module.py │ │ └── unpreferred_submodule.py │ ├── pyi │ │ ├── a_module_that_we_definitely_dont_use_in_the_functional_tests.py │ │ └── a_module_that_we_definitely_dont_use_in_the_functional_tests.pyi │ ├── regression_missing_init_3564 │ │ └── subdirectory │ │ │ └── file.py │ ├── settings_project │ │ ├── models.py │ │ └── settings.py │ ├── special_attr_scope_lookup_crash.py │ ├── syntax_error.py │ ├── test_no_name_in_module.py │ ├── test_pylintrc_comments.py │ ├── try_finally_disable_msg_crash.py │ ├── unicode │ │ ├── invisible_function.txt │ │ ├── pep_bidirectional_utf_16_bom.txt │ │ ├── pep_bidirectional_utf_16_le_no_bom.txt │ │ ├── pep_bidirectional_utf_32_bom.txt │ │ └── pep_bidirectional_utf_32_le_no_bom.txt │ ├── unused_variable.py │ ├── uses_module_with_stub.py │ ├── very_long_line.py │ ├── wildcard.py │ └── wrong_import_position.py ├── reporters │ ├── __init__.py │ ├── unittest_json_reporter.py │ └── unittest_reporting.py ├── test_check_parallel.py ├── test_func.py ├── test_functional.py ├── test_functional_directories.py ├── test_import_graph.py ├── test_numversion.py ├── test_pragma_parser.py ├── test_pylint_runners.py ├── test_regr.py ├── test_self.py ├── test_similar.py ├── testutils │ ├── _primer │ │ ├── fixtures │ │ │ ├── batched │ │ │ │ ├── expected.txt │ │ │ │ ├── main_batch0.json │ │ │ │ ├── main_batch1.json │ │ │ │ ├── pr_batch0.json │ │ │ │ └── pr_batch1.json │ │ │ ├── both_empty │ │ │ │ ├── expected.txt │ │ │ │ ├── main.json │ │ │ │ └── pr.json │ │ │ ├── message_changed │ │ │ │ ├── expected.txt │ │ │ │ ├── expected_truncated.txt │ │ │ │ ├── main.json │ │ │ │ └── pr.json │ │ │ └── no_change │ │ │ │ ├── expected.txt │ │ │ │ ├── main.json │ │ │ │ └── pr.json │ │ ├── test_package_to_lint.py │ │ └── test_primer.py │ ├── data │ │ ├── functional │ │ │ ├── broken_output_ok_test │ │ │ │ ├── exec_used.py │ │ │ │ └── exec_used.txt │ │ │ ├── broken_output_wrong_test │ │ │ │ ├── exec_used.py │ │ │ │ └── exec_used.txt │ │ │ ├── no_output_ok_test │ │ │ │ └── exec_used.py │ │ │ ├── no_output_wrong_test │ │ │ │ └── exec_used.py │ │ │ ├── ok_output_ok_test │ │ │ │ ├── exec_used.py │ │ │ │ └── exec_used.txt │ │ │ ├── ok_output_wrong_test │ │ │ │ ├── exec_used.py │ │ │ │ └── exec_used.txt │ │ │ ├── wrong_output_ok_test │ │ │ │ ├── exec_used.py │ │ │ │ └── exec_used.txt │ │ │ └── wrong_output_wrong_test │ │ │ │ ├── exec_used.py │ │ │ │ └── exec_used.txt │ │ ├── init_hook.py │ │ ├── init_hook.rc │ │ ├── m │ │ │ ├── max_overflow │ │ │ │ ├── max_overflow_1.py │ │ │ │ ├── max_overflow_2.py │ │ │ │ └── max_overflow_3.py │ │ │ ├── minimal_messages_config.py │ │ │ ├── minimal_messages_excluded.py │ │ │ └── minimal_messages_excluded.rc │ │ ├── t.3.out │ │ ├── t.out │ │ ├── t.toml │ │ ├── u.out │ │ ├── u.toml │ │ ├── u │ │ │ ├── _no_issue_here │ │ │ │ └── _incredibly_bold_mischief.py │ │ │ ├── use │ │ │ │ ├── use_len.py │ │ │ │ └── using_dir.py │ │ │ ├── use_dir.py │ │ │ └── using │ │ │ │ └── using_len.py │ │ └── v.toml │ ├── dummy_checker.py │ ├── pyreverse_data │ │ ├── _not_a_functest.py │ │ ├── functest_with_options.py │ │ ├── functest_with_options.rc │ │ └── functest_without_options.py │ ├── test_configuration_test.py │ ├── test_functional_testutils.py │ ├── test_lint_module_output_update.py │ ├── test_output_line.py │ ├── test_pyreverse_testutils.py │ └── test_testutils_utils.py └── utils │ ├── __init__.py │ ├── unittest_ast_walker.py │ └── unittest_utils.py ├── towncrier.toml └── tox.ini /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | 3f2842400795ae1aaffc4ae6c35c4ef26857c239 2 | -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | Coordinated Disclosure Plan: https://tidelift.com/security 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/anomalous-backslash-in-string/bad.py: -------------------------------------------------------------------------------- 1 | string = "\z" # [syntax-error] 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/anomalous-backslash-in-string/good/double_escape.py: -------------------------------------------------------------------------------- 1 | string = "\\z" 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/anomalous-backslash-in-string/good/existing_escape_sequence.py: -------------------------------------------------------------------------------- 1 | string = "\t" 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/anomalous-backslash-in-string/good/r_prefix.py: -------------------------------------------------------------------------------- 1 | string = r"\z" 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/anomalous-unicode-escape-in-string/bad.py: -------------------------------------------------------------------------------- 1 | print(b"\u%b" % b"0394") # [syntax-error] 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/anomalous-unicode-escape-in-string/good.py: -------------------------------------------------------------------------------- 1 | print(b"\\u%b" % b"0394") 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/assert-on-string-literal/good.py: -------------------------------------------------------------------------------- 1 | def test_division(): 2 | a = 9 / 3 3 | assert a == 3 4 | -------------------------------------------------------------------------------- /doc/data/messages/a/assert-on-tuple/bad.py: -------------------------------------------------------------------------------- 1 | assert (1, None) # [assert-on-tuple] 2 | -------------------------------------------------------------------------------- /doc/data/messages/a/assert-on-tuple/good.py: -------------------------------------------------------------------------------- 1 | x, y = (1, None) 2 | assert x 3 | assert y 4 | -------------------------------------------------------------------------------- /doc/data/messages/a/assignment-from-no-return/good.py: -------------------------------------------------------------------------------- 1 | def add(x, y): 2 | return x + y 3 | 4 | 5 | value = add(10, 10) 6 | -------------------------------------------------------------------------------- /doc/data/messages/a/assignment-from-none/bad.py: -------------------------------------------------------------------------------- 1 | def function(): 2 | return None 3 | 4 | 5 | f = function() # [assignment-from-none] 6 | -------------------------------------------------------------------------------- /doc/data/messages/a/assignment-from-none/good.py: -------------------------------------------------------------------------------- 1 | def function(): 2 | return None 3 | 4 | 5 | f = function() if function() else 1 6 | -------------------------------------------------------------------------------- /doc/data/messages/a/await-outside-async/bad.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | 3 | 4 | def main(): 5 | await asyncio.sleep(1) # [await-outside-async] 6 | -------------------------------------------------------------------------------- /doc/data/messages/a/await-outside-async/good.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | 3 | 4 | async def main(): 5 | await asyncio.sleep(1) 6 | -------------------------------------------------------------------------------- /doc/data/messages/a/await-outside-async/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 492 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-builtin/bad.py: -------------------------------------------------------------------------------- 1 | numbers = list(map(lambda x: 2 * x, [1, 2, 3])) # [bad-builtin] 2 | print(numbers) 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-builtin/good.py: -------------------------------------------------------------------------------- 1 | numbers = [2 * x for x in [1, 2, 3]] 2 | print(numbers) 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-builtin/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.bad_builtin 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-classmethod-argument/good.py: -------------------------------------------------------------------------------- 1 | class Klass: 2 | @classmethod 3 | def get_instance(cls): 4 | return cls() 5 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-docstring-quotes/bad.py: -------------------------------------------------------------------------------- 1 | def foo(): # [bad-docstring-quotes] 2 | "Docstring." 3 | return 4 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-docstring-quotes/good.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | """Docstring.""" 3 | return 4 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-docstring-quotes/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.docstyle 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-docstring-quotes/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 257 – Docstring Conventions `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-dunder-name/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.dunder 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-file-encoding/bad.py: -------------------------------------------------------------------------------- 1 | # coding: latin_1 # [bad-file-encoding] 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-format-character/bad.py: -------------------------------------------------------------------------------- 1 | print("%s %z" % ("hello", "world")) # [bad-format-character] 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-format-character/good.py: -------------------------------------------------------------------------------- 1 | print("%s %s" % ("hello", "world")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-format-string-key/bad.py: -------------------------------------------------------------------------------- 1 | print("%(one)d" % {"one": 1, 2: 2}) # [bad-format-string-key] 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-format-string-key/good.py: -------------------------------------------------------------------------------- 1 | print("%(one)d, %(two)d" % {"one": 1, "two": 2}) 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-format-string/bad.py: -------------------------------------------------------------------------------- 1 | print("{a[0] + a[1]}".format(a=[0, 1])) # [bad-format-string] 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-format-string/good.py: -------------------------------------------------------------------------------- 1 | print("{a[0]} + {a[1]}".format(a=[0, 1])) 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-indentation/bad.py: -------------------------------------------------------------------------------- 1 | if input(): 2 | print('yes') # [bad-indentation] 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-indentation/details.rst: -------------------------------------------------------------------------------- 1 | The option ``--indent-string`` can be used to set the indentation unit for this check. 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-indentation/good.py: -------------------------------------------------------------------------------- 1 | if input(): 2 | print("yes") 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-inline-option/bad.py: -------------------------------------------------------------------------------- 1 | # 2:[bad-inline-option] 2 | # pylint: disable line-too-long 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-inline-option/good.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=line-too-long 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-mcs-classmethod-argument/good.py: -------------------------------------------------------------------------------- 1 | class Meta(type): 2 | @classmethod 3 | def foo(mcs): 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-mcs-method-argument/bad.py: -------------------------------------------------------------------------------- 1 | class Meta(type): 2 | def func(some): # [bad-mcs-method-argument] 3 | pass 4 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-mcs-method-argument/good.py: -------------------------------------------------------------------------------- 1 | class Meta(type): 2 | def func(cls): 3 | pass 4 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-reversed-sequence/bad.py: -------------------------------------------------------------------------------- 1 | reversed({1, 2, 3, 4}) # [bad-reversed-sequence] 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-reversed-sequence/good.py: -------------------------------------------------------------------------------- 1 | reversed([1, 2, 3, 4]) 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-staticmethod-argument/good.py: -------------------------------------------------------------------------------- 1 | class Wolf: 2 | @staticmethod 3 | def eat(sheep): 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-str-strip-call/bad/hello_world.py: -------------------------------------------------------------------------------- 1 | "Hello World".strip("Hello") # [bad-str-strip-call] 2 | # >>> ' World' 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-str-strip-call/good/hello_world.py: -------------------------------------------------------------------------------- 1 | "Hello World".strip("Helo") 2 | # >>> ' World' 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-str-strip-call/good/remove_abc_from_both_side.py: -------------------------------------------------------------------------------- 1 | "abcbc def bacabc".strip("abc ") 2 | # >>> 'def' 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-string-format-type/bad.py: -------------------------------------------------------------------------------- 1 | print("%d" % "1") # [bad-string-format-type] 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-string-format-type/good.py: -------------------------------------------------------------------------------- 1 | print("%d" % 1) 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bad-super-call/related.rst: -------------------------------------------------------------------------------- 1 | - `Documentation for super() `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/bidirectional-unicode/bad.py: -------------------------------------------------------------------------------- 1 | # +1: [bidirectional-unicode] 2 | example = "x‏" * 100 # "‏x" is assigned 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/bidirectional-unicode/good.py: -------------------------------------------------------------------------------- 1 | example = "x[U+2194]" * 100 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/binary-op-exception/good.py: -------------------------------------------------------------------------------- 1 | try: 2 | 1 / 0 3 | except (ZeroDivisionError, ValueError): 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/b/boolean-datetime/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.4 3 | -------------------------------------------------------------------------------- /doc/data/messages/b/boolean-datetime/related.rst: -------------------------------------------------------------------------------- 1 | - `Python bug tracker `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/broken-collections-callable/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.9 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /doc/data/messages/b/broken-collections-callable/related.rst: -------------------------------------------------------------------------------- 1 | - `bpo-42965 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/b/broken-noreturn/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /doc/data/messages/c/c-extension-no-member/good.py: -------------------------------------------------------------------------------- 1 | # This is a placeholder for correct code for this message. 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/chained-comparison/good.py: -------------------------------------------------------------------------------- 1 | a = int(input()) 2 | b = int(input()) 3 | c = int(input()) 4 | if a < b < c: 5 | pass 6 | -------------------------------------------------------------------------------- /doc/data/messages/c/comparison-of-constants/bad.py: -------------------------------------------------------------------------------- 1 | def is_the_answer() -> bool: 2 | return 42 == 42 # [comparison-of-constants] 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/comparison-of-constants/good.py: -------------------------------------------------------------------------------- 1 | def is_the_answer(meaning_of_life: int) -> bool: 2 | return meaning_of_life == 42 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/comparison-with-itself/good.py: -------------------------------------------------------------------------------- 1 | def is_an_orange(fruit): 2 | an_orange = "orange" 3 | return an_orange == fruit 4 | -------------------------------------------------------------------------------- /doc/data/messages/c/condition-evals-to-constant/good.py: -------------------------------------------------------------------------------- 1 | def is_a_fruit(fruit): 2 | return fruit in {"apple", "orange"} 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/config-parse-error/details.rst: -------------------------------------------------------------------------------- 1 | This is a message linked to a problem in your configuration not your code. 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/confusing-consecutive-elif/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.confusing_elif 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/confusing-with-statement/bad.py: -------------------------------------------------------------------------------- 1 | with open("file.txt", "w") as fh1, fh2: # [confusing-with-statement] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-alternative-union-syntax/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.typing 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-swap-variables/bad.py: -------------------------------------------------------------------------------- 1 | a = 1 2 | b = 2 3 | 4 | temp = a # [consider-swap-variables] 5 | a = b 6 | b = temp 7 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-swap-variables/good.py: -------------------------------------------------------------------------------- 1 | a = 1 2 | b = 2 3 | 4 | a, b = b, a 5 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-ternary-expression/good.py: -------------------------------------------------------------------------------- 1 | x, y = input(), input() 2 | maximum = x if x >= y else y 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-ternary-expression/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.consider_ternary_expression 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-alias/bad.py: -------------------------------------------------------------------------------- 1 | import typing 2 | 3 | cats: typing.Dict[str, int] # [consider-using-alias] 4 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-alias/good.py: -------------------------------------------------------------------------------- 1 | import typing 2 | 3 | cats: typing.cast(dict[str, int], "string") 4 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-alias/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins = pylint.extensions.typing 3 | py-version = 3.7 4 | runtime-typing=no 5 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-any-or-all/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.for_any_all 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-assignment-expr/good.py: -------------------------------------------------------------------------------- 1 | if apples := 2: 2 | print("God apples!") 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-assignment-expr/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.8 3 | load-plugins=pylint.extensions.code_style 4 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-augmented-assign/bad.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | x = x + 1 # [consider-using-augmented-assign] 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-augmented-assign/good.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | x += 1 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-from-import/bad.py: -------------------------------------------------------------------------------- 1 | import os.path as path # [consider-using-from-import] 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-from-import/good.py: -------------------------------------------------------------------------------- 1 | from os import path 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-in/good.py: -------------------------------------------------------------------------------- 1 | def fruit_is_round(fruit): 2 | return fruit in {"apple", "orange", "melon"} 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-join/good.py: -------------------------------------------------------------------------------- 1 | print("".join(["apple", "pear", "peach"])) 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-max-builtin/good.py: -------------------------------------------------------------------------------- 1 | print(max(1, 2)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-min-builtin/good.py: -------------------------------------------------------------------------------- 1 | print(min(1, 2)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-namedtuple-or-dataclass/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.code_style 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-ternary/bad.py: -------------------------------------------------------------------------------- 1 | x, y = 1, 2 2 | maximum = x >= y and x or y # [consider-using-ternary] 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-ternary/good.py: -------------------------------------------------------------------------------- 1 | x, y = 1, 2 2 | maximum = x if x >= y else y 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-tuple/bad.py: -------------------------------------------------------------------------------- 1 | for i in [1, 2, 3]: # [consider-using-tuple] 2 | print(i) 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-tuple/good.py: -------------------------------------------------------------------------------- 1 | for i in (1, 2, 3): 2 | print(i) 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-tuple/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.code_style 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-with/bad/not_even_close.py: -------------------------------------------------------------------------------- 1 | contents = open("apple.txt", "r", encoding="utf8").read() # [consider-using-with] 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/consider-using-with/good.py: -------------------------------------------------------------------------------- 1 | with open("apple.txt", "r", encoding="utf8") as file: 2 | contents = file.read() 3 | -------------------------------------------------------------------------------- /doc/data/messages/c/continue-in-finally/details.rst: -------------------------------------------------------------------------------- 1 | Note this message can't be emitted when using Python version 3.8 or greater. 2 | -------------------------------------------------------------------------------- /doc/data/messages/c/continue-in-finally/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/declare-non-slot/good.py: -------------------------------------------------------------------------------- 1 | class Student: 2 | __slots__ = ("name", "surname") 3 | 4 | name: str 5 | surname: str 6 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-argument/bad.py: -------------------------------------------------------------------------------- 1 | int(x=1) # [deprecated-argument] 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-argument/good.py: -------------------------------------------------------------------------------- 1 | int(1) 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-class/bad.py: -------------------------------------------------------------------------------- 1 | from collections import Iterable # [deprecated-class] 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-class/good.py: -------------------------------------------------------------------------------- 1 | from collections.abc import Iterable 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-decorator/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version = 3.3 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-method/bad.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.warn("I'm coming, world !") # [deprecated-method] 4 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-method/good.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.warning("I'm coming, world !") 4 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-module/bad.py: -------------------------------------------------------------------------------- 1 | import distutils # [deprecated-module] 2 | 3 | import whatever_you_want # [deprecated-module] 4 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-module/good.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | import whatever_replacement_you_want 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-module/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | deprecated-modules=whatever_you_want 4 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-pragma/bad.py: -------------------------------------------------------------------------------- 1 | # pylint: disable-msg=eval-used # [deprecated-pragma] 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-pragma/good.py: -------------------------------------------------------------------------------- 1 | # pylint: disable = eval-used 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-typing-alias/good.py: -------------------------------------------------------------------------------- 1 | item_to_number_of_item: dict[str, int] 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/deprecated-typing-alias/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins = pylint.extensions.typing 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/dict-init-mutate/good.py: -------------------------------------------------------------------------------- 1 | fruit_prices = {"apple": 1, "banana": 10} 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/dict-init-mutate/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.dict_init_mutate, 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/differing-param-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/differing-type-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/disallowed-name/bad.py: -------------------------------------------------------------------------------- 1 | def foo(): # [disallowed-name] 2 | print("apples") 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/disallowed-name/good.py: -------------------------------------------------------------------------------- 1 | def print_fruit(): 2 | print("apples") 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/disallowed-name/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | bad-names=foo,bar,baz 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/docstring-first-line-empty/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docstyle 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-argument-name/bad.py: -------------------------------------------------------------------------------- 1 | def get_fruits(apple, banana, apple): # [duplicate-argument-name] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-argument-name/good.py: -------------------------------------------------------------------------------- 1 | def get_fruits(apple, banana, orange): 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-bases/bad.py: -------------------------------------------------------------------------------- 1 | class Animal: 2 | pass 3 | 4 | 5 | class Cat(Animal, Animal): # [duplicate-bases] 6 | pass 7 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-code/good/apple.py: -------------------------------------------------------------------------------- 1 | from fruit import Fruit 2 | 3 | 4 | class Apple(Fruit): ... 5 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-except/good.py: -------------------------------------------------------------------------------- 1 | try: 2 | 1 / 0 3 | except ZeroDivisionError: 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-key/bad.py: -------------------------------------------------------------------------------- 1 | test_score = {"Mathematics": 85, "Biology": 90, "Mathematics": 75} # [duplicate-key] 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-key/good.py: -------------------------------------------------------------------------------- 1 | test_score = {"Mathematics": 85, "Biology": 90, "History": 75} 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-value/bad.py: -------------------------------------------------------------------------------- 1 | incorrect_set = {"value1", 23, 5, "value1"} # [duplicate-value] 2 | -------------------------------------------------------------------------------- /doc/data/messages/d/duplicate-value/good.py: -------------------------------------------------------------------------------- 1 | correct_set = {"value1", 23, 5} 2 | -------------------------------------------------------------------------------- /doc/data/messages/e/else-if-used/good.py: -------------------------------------------------------------------------------- 1 | if input(): 2 | pass 3 | elif len(input()) >= 10: 4 | pass 5 | else: 6 | pass 7 | -------------------------------------------------------------------------------- /doc/data/messages/e/else-if-used/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.check_elif 3 | -------------------------------------------------------------------------------- /doc/data/messages/e/empty-comment/bad.py: -------------------------------------------------------------------------------- 1 | # +1:[empty-comment] 2 | # 3 | 4 | # +1:[empty-comment] 5 | x = 0 # 6 | -------------------------------------------------------------------------------- /doc/data/messages/e/empty-comment/good.py: -------------------------------------------------------------------------------- 1 | # comment 2 | 3 | x = 0 # comment 4 | -------------------------------------------------------------------------------- /doc/data/messages/e/empty-comment/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.empty_comment 3 | -------------------------------------------------------------------------------- /doc/data/messages/e/empty-docstring/bad.py: -------------------------------------------------------------------------------- 1 | def foo(): # [empty-docstring] 2 | """""" 3 | -------------------------------------------------------------------------------- /doc/data/messages/e/empty-docstring/good.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | """A dummy description.""" 3 | -------------------------------------------------------------------------------- /doc/data/messages/e/eq-without-hash/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.eq_without_hash, 3 | -------------------------------------------------------------------------------- /doc/data/messages/e/eval-used/bad.py: -------------------------------------------------------------------------------- 1 | eval("[1, 2, 3]") # [eval-used] 2 | -------------------------------------------------------------------------------- /doc/data/messages/e/eval-used/good.py: -------------------------------------------------------------------------------- 1 | from ast import literal_eval 2 | 3 | literal_eval("[1, 2, 3]") 4 | -------------------------------------------------------------------------------- /doc/data/messages/e/expression-not-assigned/bad.py: -------------------------------------------------------------------------------- 1 | str(42) == "42" # [expression-not-assigned] 2 | -------------------------------------------------------------------------------- /doc/data/messages/e/expression-not-assigned/good.py: -------------------------------------------------------------------------------- 1 | are_equal: bool = str(42) == "42" 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/f-string-without-interpolation/bad.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | y = 2 3 | print(f"x + y = x + y") # [f-string-without-interpolation] 4 | -------------------------------------------------------------------------------- /doc/data/messages/f/f-string-without-interpolation/good.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | y = 2 3 | print(f"{x} + {y} = {x + y}") 4 | -------------------------------------------------------------------------------- /doc/data/messages/f/fatal/details.rst: -------------------------------------------------------------------------------- 1 | This is a message linked to an internal problem in pylint. There's nothing to change in your code. 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/file-ignored/bad.py: -------------------------------------------------------------------------------- 1 | # pylint: skip-file 2 | # -1: [file-ignored] 3 | -------------------------------------------------------------------------------- /doc/data/messages/f/file-ignored/details.rst: -------------------------------------------------------------------------------- 1 | There's no checks at all for a file if it starts by ``# pylint: skip-file``. 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/fixme/bad.py: -------------------------------------------------------------------------------- 1 | # TODO: We should fix this at some point # [fixme] 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/fixme/good/bug_tracker.py: -------------------------------------------------------------------------------- 1 | # The issue was added to the bug tracker: no longer need the comment 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/fixme/good/fixed.py: -------------------------------------------------------------------------------- 1 | # The issue was fixed: no longer need the comment 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/fixme/good/no_fix.py: -------------------------------------------------------------------------------- 1 | # We no longer want to fix this: no longer need the comment 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-combined-specification/bad.py: -------------------------------------------------------------------------------- 1 | print("{} {1}".format("hello", "world")) # [format-combined-specification] 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-combined-specification/good/index_formatting.py: -------------------------------------------------------------------------------- 1 | print("{0} {1}".format("hello", "world")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-combined-specification/good/order_formatting.py: -------------------------------------------------------------------------------- 1 | print("{} {}".format("hello", "world")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-needs-mapping/bad.py: -------------------------------------------------------------------------------- 1 | print("%(x)d %(y)d" % [1, 2]) # [format-needs-mapping] 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-needs-mapping/good.py: -------------------------------------------------------------------------------- 1 | print("%(x)d %(y)d" % {"x": 1, "y": 2}) 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-string-without-interpolation/bad.py: -------------------------------------------------------------------------------- 1 | print("number".format(1)) # [format-string-without-interpolation] 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/format-string-without-interpolation/good.py: -------------------------------------------------------------------------------- 1 | print("number: {}".format(1)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/f/function-redefined/bad.py: -------------------------------------------------------------------------------- 1 | def get_email(): 2 | pass 3 | 4 | 5 | def get_email(): # [function-redefined] 6 | pass 7 | -------------------------------------------------------------------------------- /doc/data/messages/f/function-redefined/good.py: -------------------------------------------------------------------------------- 1 | def get_email(): 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/g/global-at-module-level/bad.py: -------------------------------------------------------------------------------- 1 | price = 25 2 | global price # [global-at-module-level] 3 | -------------------------------------------------------------------------------- /doc/data/messages/g/global-at-module-level/good.py: -------------------------------------------------------------------------------- 1 | price = 25 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/implicit-str-concat/bad/list.py: -------------------------------------------------------------------------------- 1 | x = ["a" "b"] # [implicit-str-concat] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/implicit-str-concat/bad/open.py: -------------------------------------------------------------------------------- 1 | with open("hello.txt" "r") as f: # [implicit-str-concat] 2 | print(f.read()) 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/implicit-str-concat/good/list.py: -------------------------------------------------------------------------------- 1 | x = ["a", "b"] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/implicit-str-concat/good/open.py: -------------------------------------------------------------------------------- 1 | with open("hello.txt", "r") as f: 2 | print(f.read()) 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/import-error/bad.py: -------------------------------------------------------------------------------- 1 | from patlib import Path # [import-error] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/import-error/good.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/import-outside-toplevel/good.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | 4 | def print_python_version(): 5 | print(sys.version_info) 6 | -------------------------------------------------------------------------------- /doc/data/messages/i/import-private-name/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins = pylint.extensions.private_import 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/inconsistent-quotes/good.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | 3 | print("Current year: ", datetime.date.today().strftime("%Y")) 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/inconsistent-quotes/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | check-quote-consistency=yes 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/inherit-non-class/bad.py: -------------------------------------------------------------------------------- 1 | class Fruit(bool): # [inherit-non-class] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/inherit-non-class/good.py: -------------------------------------------------------------------------------- 1 | class Fruit: 2 | def __bool__(self): 3 | pass 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-all-format/bad.py: -------------------------------------------------------------------------------- 1 | __all__ = "CONST" # [invalid-all-format] 2 | 3 | CONST = 42 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-all-format/good.py: -------------------------------------------------------------------------------- 1 | __all__ = ("CONST",) 2 | 3 | CONST = 42 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-backspace/bad.py: -------------------------------------------------------------------------------- 1 | STRING = "Invalid character backspace " # [invalid-character-backspace] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-backspace/good.py: -------------------------------------------------------------------------------- 1 | STRING = "Valid character backspace \b" 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-carriage-return/good.py: -------------------------------------------------------------------------------- 1 | STRING = "Valid carriage return: \r" 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-esc/bad.py: -------------------------------------------------------------------------------- 1 | STRING = "Invalid escape character " # [invalid-character-esc] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-esc/good.py: -------------------------------------------------------------------------------- 1 | STRING = "Valid escape character \x1b" 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-nul/good.py: -------------------------------------------------------------------------------- 1 | STRING = "Valid nul terminator: \x00" 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-nul/related.rst: -------------------------------------------------------------------------------- 1 | - `Null terminator in python `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-sub/bad.py: -------------------------------------------------------------------------------- 1 | STRING = "Invalid character sub " # [invalid-character-sub] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-sub/good.py: -------------------------------------------------------------------------------- 1 | STRING = "Valid character sub x1A" 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-character-zero-width-space/good.py: -------------------------------------------------------------------------------- 1 | STRING = "Valid character zero-width-space u200B" 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-class-object/bad.py: -------------------------------------------------------------------------------- 1 | class Apple: 2 | pass 3 | 4 | 5 | Apple.__class__ = 1 # [invalid-class-object] 6 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-envvar-default/bad.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | env = os.getenv("SECRET_KEY", 1) # [invalid-envvar-default] 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-envvar-default/good.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | env = os.getenv("SECRET_KEY", "1") 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-envvar-value/bad.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | os.getenv(1) # [invalid-envvar-value] 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-envvar-value/good.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | os.getenv("1") 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-metaclass/bad.py: -------------------------------------------------------------------------------- 1 | class Apple(metaclass=int): # [invalid-metaclass] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-metaclass/good.py: -------------------------------------------------------------------------------- 1 | class Plant: 2 | pass 3 | 4 | 5 | class Apple(Plant): 6 | pass 7 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-sequence-index/bad.py: -------------------------------------------------------------------------------- 1 | fruits = ["apple", "banana", "orange"] 2 | print(fruits["apple"]) # [invalid-sequence-index] 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-sequence-index/good.py: -------------------------------------------------------------------------------- 1 | fruits = ["apple", "banana", "orange"] 2 | print(fruits[0]) 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slice-index/bad.py: -------------------------------------------------------------------------------- 1 | LETTERS = ["a", "b", "c", "d"] 2 | 3 | FIRST_THREE = LETTERS[:"3"] # [invalid-slice-index] 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slice-index/good.py: -------------------------------------------------------------------------------- 1 | LETTERS = ["a", "b", "c", "d"] 2 | 3 | FIRST_THREE = LETTERS[:3] 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slice-step/bad.py: -------------------------------------------------------------------------------- 1 | LETTERS = ["a", "b", "c", "d"] 2 | 3 | LETTERS[::0] # [invalid-slice-step] 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slice-step/good.py: -------------------------------------------------------------------------------- 1 | LETTERS = ["a", "b", "c", "d"] 2 | 3 | LETTERS[::2] 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slots-object/bad.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | __slots__ = ("name", 3) # [invalid-slots-object] 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slots-object/good.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | __slots__ = ("name", "surname") 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slots-object/related.rst: -------------------------------------------------------------------------------- 1 | - `Documentation for __slots__ `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slots/bad.py: -------------------------------------------------------------------------------- 1 | class Person: # [invalid-slots] 2 | __slots__ = 42 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-slots/good.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | __slots__ = ("name", "age") 3 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-star-assignment-target/bad.py: -------------------------------------------------------------------------------- 1 | *fruit = ["apple", "banana", "orange"] # [invalid-star-assignment-target] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-star-assignment-target/good.py: -------------------------------------------------------------------------------- 1 | fruit = ["apple", "banana", "orange"] 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-unary-operand-type/good.py: -------------------------------------------------------------------------------- 1 | cherries = 10 2 | eaten_cherries = 2 3 | cherries -= eaten_cherries 4 | -------------------------------------------------------------------------------- /doc/data/messages/i/invalid-unicode-codec/details.rst: -------------------------------------------------------------------------------- 1 | This message is a placeholder for a potential future issue with unicode codecs. 2 | -------------------------------------------------------------------------------- /doc/data/messages/i/isinstance-second-argument-not-valid-type/good.py: -------------------------------------------------------------------------------- 1 | isinstance("apples and oranges", str) 2 | -------------------------------------------------------------------------------- /doc/data/messages/k/keyword-arg-before-vararg/bad.py: -------------------------------------------------------------------------------- 1 | def func(x=None, *args): # [keyword-arg-before-vararg] 2 | return [x, *args] 3 | -------------------------------------------------------------------------------- /doc/data/messages/k/keyword-arg-before-vararg/good.py: -------------------------------------------------------------------------------- 1 | def func(*args, x=None): 2 | return [*args, x] 3 | -------------------------------------------------------------------------------- /doc/data/messages/l/line-too-long/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | max-line-length=100 3 | -------------------------------------------------------------------------------- /doc/data/messages/l/literal-comparison/bad.py: -------------------------------------------------------------------------------- 1 | def is_an_orange(fruit): 2 | return fruit is "orange" # [literal-comparison] 3 | -------------------------------------------------------------------------------- /doc/data/messages/l/literal-comparison/good.py: -------------------------------------------------------------------------------- 1 | def is_an_orange(fruit): 2 | return fruit == "orange" 3 | -------------------------------------------------------------------------------- /doc/data/messages/l/logging-format-interpolation/good.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import sys 3 | 4 | logging.error("Python version: %s", sys.version) 5 | -------------------------------------------------------------------------------- /doc/data/messages/l/logging-format-truncated/good.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import sys 3 | 4 | logging.warning("Python version: %s", sys.version) 5 | -------------------------------------------------------------------------------- /doc/data/messages/l/logging-unsupported-format/good.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.info("%s %s !", "Hello", "World") 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/magic-value-comparison/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.magic_value 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/misplaced-bare-raise/bad.py: -------------------------------------------------------------------------------- 1 | def validate_positive(x): 2 | if x <= 0: 3 | raise # [misplaced-bare-raise] 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/misplaced-comparison-constant/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.comparison_placement 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/misplaced-format-function/bad.py: -------------------------------------------------------------------------------- 1 | print("Value: {}").format("Car") # [misplaced-format-function] 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/misplaced-format-function/good.py: -------------------------------------------------------------------------------- 1 | print("Value: {}".format("Car")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/misplaced-future/bad.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from __future__ import print_function # [misplaced-future] 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/misplaced-future/good.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | 3 | import sys 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-any-param-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins = pylint.extensions.docparams 3 | accept-no-param-doc = false 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-final-newline/bad/lf.py: -------------------------------------------------------------------------------- 1 | print("Hello") # LF (\n) 2 | print("world") # End-of-file (EOF) 3 | # [missing-final-newline] -------------------------------------------------------------------------------- /doc/data/messages/m/missing-final-newline/good/crlf.py: -------------------------------------------------------------------------------- 1 | print("Hello") # CRLF (\r\n) 2 | print("world") # CRLF (\r\n) 3 | # End-of-file (EOF) 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-final-newline/good/lf.py: -------------------------------------------------------------------------------- 1 | print("Hello") # LF (\n) 2 | print("world") # LF (\n) 3 | # End-of-file (EOF) 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-format-argument-key/bad.py: -------------------------------------------------------------------------------- 1 | print("My name is {first} {last}".format(first="John")) # [missing-format-argument-key] 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-format-argument-key/good.py: -------------------------------------------------------------------------------- 1 | print("My name is {first} {last}".format(first="John", last="Wick")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-format-attribute/bad.py: -------------------------------------------------------------------------------- 1 | print("{0.real}".format("1")) # [missing-format-attribute] 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-format-attribute/good.py: -------------------------------------------------------------------------------- 1 | print("{0.real}".format(1)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-param-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-return-doc/details.rst: -------------------------------------------------------------------------------- 1 | This message is raised only when parameter ``accept-no-return-doc`` is set to ``no``. 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-return-type-doc/details.rst: -------------------------------------------------------------------------------- 1 | This message is raised only when parameter ``accept-no-return-doc`` is set to ``no``. 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-timeout/bad.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | requests.post("http://localhost") # [missing-timeout] 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-timeout/good.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | requests.post("http://localhost", timeout=10) 4 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-type-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-yield-doc/details.rst: -------------------------------------------------------------------------------- 1 | This message is raised only when parameter ``accept-no-yields-doc`` is set to ``no``. 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/missing-yield-type-doc/details.rst: -------------------------------------------------------------------------------- 1 | This message is raised only when parameter ``accept-no-yields-doc`` is set to ``no``. 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/mixed-format-string/bad.py: -------------------------------------------------------------------------------- 1 | print("x=%(x)d, y=%d" % (0, 1)) # [mixed-format-string] 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/mixed-format-string/good/only_named.py: -------------------------------------------------------------------------------- 1 | print("x=%(x)d, y=%(y)d" % {"x": 0, "y": 1}) 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/mixed-format-string/good/only_ordered.py: -------------------------------------------------------------------------------- 1 | print("x=%d, y=%d" % (0, 1)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/mixed-line-endings/bad.py: -------------------------------------------------------------------------------- 1 | print("Hello") # CRLF (\r\n) 2 | print("World") # LF (\n) # [mixed-line-endings] 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/mixed-line-endings/good/full_crlf.py: -------------------------------------------------------------------------------- 1 | print("Hello") # CRLF (\r\n) 2 | print("World") # CRLF (\r\n) 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/mixed-line-endings/good/full_lf.py: -------------------------------------------------------------------------------- 1 | print("Hello") # LF (\n) 2 | print("World") # LF (\n) 3 | -------------------------------------------------------------------------------- /doc/data/messages/m/multiple-constructor-doc/details.rst: -------------------------------------------------------------------------------- 1 | Both docstrings are acceptable but not both at the same time. 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/multiple-imports/bad.py: -------------------------------------------------------------------------------- 1 | import os, sys # [multiple-imports] 2 | -------------------------------------------------------------------------------- /doc/data/messages/m/multiple-imports/good.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/named-expr-without-context/bad.py: -------------------------------------------------------------------------------- 1 | (a := 42) # [named-expr-without-context] 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/named-expr-without-context/good.py: -------------------------------------------------------------------------------- 1 | if a := 42: 2 | print("Success") 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/nested-min-max/bad.py: -------------------------------------------------------------------------------- 1 | print(min(1, min(2, 3))) # [nested-min-max] 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/nested-min-max/good.py: -------------------------------------------------------------------------------- 1 | print(min(1, 2, 3)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-method-argument/bad.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | def print_greeting(): # [no-method-argument] 3 | print("hello") 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-method-argument/good.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | def print_greeting(self): 3 | print("hello") 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-name-in-module/bad.py: -------------------------------------------------------------------------------- 1 | from os import pizza # [no-name-in-module] 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-name-in-module/good.py: -------------------------------------------------------------------------------- 1 | from os import path 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-self-argument/bad.py: -------------------------------------------------------------------------------- 1 | class Fruit: 2 | def __init__(this, name): # [no-self-argument] 3 | this.name = name 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-self-argument/good.py: -------------------------------------------------------------------------------- 1 | class Fruit: 2 | def __init__(self, name): 3 | self.name = name 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-self-use/bad.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | def greeting(self): # [no-self-use] 3 | print("Greetings pythonista!") 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-self-use/good/function.py: -------------------------------------------------------------------------------- 1 | def greeting(): 2 | print("Greetings pythonista!") 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-self-use/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.no_self_use, 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-staticmethod-decorator/good.py: -------------------------------------------------------------------------------- 1 | class Worm: 2 | @staticmethod 3 | def bore(self): 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-value-for-parameter/bad.py: -------------------------------------------------------------------------------- 1 | def add(x, y): 2 | return x + y 3 | 4 | 5 | add(1) # [no-value-for-parameter] 6 | -------------------------------------------------------------------------------- /doc/data/messages/n/no-value-for-parameter/good.py: -------------------------------------------------------------------------------- 1 | def add(x, y): 2 | return x + y 3 | 4 | 5 | add(1, 2) 6 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-ascii-file-name/bad/bàd.py: -------------------------------------------------------------------------------- 1 | # [non-ascii-file-name] 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-ascii-file-name/bad/not_bétter.py: -------------------------------------------------------------------------------- 1 | # [non-ascii-file-name] 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-ascii-module-import/bad.py: -------------------------------------------------------------------------------- 1 | from os.path import join as łos # [non-ascii-module-import] 2 | 3 | foo = łos("a", "b") 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-ascii-module-import/good.py: -------------------------------------------------------------------------------- 1 | from os.path import join as os_join 2 | 3 | foo = os_join("a", "b") 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-ascii-name/bad.py: -------------------------------------------------------------------------------- 1 | ápple_count = 4444 # [non-ascii-name] 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-ascii-name/good.py: -------------------------------------------------------------------------------- 1 | apple_count = 4444 2 | -------------------------------------------------------------------------------- /doc/data/messages/n/non-str-assignment-to-dunder-name/good.py: -------------------------------------------------------------------------------- 1 | class Fruit: 2 | pass 3 | 4 | 5 | Fruit.__name__ = "FRUIT" 6 | -------------------------------------------------------------------------------- /doc/data/messages/n/nonexistent-operator/bad.py: -------------------------------------------------------------------------------- 1 | i = 0 2 | 3 | while i <= 10: 4 | print(i) 5 | ++i # [nonexistent-operator] 6 | -------------------------------------------------------------------------------- /doc/data/messages/n/nonexistent-operator/good.py: -------------------------------------------------------------------------------- 1 | i = 0 2 | 3 | while i <= 10: 4 | print(i) 5 | i += 1 6 | -------------------------------------------------------------------------------- /doc/data/messages/n/not-a-mapping/good.py: -------------------------------------------------------------------------------- 1 | def print_colors(**colors): 2 | print(colors) 3 | 4 | 5 | print_colors(**dict(red=1, black=2)) 6 | -------------------------------------------------------------------------------- /doc/data/messages/n/not-an-iterable/bad.py: -------------------------------------------------------------------------------- 1 | for i in 10: # [not-an-iterable] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/not-an-iterable/good.py: -------------------------------------------------------------------------------- 1 | for i in "10": 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/not-callable/bad.py: -------------------------------------------------------------------------------- 1 | NUMBER = 42 2 | print(NUMBER()) # [not-callable] 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/not-callable/good.py: -------------------------------------------------------------------------------- 1 | NUMBER = 42 2 | print(NUMBER) 3 | -------------------------------------------------------------------------------- /doc/data/messages/n/notimplemented-raised/bad.py: -------------------------------------------------------------------------------- 1 | class Worm: 2 | def bore(self): 3 | raise NotImplemented # [notimplemented-raised] 4 | -------------------------------------------------------------------------------- /doc/data/messages/n/notimplemented-raised/good.py: -------------------------------------------------------------------------------- 1 | class Worm: 2 | def bore(self): 3 | raise NotImplementedError 4 | -------------------------------------------------------------------------------- /doc/data/messages/o/overlapping-except/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.overlapping_exceptions, 3 | -------------------------------------------------------------------------------- /doc/data/messages/o/overridden-final-method/details.rst: -------------------------------------------------------------------------------- 1 | The message can't be emitted when using Python < 3.8. 2 | -------------------------------------------------------------------------------- /doc/data/messages/o/overridden-final-method/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.8 3 | -------------------------------------------------------------------------------- /doc/data/messages/o/overridden-final-method/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 591 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/parse-error/details.rst: -------------------------------------------------------------------------------- 1 | This is a message linked to an internal problem in pylint. There's nothing to change in your code. 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/pointless-exception-statement/bad.py: -------------------------------------------------------------------------------- 1 | Exception("This exception is a statement.") # [pointless-exception-statement] 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/pointless-exception-statement/good.py: -------------------------------------------------------------------------------- 1 | raise Exception("This will raise.") 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/pointless-statement/bad.py: -------------------------------------------------------------------------------- 1 | [1, 2, 3] # [pointless-statement] 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/pointless-statement/good.py: -------------------------------------------------------------------------------- 1 | NUMBERS = [1, 2, 3] 2 | 3 | print(NUMBERS) 4 | -------------------------------------------------------------------------------- /doc/data/messages/p/positional-only-arguments-expected/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 570 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/potential-index-error/bad.py: -------------------------------------------------------------------------------- 1 | print([1, 2, 3][3]) # [potential-index-error] 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/potential-index-error/good.py: -------------------------------------------------------------------------------- 1 | print([1, 2, 3][2]) 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/prefer-typing-namedtuple/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.code_style 3 | -------------------------------------------------------------------------------- /doc/data/messages/p/preferred-module/bad.py: -------------------------------------------------------------------------------- 1 | import urllib # [preferred-module] 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/preferred-module/good.py: -------------------------------------------------------------------------------- 1 | import requests 2 | -------------------------------------------------------------------------------- /doc/data/messages/p/preferred-module/pylintrc: -------------------------------------------------------------------------------- 1 | [IMPORTS] 2 | preferred-modules=urllib:requests, 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/raise-missing-from/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 3134 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/raising-format-tuple/bad.py: -------------------------------------------------------------------------------- 1 | raise RuntimeError("This looks wrong %s %s", ("a", "b")) # [raising-format-tuple] 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/raising-format-tuple/good.py: -------------------------------------------------------------------------------- 1 | raise RuntimeError("This looks wrong %s %s" % ("a", "b")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/raising-non-exception/bad.py: -------------------------------------------------------------------------------- 1 | raise str # [raising-non-exception] 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/raising-non-exception/good.py: -------------------------------------------------------------------------------- 1 | raise Exception("Goodbye world !") 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/redeclared-assigned-name/bad.py: -------------------------------------------------------------------------------- 1 | FIRST, FIRST = (1, 2) # [redeclared-assigned-name] 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/redeclared-assigned-name/good.py: -------------------------------------------------------------------------------- 1 | FIRST, SECOND = (1, 2) 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/redefined-builtin/bad.py: -------------------------------------------------------------------------------- 1 | def map(): # [redefined-builtin] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redefined-builtin/good.py: -------------------------------------------------------------------------------- 1 | def map_iterable(): 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redefined-loop-name/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.redefined_loop_name, 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redefined-variable-type/bad.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | x = "2" # [redefined-variable-type] 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redefined-variable-type/good.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | x = 2 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redefined-variable-type/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.redefined_variable_type, 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-keyword-arg/bad.py: -------------------------------------------------------------------------------- 1 | def square(x): 2 | return x * x 3 | 4 | 5 | square(5, x=4) # [redundant-keyword-arg] 6 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-keyword-arg/good/only_arg.py: -------------------------------------------------------------------------------- 1 | def square(x): 2 | return x * x 3 | 4 | 5 | square(5) 6 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-keyword-arg/good/only_kwarg.py: -------------------------------------------------------------------------------- 1 | def square(x): 2 | return x * x 3 | 4 | 5 | square(x=4) 6 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-returns-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-typehint-argument/good.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | sweet_count: Union[str, int] = 42 4 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-typehint-argument/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.typing 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-u-string-prefix/bad.py: -------------------------------------------------------------------------------- 1 | def print_fruit(): 2 | print(u"Apple") # [redundant-u-string-prefix] 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-u-string-prefix/good.py: -------------------------------------------------------------------------------- 1 | def print_fruit(): 2 | print("Apple") 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/redundant-yields-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/reimported/bad.py: -------------------------------------------------------------------------------- 1 | import re 2 | import re # [reimported] 3 | -------------------------------------------------------------------------------- /doc/data/messages/r/reimported/good.py: -------------------------------------------------------------------------------- 1 | import re 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/relative-beyond-top-level/bad.py: -------------------------------------------------------------------------------- 1 | from ................antigravity import NGField # [relative-beyond-top-level] 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/relative-beyond-top-level/good/absolute_import.py: -------------------------------------------------------------------------------- 1 | from physic.antigravity import NGField 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/repeated-keyword/good.py: -------------------------------------------------------------------------------- 1 | def func(a, b, c): 2 | return a, b, c 3 | 4 | 5 | func(1, 2, c=3) 6 | -------------------------------------------------------------------------------- /doc/data/messages/r/return-in-init/bad.py: -------------------------------------------------------------------------------- 1 | class Sum: 2 | def __init__(self, a, b): # [return-in-init] 3 | return a + b 4 | -------------------------------------------------------------------------------- /doc/data/messages/r/return-in-init/good.py: -------------------------------------------------------------------------------- 1 | class Sum: 2 | def __init__(self, a, b) -> None: 3 | self.result = a + b 4 | -------------------------------------------------------------------------------- /doc/data/messages/r/return-outside-function/bad.py: -------------------------------------------------------------------------------- 1 | return 42 # [return-outside-function] 2 | -------------------------------------------------------------------------------- /doc/data/messages/r/return-outside-function/good.py: -------------------------------------------------------------------------------- 1 | def get_the_answer(): 2 | return 42 3 | -------------------------------------------------------------------------------- /doc/data/messages/s/self-assigning-variable/bad.py: -------------------------------------------------------------------------------- 1 | year = 2000 2 | year = year # [self-assigning-variable] 3 | -------------------------------------------------------------------------------- /doc/data/messages/s/self-assigning-variable/good.py: -------------------------------------------------------------------------------- 1 | year = 2000 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/shadowed-import/bad.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import FastAPI.Path as Path # [shadowed-import] 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/shadowed-import/good.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import FastAPI.Path as FastApiPath 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/shallow-copy-environ/bad.py: -------------------------------------------------------------------------------- 1 | import copy 2 | import os 3 | 4 | copied_env = copy.copy(os.environ) # [shallow-copy-environ] 5 | -------------------------------------------------------------------------------- /doc/data/messages/s/shallow-copy-environ/good.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | copied_env = os.environ.copy() 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/simplifiable-condition/good.py: -------------------------------------------------------------------------------- 1 | def has_apples(apples) -> bool: 2 | return bool(apples) 3 | -------------------------------------------------------------------------------- /doc/data/messages/s/simplify-boolean-expression/good.py: -------------------------------------------------------------------------------- 1 | def has_oranges(oranges, apples=None) -> bool: 2 | return oranges 3 | -------------------------------------------------------------------------------- /doc/data/messages/s/singleton-comparison/bad.py: -------------------------------------------------------------------------------- 1 | game_won = True 2 | if game_won == True: # [singleton-comparison] 3 | print("Game won !") 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/singleton-comparison/good.py: -------------------------------------------------------------------------------- 1 | game_won = True 2 | if game_won: 3 | print("Game won !") 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/singleton-comparison/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 285 – Adding a bool type `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/star-needs-assignment-target/bad.py: -------------------------------------------------------------------------------- 1 | stars = *["Sirius", "Arcturus", "Vega"] # [star-needs-assignment-target] 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/star-needs-assignment-target/good.py: -------------------------------------------------------------------------------- 1 | sirius, *arcturus_and_vega = ["Sirius", "Arcturus", "Vega"] 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/stop-iteration-return/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 479 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/subclassed-final-class/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.8 3 | -------------------------------------------------------------------------------- /doc/data/messages/s/subclassed-final-class/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 591 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/subprocess-popen-preexec-fn/good.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | 3 | subprocess.Popen() 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/subprocess-run-check/bad.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | 3 | proc = subprocess.run(["ls"]) # [subprocess-run-check] 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/subprocess-run-check/good.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | 3 | proc = subprocess.run(["ls"], check=False) 4 | -------------------------------------------------------------------------------- /doc/data/messages/s/superfluous-parens/bad/example_1.py: -------------------------------------------------------------------------------- 1 | x = input() 2 | y = input() 3 | if (x == y): # [superfluous-parens] 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/s/superfluous-parens/bad/example_2.py: -------------------------------------------------------------------------------- 1 | i = 0 2 | exclude = [] 3 | if (i - 0) in exclude: # [superfluous-parens] 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/s/superfluous-parens/good/example_1.py: -------------------------------------------------------------------------------- 1 | x = input() 2 | y = input() 3 | if x == y: 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/s/superfluous-parens/good/example_2.py: -------------------------------------------------------------------------------- 1 | i = 0 2 | exclude = [] 3 | if i - 0 in exclude: 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/s/suppressed-message/good.py: -------------------------------------------------------------------------------- 1 | """Instead of a single string somewhere in the file, write a module docstring!""" 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/syntax-error/bad.py: -------------------------------------------------------------------------------- 1 | fruit_stock = { 2 | 'apple': 42, 3 | 'orange': 21 # [syntax-error] 4 | 'banana': 12 5 | } 6 | -------------------------------------------------------------------------------- /doc/data/messages/s/syntax-error/good.py: -------------------------------------------------------------------------------- 1 | fruit_stock = {"apple": 42, "orange": 21, "banana": 12} 2 | -------------------------------------------------------------------------------- /doc/data/messages/s/syntax-error/related.rst: -------------------------------------------------------------------------------- 1 | - `Why can't pylint recover from a syntax error ? `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-complex/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | 3 | load-plugins=pylint.extensions.mccabe 4 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-few-format-args/bad.py: -------------------------------------------------------------------------------- 1 | print("Today is {0}, so tomorrow will be {1}".format("Monday")) # [too-few-format-args] 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-few-format-args/good.py: -------------------------------------------------------------------------------- 1 | print("Today is {0}, so tomorrow will be {1}".format("Monday", "Tuesday")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-few-format-args/related.rst: -------------------------------------------------------------------------------- 1 | - `String Formatting `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-branches/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | max-branches=10 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-format-args/good.py: -------------------------------------------------------------------------------- 1 | print("Today is {0}, so tomorrow will be {1}".format("Monday", "Tuesday")) 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-format-args/related.rst: -------------------------------------------------------------------------------- 1 | - `String Formatting `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-lines/good/is_palindrome.py: -------------------------------------------------------------------------------- 1 | def is_palindrome(string): 2 | return string == string[::-1] 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-lines/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | max-module-lines=15 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-locals/pylintrc: -------------------------------------------------------------------------------- 1 | [design] 2 | max-locals = 11 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-positional-arguments/pylintrc: -------------------------------------------------------------------------------- 1 | [DESIGN] 2 | max-positional-arguments=3 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-public-methods/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | max-public-methods=7 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-star-expressions/bad.py: -------------------------------------------------------------------------------- 1 | *stars, *constellations = ["Sirius", "Arcturus", "Vega"] # [too-many-star-expressions] 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-star-expressions/good.py: -------------------------------------------------------------------------------- 1 | *sirius_and_arcturus, vega = ["Sirius", "Arcturus", "Vega"] 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-statements/pylintrc: -------------------------------------------------------------------------------- 1 | [DESIGN] 2 | max-statements=7 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/too-many-try-statements/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.broad_try_clause, 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/trailing-comma-tuple/bad.py: -------------------------------------------------------------------------------- 1 | COMPASS = "north", "south", "east", "west", # [trailing-comma-tuple] 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/trailing-comma-tuple/good.py: -------------------------------------------------------------------------------- 1 | COMPASS = ("north", "south", "east", "west") 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/trailing-newlines/bad.py: -------------------------------------------------------------------------------- 1 | print("apple") 2 | # The file ends with 2 lines that are empty # +1: [trailing-newlines] 3 | 4 | -------------------------------------------------------------------------------- /doc/data/messages/t/trailing-newlines/good.py: -------------------------------------------------------------------------------- 1 | print("apple") 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/trailing-whitespace/good.py: -------------------------------------------------------------------------------- 1 | print("Hello") 2 | -------------------------------------------------------------------------------- /doc/data/messages/t/truncated-format-string/bad.py: -------------------------------------------------------------------------------- 1 | PARG_2 = 1 2 | 3 | print("strange format %2" % PARG_2) # [truncated-format-string] 4 | -------------------------------------------------------------------------------- /doc/data/messages/t/truncated-format-string/good.py: -------------------------------------------------------------------------------- 1 | PARG_2 = 1 2 | 3 | print(f"strange format {PARG_2}") 4 | -------------------------------------------------------------------------------- /doc/data/messages/t/try-except-raise/bad.py: -------------------------------------------------------------------------------- 1 | try: 2 | 1 / 0 3 | except ZeroDivisionError as e: # [try-except-raise] 4 | raise 5 | -------------------------------------------------------------------------------- /doc/data/messages/t/try-except-raise/good/remove_try_except.py: -------------------------------------------------------------------------------- 1 | # The try except might be removed entirely: 2 | 1 / 0 3 | -------------------------------------------------------------------------------- /doc/data/messages/t/typevar-name-incorrect-variance/good.py: -------------------------------------------------------------------------------- 1 | from typing import TypeVar 2 | 3 | T = TypeVar("T") 4 | -------------------------------------------------------------------------------- /doc/data/messages/t/typevar-name-mismatch/bad.py: -------------------------------------------------------------------------------- 1 | from typing import TypeVar 2 | 3 | X = TypeVar("T") # [typevar-name-mismatch] 4 | -------------------------------------------------------------------------------- /doc/data/messages/t/typevar-name-mismatch/good.py: -------------------------------------------------------------------------------- 1 | from typing import TypeVar 2 | 3 | T = TypeVar("T") 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unbalanced-tuple-unpacking/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 3132 - Extended Iterable Unpacking `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/undefined-all-variable/good.py: -------------------------------------------------------------------------------- 1 | __all__ = ["get_fruit_color"] 2 | 3 | 4 | def get_fruit_color(): 5 | pass 6 | -------------------------------------------------------------------------------- /doc/data/messages/u/undefined-variable/bad.py: -------------------------------------------------------------------------------- 1 | print(number + 2) # [undefined-variable] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/undefined-variable/good.py: -------------------------------------------------------------------------------- 1 | number = 3 2 | print(number + 2) 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unexpected-line-ending-format/good.py: -------------------------------------------------------------------------------- 1 | print("I'm drinking tea!") # LF (\n) 2 | print("I'm drinking water!") # LF (\n) 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unexpected-line-ending-format/pylintrc: -------------------------------------------------------------------------------- 1 | [FORMAT] 2 | expected-line-ending-format=LF 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unhashable-member/bad.py: -------------------------------------------------------------------------------- 1 | # Print the number of apples: 2 | print({"apple": 42}[["apple"]]) # [unhashable-member] 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unhashable-member/good.py: -------------------------------------------------------------------------------- 1 | # Print the number of apples: 2 | print({"apple": 42}["apple"]) 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unidiomatic-typecheck/good.py: -------------------------------------------------------------------------------- 1 | test_score = {"Biology": 95, "History": 80} 2 | if isinstance(test_score, dict): 3 | pass 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unknown-option-value/bad.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missnig-docstring # [unknown-option-value] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unknown-option-value/good.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-comprehension/good.py: -------------------------------------------------------------------------------- 1 | NUMBERS = [1, 1, 2, 2, 3, 3] 2 | 3 | UNIQUE_NUMBERS = set(NUMBERS) 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-default-type-args/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.typing 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-direct-lambda-call/bad.py: -------------------------------------------------------------------------------- 1 | y = (lambda x: x**2 + 2 * x + 1)(a) # [unnecessary-direct-lambda-call] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-direct-lambda-call/good.py: -------------------------------------------------------------------------------- 1 | y = a**2 + 2 * a + 1 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-ellipsis/bad.py: -------------------------------------------------------------------------------- 1 | def my_function(): 2 | """My docstring""" 3 | ... # [unnecessary-ellipsis] 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-ellipsis/good.py: -------------------------------------------------------------------------------- 1 | def my_function(): 2 | """My docstring""" 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-lambda-assignment/bad.py: -------------------------------------------------------------------------------- 1 | foo = lambda x: x**2 + 2 * x + 1 # [unnecessary-lambda-assignment] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-lambda-assignment/good.py: -------------------------------------------------------------------------------- 1 | def foo(x): 2 | return x**2 + 2 * x + 1 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-lambda/bad/pandas.py: -------------------------------------------------------------------------------- 1 | df.apply(lambda x: str(x)) # [unnecessary-lambda] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-lambda/bad/print.py: -------------------------------------------------------------------------------- 1 | function = lambda x: print(x) # [unnecessary-lambda] 2 | 3 | function("Hello world !") 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-lambda/good/pandas.py: -------------------------------------------------------------------------------- 1 | df.apply(str) 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-lambda/good/print.py: -------------------------------------------------------------------------------- 1 | print("Hello world !") 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-negation/bad/double_not.py: -------------------------------------------------------------------------------- 1 | if not not input(): # [unnecessary-negation] 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-negation/good/double_not.py: -------------------------------------------------------------------------------- 1 | if input(): 2 | pass 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-negation/good/equivalent_comparator_exists.py: -------------------------------------------------------------------------------- 1 | a = 3 2 | b = 10 3 | if a <= b: 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-semicolon/bad.py: -------------------------------------------------------------------------------- 1 | print("Hello World!"); # [unnecessary-semicolon] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unnecessary-semicolon/good.py: -------------------------------------------------------------------------------- 1 | print("Hello World!") 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unpacking-non-sequence/bad.py: -------------------------------------------------------------------------------- 1 | a, b, c = 1 # [unpacking-non-sequence] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unpacking-non-sequence/good.py: -------------------------------------------------------------------------------- 1 | a, b, c = 1, 2, 3 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unreachable/bad.py: -------------------------------------------------------------------------------- 1 | def say_hello(): 2 | return True 3 | print("Hello World!, Outside function.") # [unreachable] 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unreachable/good.py: -------------------------------------------------------------------------------- 1 | def say_hello(): 2 | print("Hello World!, Inside function.") 3 | return True 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unrecognized-inline-option/bad.py: -------------------------------------------------------------------------------- 1 | # +1: [unrecognized-inline-option] 2 | # pylint:applesoranges=1 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unrecognized-inline-option/good.py: -------------------------------------------------------------------------------- 1 | # pylint: enable=too-many-public-methods 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unsubscriptable-object/bad.py: -------------------------------------------------------------------------------- 1 | class Fruit: 2 | pass 3 | 4 | 5 | Fruit()[1] # [unsubscriptable-object] 6 | -------------------------------------------------------------------------------- /doc/data/messages/u/unsupported-binary-operation/good.py: -------------------------------------------------------------------------------- 1 | masked = 0b111111 & 0b001100 2 | result = 0xAEFF | 0x0B99 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unsupported-binary-operation/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.9 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unsupported-delete-operation/good.py: -------------------------------------------------------------------------------- 1 | FRUITS = ["apple", "orange", "berry"] 2 | 3 | del FRUITS[0] 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-argument/bad.py: -------------------------------------------------------------------------------- 1 | def print_point(x, y): # [unused-argument] 2 | print(f"Point is located at {x},{x}") 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-argument/good.py: -------------------------------------------------------------------------------- 1 | def print_point(x, y): 2 | print(f"Point is located at {x},{y}") 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-format-string-argument/bad.py: -------------------------------------------------------------------------------- 1 | print("{x} {y}".format(x=1, y=2, z=3)) # [unused-format-string-argument] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-format-string-argument/good/add_format_target.py: -------------------------------------------------------------------------------- 1 | print("{x} {y} {z}".format(x=1, y=2, z=3)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-format-string-argument/good/remove_unused_args.py: -------------------------------------------------------------------------------- 1 | print("{x} {y}".format(x=1, y=2)) 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-import/good.py: -------------------------------------------------------------------------------- 1 | from logging import getLogger 2 | 3 | LOGGER = getLogger(__name__) 4 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-import/related.rst: -------------------------------------------------------------------------------- 1 | - :ref:`--init-import ` 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-variable/good.py: -------------------------------------------------------------------------------- 1 | def print_fruits(): 2 | fruit1 = "orange" 3 | fruit2 = "apple" 4 | print(fruit1, fruit2) 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-wildcard-import/bad.py: -------------------------------------------------------------------------------- 1 | from abc import * # [unused-wildcard-import] 2 | 3 | 4 | class Animal(ABC): ... 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/unused-wildcard-import/good.py: -------------------------------------------------------------------------------- 1 | from abc import ABC 2 | 3 | 4 | class Animal(ABC): ... 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-dict-literal/bad/empty_dict.py: -------------------------------------------------------------------------------- 1 | empty_dict = dict() # [use-dict-literal] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-dict-literal/bad/init_with_keyword.py: -------------------------------------------------------------------------------- 1 | response_dict = dict(answer="No") # [use-dict-literal] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-dict-literal/good/empty_dict.py: -------------------------------------------------------------------------------- 1 | empty_dict = {} 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-dict-literal/good/init_with_literal.py: -------------------------------------------------------------------------------- 1 | response_dict = {"answer": "No"} 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-implicit-booleaness-not-comparison-to-string/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | enable=use-implicit-booleaness-not-comparison-to-string 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-implicit-booleaness-not-comparison-to-zero/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | enable=use-implicit-booleaness-not-comparison-to-zero 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-implicit-booleaness-not-comparison/good.py: -------------------------------------------------------------------------------- 1 | z = [] 2 | 3 | if z: 4 | print("z is not an empty sequence") 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-implicit-booleaness-not-len/good.py: -------------------------------------------------------------------------------- 1 | fruits = ["orange", "apple"] 2 | 3 | if fruits: 4 | print(fruits) 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-list-literal/bad.py: -------------------------------------------------------------------------------- 1 | empty_list = list() # [use-list-literal] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-list-literal/good.py: -------------------------------------------------------------------------------- 1 | empty_list = [] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-maxsplit-arg/bad.py: -------------------------------------------------------------------------------- 1 | url = "www.example.com" 2 | suffix = url.split(".")[-1] # [use-maxsplit-arg] 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-maxsplit-arg/good.py: -------------------------------------------------------------------------------- 1 | url = "www.example.com" 2 | suffix = url.rsplit(".", maxsplit=1)[-1] 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-sequence-for-iteration/good/list.py: -------------------------------------------------------------------------------- 1 | for food in ["apples", "lemons", "water"]: 2 | print(f"I like {food}.") 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-sequence-for-iteration/good/tuple.py: -------------------------------------------------------------------------------- 1 | for food in ("apples", "lemons", "water"): 2 | print(f"I like {food}.") 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-set-for-membership/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.set_membership 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-yield-from/good.py: -------------------------------------------------------------------------------- 1 | def good_yield_from(generator): 2 | yield from generator 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/use-yield-from/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 380 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/used-before-assignment/bad.py: -------------------------------------------------------------------------------- 1 | print(hello) # [used-before-assignment] 2 | hello = "Hello World !" 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/used-before-assignment/good.py: -------------------------------------------------------------------------------- 1 | hello = "Hello World !" 2 | print(hello) 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-import-alias/bad.py: -------------------------------------------------------------------------------- 1 | import pandas as pandas # [useless-import-alias] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-import-alias/good.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-object-inheritance/bad.py: -------------------------------------------------------------------------------- 1 | class Banana(object): # [useless-object-inheritance] 2 | ... 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-object-inheritance/good.py: -------------------------------------------------------------------------------- 1 | class Banana: ... 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-option-value/details.rst: -------------------------------------------------------------------------------- 1 | You can disable this check if you don't want to cleanup your configuration of old messages. 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-param-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.docparams, 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-return/good.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | 4 | def print_python_version(): 5 | print(sys.version) 6 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-suppression/good.py: -------------------------------------------------------------------------------- 1 | fruit_counter = 0 2 | 3 | 4 | def eat(fruit_name: str): ... 5 | -------------------------------------------------------------------------------- /doc/data/messages/u/useless-type-doc/pylintrc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.docparams, 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-assignment-expression-in-unsupported-version/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-constant-test/good.py: -------------------------------------------------------------------------------- 1 | print("This code is always executed.") 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-exception-groups-in-unsupported-version/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.10 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-f-string-in-unsupported-version/bad.py: -------------------------------------------------------------------------------- 1 | f"python {3.5} is past end of life" # [using-f-string-in-unsupported-version] 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-f-string-in-unsupported-version/good.py: -------------------------------------------------------------------------------- 1 | "python {} is past end of life".format(3.5) 2 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-f-string-in-unsupported-version/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.5 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-final-decorator-in-unsupported-version/good.py: -------------------------------------------------------------------------------- 1 | class Playtypus(Animal): 2 | def lay_egg(self): ... 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-final-decorator-in-unsupported-version/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-generic-type-syntax-in-unsupported-version/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.11 3 | -------------------------------------------------------------------------------- /doc/data/messages/u/using-positional-only-args-in-unsupported-version/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /doc/data/messages/w/while-used/pylintrc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.while_used 3 | -------------------------------------------------------------------------------- /doc/data/messages/w/wildcard-import/bad.py: -------------------------------------------------------------------------------- 1 | from abc import * # [wildcard-import] 2 | -------------------------------------------------------------------------------- /doc/data/messages/w/wrong-exception-operation/good.py: -------------------------------------------------------------------------------- 1 | try: 2 | 1 / 0 3 | except (ValueError, TypeError): 4 | pass 5 | -------------------------------------------------------------------------------- /doc/data/messages/w/wrong-import-order/good.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | import pylint 5 | 6 | from . import utils 7 | -------------------------------------------------------------------------------- /doc/data/messages/w/wrong-spelling-in-comment/bad.py: -------------------------------------------------------------------------------- 1 | # There's a mistkae in this string # [wrong-spelling-in-comment] 2 | -------------------------------------------------------------------------------- /doc/data/messages/w/wrong-spelling-in-comment/good.py: -------------------------------------------------------------------------------- 1 | # There's no mistake in this string 2 | -------------------------------------------------------------------------------- /doc/data/messages/w/wrong-spelling-in-docstring/bad.py: -------------------------------------------------------------------------------- 1 | """There's a mistkae in this string""" # [wrong-spelling-in-docstring] 2 | -------------------------------------------------------------------------------- /doc/data/messages/w/wrong-spelling-in-docstring/good.py: -------------------------------------------------------------------------------- 1 | """There's no mistake in this string""" 2 | -------------------------------------------------------------------------------- /doc/data/messages/y/yield-inside-async-function/bad.py: -------------------------------------------------------------------------------- 1 | async def foo(): 2 | yield from [1, 2, 3] # [yield-inside-async-function] 3 | -------------------------------------------------------------------------------- /doc/data/messages/y/yield-inside-async-function/details.rst: -------------------------------------------------------------------------------- 1 | The message can't be emitted when using Python < 3.5. 2 | -------------------------------------------------------------------------------- /doc/data/messages/y/yield-inside-async-function/related.rst: -------------------------------------------------------------------------------- 1 | - `PEP 525 `_ 2 | -------------------------------------------------------------------------------- /doc/data/messages/y/yield-outside-function/bad.py: -------------------------------------------------------------------------------- 1 | for i in range(10): 2 | yield i # [yield-outside-function] 3 | -------------------------------------------------------------------------------- /doc/data/messages/y/yield-outside-function/good.py: -------------------------------------------------------------------------------- 1 | def one_to_ten(): 2 | for i in range(10): 3 | yield i 4 | -------------------------------------------------------------------------------- /doc/development_guide/contributor_guide/patch_release.rst: -------------------------------------------------------------------------------- 1 | - In **patch release** (``1.2.3``), we only fix false positives and crashes. 2 | -------------------------------------------------------------------------------- /doc/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/doc/logo.png -------------------------------------------------------------------------------- /doc/readthedoc_requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements.txt 2 | -e . 3 | -------------------------------------------------------------------------------- /doc/requirements.txt: -------------------------------------------------------------------------------- 1 | Sphinx==8.2.3 2 | sphinx-reredirects<1 3 | towncrier~=24.8 4 | furo==2024.8.6 5 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10081.bugfix: -------------------------------------------------------------------------------- 1 | Fixed conditional import x.y causing false positive possibly-used-before-assignment. 2 | 3 | Closes #10081 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10106.bugfix: -------------------------------------------------------------------------------- 1 | Fix a crash when something besides a class is found in an except handler. 2 | 3 | Closes #10106 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10203.bugfix: -------------------------------------------------------------------------------- 1 | Relaxed the requirements for isort so pylint can benefit from isort 6. 2 | 3 | Closes #10203 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10211.false_positive: -------------------------------------------------------------------------------- 1 | Remove `getopt` and `optparse` from the list of deprecated modules. 2 | 3 | Closes #10211 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10217.bugfix: -------------------------------------------------------------------------------- 1 | Fixed unidiomatic-typecheck only checking left-hand side. 2 | 3 | Closes #10217 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10256.other: -------------------------------------------------------------------------------- 1 | Upload release assets to PyPI via Trusted Publishing. 2 | 3 | Closes #10256 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10287.feature: -------------------------------------------------------------------------------- 1 | pypy 3.11 is now officially supported. 2 | 3 | Refs #10287 4 | -------------------------------------------------------------------------------- /doc/whatsnew/fragments/10402.bugfix: -------------------------------------------------------------------------------- 1 | Fix double underscores erroneously rendering as bold in pyreverse's Mermaid output. 2 | 3 | Closes #10402 4 | -------------------------------------------------------------------------------- /pylint/extensions/typing.rst: -------------------------------------------------------------------------------- 1 | Find issue specifically related to type annotations. 2 | -------------------------------------------------------------------------------- /pylint/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/pylint/py.typed -------------------------------------------------------------------------------- /tests/checkers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/checkers/__init__.py -------------------------------------------------------------------------------- /tests/config/data/logging_format_interpolation_style.rc: -------------------------------------------------------------------------------- 1 | [LOGGING] 2 | logging-format-style=new 3 | -------------------------------------------------------------------------------- /tests/config/functional/ini/pylintrc_with_interpolation_error.ini: -------------------------------------------------------------------------------- 1 | [pylint] 2 | test = '%A' 3 | -------------------------------------------------------------------------------- /tests/config/functional/ini/pylintrc_with_interpolation_error.result.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/config/functional/ini/pylintrc_with_missing_comma.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "jobs": 10, 3 | "reports": true 4 | } 5 | -------------------------------------------------------------------------------- /tests/config/functional/ini/pylintrc_with_quoted_init_hook.0.out: -------------------------------------------------------------------------------- 1 | I should just print 2 | -------------------------------------------------------------------------------- /tests/config/functional/setup_cfg/issue_3630/setup.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_plugins": ["pylint_flask"] 3 | } 4 | -------------------------------------------------------------------------------- /tests/config/functional/toml/issue_3181/toml_decode_error.toml: -------------------------------------------------------------------------------- 1 | # TOML decode error crash pylint 2 | [tool.pylint] 3 | *** 4 | -------------------------------------------------------------------------------- /tests/config/functional/toml/issue_4580/correct_basic_name_group.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_group": ["a:b"] 3 | } 4 | -------------------------------------------------------------------------------- /tests/config/functional/toml/issue_4580/correct_basic_name_group.toml: -------------------------------------------------------------------------------- 1 | [tool.pylint.basic] 2 | name-group = { "a"="b" } 3 | -------------------------------------------------------------------------------- /tests/config/functional/toml/issue_4580/correct_import_preferred_module.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "preferred_modules": ["a:b"] 3 | } 4 | -------------------------------------------------------------------------------- /tests/config/functional/toml/issue_4580/correct_import_preferred_module.toml: -------------------------------------------------------------------------------- 1 | [tool.pylint.imports] 2 | preferred-modules = { "a"="b" } 3 | -------------------------------------------------------------------------------- /tests/config/functional/toml/issue_4746/loaded_plugin_does_not_exists.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_plugins": ["pylint_websockets"] 3 | } 4 | -------------------------------------------------------------------------------- /tests/config/functional/toml/toml_with_unknown_option.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "jobs": 10 3 | } 4 | -------------------------------------------------------------------------------- /tests/config/functional/tox/unrecognized_options/tox.result.json: -------------------------------------------------------------------------------- 1 | { 2 | "jobs": 10 3 | } 4 | -------------------------------------------------------------------------------- /tests/data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/data/__init__.py -------------------------------------------------------------------------------- /tests/data/empty_pylintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/data/empty_pylintrc -------------------------------------------------------------------------------- /tests/functional/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/functional/__init__.py -------------------------------------------------------------------------------- /tests/functional/a/access/access_attr_before_def_false_positive.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.13 3 | -------------------------------------------------------------------------------- /tests/functional/a/alternative/alternative_union_syntax.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.10 3 | 4 | [testoptions] 5 | min_pyver=3.10 6 | -------------------------------------------------------------------------------- /tests/functional/a/alternative/alternative_union_syntax_error.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.8 3 | 4 | [testoptions] 5 | max_pyver=3.10 6 | -------------------------------------------------------------------------------- /tests/functional/a/alternative/alternative_union_syntax_py37.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.8 3 | -------------------------------------------------------------------------------- /tests/functional/a/alternative/alternative_union_syntax_regession_8119.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/a/arguments.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | signature-mutators=functional.a.arguments.mutation_decorator,other_mutation_decorator 3 | -------------------------------------------------------------------------------- /tests/functional/a/attribute_defined_outside_init_py38.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.typing 3 | -------------------------------------------------------------------------------- /tests/functional/b/bad_char/bad_char_esc.txt: -------------------------------------------------------------------------------- 1 | invalid-character-esc:5:4:5:5::"Invalid unescaped character esc, use ""\x1B"" instead.":HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/b/bad_char/bad_char_sub.txt: -------------------------------------------------------------------------------- 1 | invalid-character-sub:5:4:5:5::"Invalid unescaped character sub, use ""\x1A"" instead.":HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/b/bad_inline_option.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | enable=I 3 | -------------------------------------------------------------------------------- /tests/functional/b/bad_inline_option.txt: -------------------------------------------------------------------------------- 1 | bad-inline-option:3:0:None:None::Unable to consider inline option 'disable':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/b/bad_reversed_sequence_py37.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /tests/functional/b/bad_reversed_sequence_py37.txt: -------------------------------------------------------------------------------- 1 | bad-reversed-sequence:12:0:12:39::The first reversed() argument is not a sequence:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/b/bare_except.txt: -------------------------------------------------------------------------------- 1 | bare-except:5:0:6:8::No exception type(s) specified:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/b/boolean_datetime.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.4 3 | -------------------------------------------------------------------------------- /tests/functional/c/cell_var_from_loop_enabled_regression.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | disable=all 3 | enable=cell-var-from-loop 4 | -------------------------------------------------------------------------------- /tests/functional/c/cell_var_from_loop_enabled_regression.txt: -------------------------------------------------------------------------------- 1 | cell-var-from-loop:3:21:3:22::Cell variable x defined in loop:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/c/confidence_filter.txt: -------------------------------------------------------------------------------- 1 | no-member:15:6:15:18::Instance of 'Client' has no 'foo' member:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/c/consider/consider_join_for_non_empty_separator.rc: -------------------------------------------------------------------------------- 1 | [variables] 2 | suggest-join-with-non-empty-separator=no 3 | -------------------------------------------------------------------------------- /tests/functional/c/continue_in_finally.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /tests/functional/c/continue_in_finally.txt: -------------------------------------------------------------------------------- 1 | continue-in-finally:9:8:9:16::'continue' not supported inside 'finally' clause:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/dataclass/dataclass_kw_only.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/d/dataclass/dataclass_parameter.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/d/dataclass/dataclass_with_field.txt: -------------------------------------------------------------------------------- 1 | import-error:7:0:7:42::Unable to import 'pydantic.dataclasses':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_attribute_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_class_py33.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_methods_py39.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_methods_py39.txt: -------------------------------------------------------------------------------- 1 | deprecated-method:4:0:4:18::Using deprecated method b2a_hqx():UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py3.rc: -------------------------------------------------------------------------------- 1 | [typing] 2 | py-version=3.6 3 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py3.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:4:0:4:16::Deprecated module 'formatter':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py310.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver = 3.10 3 | max_pyver = 3.12 4 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py310.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:4:0:4:16::Deprecated module 'distutils':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py33.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:4:0:4:29::Deprecated module 'xml.etree.cElementTree':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py36.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:4:0:4:16::Deprecated module 'formatter':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py39.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py39.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:4:0:4:13::Deprecated module 'binhex':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py39_earlier_pyversion.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.8 3 | 4 | [testoptions] 5 | max_pyver=3.10 6 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_py39_earlier_pyversion.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:6:0:6:13::Deprecated module 'binhex':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_redundant.rc: -------------------------------------------------------------------------------- 1 | [Imports] 2 | deprecated-modules=optparse 3 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_redundant.txt: -------------------------------------------------------------------------------- 1 | deprecated-module:3:0:3:15::Deprecated module 'optparse':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/deprecated/deprecated_module_uninstalled.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | deprecated-modules=uninstalled 3 | -------------------------------------------------------------------------------- /tests/functional/d/disable_wrong_import_order.txt: -------------------------------------------------------------------------------- 1 | ungrouped-imports:11:0:11:31::Imports from package first_party are not grouped:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/disabled_msgid_in_pylintrc.rc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | 3 | disable= 4 | C0111,W0703,R1732 5 | -------------------------------------------------------------------------------- /tests/functional/d/dotted_ancestor.txt: -------------------------------------------------------------------------------- 1 | too-few-public-methods:7:0:7:10:Aaaa:Too few public methods (0/2):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/duplicate/duplicate_bases.txt: -------------------------------------------------------------------------------- 1 | duplicate-bases:5:0:5:16:Duplicates:Duplicate bases for class 'Duplicates':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/d/duplicate/duplicate_except.txt: -------------------------------------------------------------------------------- 1 | duplicate-except:9:11:9:21:main:Catching previously caught exception type ValueError:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/e/.#emacs_file_lock_by_conf.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | ignore-patterns=^\.# 3 | -------------------------------------------------------------------------------- /tests/functional/e/.#emacs_file_lock_redefined_conf.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | ignore-patterns="" 3 | disable=non-ascii-name 4 | -------------------------------------------------------------------------------- /tests/functional/e/empty_docstring.txt: -------------------------------------------------------------------------------- 1 | empty-docstring:1:0:None:None::Empty module docstring:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/e/enum_self_defined_member_6805.txt: -------------------------------------------------------------------------------- 1 | no-member:43:6:43:20::Instance of 'FRIDAY' has no 'foo' member:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/ext/bad_builtin/bad_builtin_extension.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.bad_builtin, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/bad_dunder/bad_dunder_name.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.dunder 3 | 4 | good-dunder-names = __allowed__, 5 | -------------------------------------------------------------------------------- /tests/functional/ext/broad_try_clause/broad_try_clause_extension.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.broad_try_clause, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/check_elif/check_elif.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.check_elif, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/code_style/cs_consider_using_namedtuple_or_dataclass.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.code_style 3 | -------------------------------------------------------------------------------- /tests/functional/ext/code_style/cs_consider_using_tuple.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.code_style 3 | -------------------------------------------------------------------------------- /tests/functional/ext/code_style/cs_default.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.code_style 3 | -------------------------------------------------------------------------------- /tests/functional/ext/code_style/cs_py_version_35.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.code_style 3 | py-version=3.5 4 | -------------------------------------------------------------------------------- /tests/functional/ext/comparison_placement/misplaced_comparison_constant.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.comparison_placement, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/confusing_elif/confusing_elif.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.confusing_elif 3 | -------------------------------------------------------------------------------- /tests/functional/ext/dict_init_mutate.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.dict_init_mutate, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/raise/missing_raises_doc.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/raise/missing_raises_doc_Google.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/raise/missing_raises_doc_Numpy.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/raise/missing_raises_doc_Sphinx.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/return/missing_return_doc.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/return/missing_return_doc_Google.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/return/missing_return_doc_Numpy.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/return/missing_return_doc_Sphinx.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/yield/missing_yield_doc.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/yield/missing_yield_doc_Google.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/yield/missing_yield_doc_Numpy.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docparams/yield/missing_yield_doc_Sphinx.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins = pylint.extensions.docparams 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docstyle/docstyle_first_line_empty.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.docstyle, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/docstyle/docstyle_quotes.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.docstyle, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/empty_comment/empty_comment.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.empty_comment, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/eq_without_hash/eq_without_hash.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.eq_without_hash, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/for_any_all/for_any_all.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.for_any_all 3 | -------------------------------------------------------------------------------- /tests/functional/ext/mccabe/mccabe.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.mccabe, 3 | 4 | max-complexity=0 5 | -------------------------------------------------------------------------------- /tests/functional/ext/no_self_use/no_self_use.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.no_self_use 3 | -------------------------------------------------------------------------------- /tests/functional/ext/overlapping_exceptions/overlapping_exceptions.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.overlapping_exceptions, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/plugin_does_not_exists.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins= 3 | pylint.extensions.check_does_not_exists_in_venv, 4 | -------------------------------------------------------------------------------- /tests/functional/ext/redefined_loop_name/redefined_loop_name.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.redefined_loop_name, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/redefined_loop_name/reused_outer_loop_variable.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.redefined_loop_name, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/redefined_variable_type/redefined_variable_type.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.redefined_variable_type, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/redefined_variable_type/regression_newtype_fstring.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.redefined_variable_type, 3 | -------------------------------------------------------------------------------- /tests/functional/ext/set_membership/use_set_membership.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.set_membership 3 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_broken_callable.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.9 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_broken_callable_deprecated_alias.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.9 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_broken_callable_future_import.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.9 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_broken_noreturn.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_broken_noreturn_future_import.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_broken_noreturn_py372.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7.2 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/typing_deprecated_alias.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.9 3 | load-plugins=pylint.extensions.typing 4 | -------------------------------------------------------------------------------- /tests/functional/ext/typing/unnecessary_default_type_args.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | load-plugins=pylint.extensions.typing 3 | -------------------------------------------------------------------------------- /tests/functional/ext/while_used/while_used.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | load-plugins=pylint.extensions.while_used, 3 | -------------------------------------------------------------------------------- /tests/functional/f/fallback_import_enabled.rc: -------------------------------------------------------------------------------- 1 | [IMPORTS] 2 | analyse-fallback-blocks=yes 3 | -------------------------------------------------------------------------------- /tests/functional/f/fixme_bad_formatting_1139.rc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | msg-template={C}:{line:3d},{column:2d}: {obj}: {msg} ({symbol}, {msg_id}) 3 | -------------------------------------------------------------------------------- /tests/functional/f/future_import.py: -------------------------------------------------------------------------------- 1 | """a docstring""" 2 | 3 | from __future__ import generators 4 | -------------------------------------------------------------------------------- /tests/functional/f/future_unicode_literals.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | -------------------------------------------------------------------------------- /tests/functional/g/generic_class_syntax_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/g/genexpr_variable_scope.txt: -------------------------------------------------------------------------------- 1 | undefined-variable:5:6:5:7::Undefined variable 'n':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/i/implicit/implicit_str_concat_latin1.txt: -------------------------------------------------------------------------------- 1 | bad-file-encoding:1:0:1:None::PEP8 recommends UTF-8 as encoding for Python files:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/i/implicit/implicit_str_concat_multiline.rc: -------------------------------------------------------------------------------- 1 | [STRING_CONSTANT] 2 | check-str-concat-over-line-jumps=yes 3 | -------------------------------------------------------------------------------- /tests/functional/i/implicit/implicit_str_concat_utf8.py: -------------------------------------------------------------------------------- 1 | #pylint: disable=invalid-name,missing-docstring 2 | 3 | TOTO = ('Café', 'Café', 'Café') 4 | -------------------------------------------------------------------------------- /tests/functional/i/import_itself.txt: -------------------------------------------------------------------------------- 1 | import-self:3:0:3:27::Module import itself:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/i/import_outside_toplevel.rc: -------------------------------------------------------------------------------- 1 | [IMPORTS] 2 | allow-any-import-level=astroid 3 | -------------------------------------------------------------------------------- /tests/functional/i/inconsistent/inconsistent_quotes.rc: -------------------------------------------------------------------------------- 1 | [STRING] 2 | check-quote-consistency=yes 3 | -------------------------------------------------------------------------------- /tests/functional/i/inconsistent/inconsistent_quotes2.rc: -------------------------------------------------------------------------------- 1 | [STRING] 2 | check-quote-consistency=yes 3 | -------------------------------------------------------------------------------- /tests/functional/i/inconsistent/inconsistent_returns.rc: -------------------------------------------------------------------------------- 1 | [REFACTORING] 2 | never-returning-functions=sys.exit,sys.getdefaultencoding 3 | -------------------------------------------------------------------------------- /tests/functional/i/inference_crash_4692.txt: -------------------------------------------------------------------------------- 1 | import-error:5:0:5:15::Unable to import 'notclick':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/i/init_is_generator.txt: -------------------------------------------------------------------------------- 1 | init-is-generator:4:4:4:16:SomeClass.__init__:__init__ method is a generator:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/i/invalid/invalid_exceptions/invalid_exceptions_caught.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | requires = six 3 | -------------------------------------------------------------------------------- /tests/functional/i/invalid/invalid_name.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | class-attribute-naming-style=snake_case 3 | -------------------------------------------------------------------------------- /tests/functional/i/invalid/invalid_name/invalid_name_multinaming_style.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | function-rgx=^(?:(?P[A-Z]+)|(?P[a-z]+))$ 3 | -------------------------------------------------------------------------------- /tests/functional/i/isinstance_second_argument_py310.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/i/iterable_context_asyncio.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/i/iterable_context_py3.txt: -------------------------------------------------------------------------------- 1 | not-an-iterable:17:9:17:20::Non-iterable value SomeClass() is used in an iterating context:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/l/line/line_endings.rc: -------------------------------------------------------------------------------- 1 | [Format] 2 | expected-line-ending-format=LF 3 | -------------------------------------------------------------------------------- /tests/functional/l/line/line_too_long_with_utf8.txt: -------------------------------------------------------------------------------- 1 | line-too-long:7:0:None:None::Line too long (108/100):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_format_interpolation_py36.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_format_interpolation_style.rc: -------------------------------------------------------------------------------- 1 | [LOGGING] 2 | logging-format-style=new 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_fstring_interpolation_py36.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_not_lazy_module.txt: -------------------------------------------------------------------------------- 1 | logging-not-lazy:6:0:6:26::Use lazy % formatting in logging functions:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_not_lazy_with_logger.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_too_few_args_new_style.rc: -------------------------------------------------------------------------------- 1 | [LOGGING] 2 | logging-format-style=new 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_too_few_args_old_style.rc: -------------------------------------------------------------------------------- 1 | [LOGGING] 2 | logging-format-style=old 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_too_many_args_new_style.rc: -------------------------------------------------------------------------------- 1 | [LOGGING] 2 | logging-format-style=new 3 | -------------------------------------------------------------------------------- /tests/functional/l/logging/logging_too_many_args_old_style.rc: -------------------------------------------------------------------------------- 1 | [LOGGING] 2 | logging-format-style=old 3 | -------------------------------------------------------------------------------- /tests/functional/l/loopvar_in_dict_comp.txt: -------------------------------------------------------------------------------- 1 | cell-var-from-loop:6:23:6:24:bad_case.:Cell variable x defined in loop:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/m/mapping_context_py3.txt: -------------------------------------------------------------------------------- 1 | not-a-mapping:19:7:19:18::Non-mapping value SomeClass() is used in a mapping context:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_hints.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | missing-member-max-choices = 3 3 | missing-member-hint-distance = 1 4 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_ignore_none.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | ignore-none=no 3 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_ignore_none.txt: -------------------------------------------------------------------------------- 1 | no-member:7:11:7:32::Instance of 'NoneType' has no 'DOES_NOT_EXIST' member:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_no_hints.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | missing-member-hint=no 3 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_opaque.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | ignore-on-opaque-inference=n 3 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_opaque.txt: -------------------------------------------------------------------------------- 1 | no-member:12:0:12:21::Instance of 'int' has no 'test' member:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/m/member/member_checks_typed_annotations.txt: -------------------------------------------------------------------------------- 1 | no-member:25:6:25:15::Instance of 'C' has no 'myfield' member:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/m/misplaced_future.txt: -------------------------------------------------------------------------------- 1 | misplaced-future:3:0:3:37::__future__ import is not the first non docstring statement:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/m/missing/missing_class_docstring.txt: -------------------------------------------------------------------------------- 1 | missing-class-docstring:5:0:5:11:Klass:Missing class docstring:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/m/missing/missing_final_newline.txt: -------------------------------------------------------------------------------- 1 | missing-final-newline:4:0:None:None::Final newline missing:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/m/missing/missing_function_docstring.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | no-docstring-rgx=^(?!__init__$)_ 3 | -------------------------------------------------------------------------------- /tests/functional/m/missing/missing_function_docstring_min_length.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | docstring-min-length=2 3 | -------------------------------------------------------------------------------- /tests/functional/m/missing/missing_function_docstring_rgx.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | no-docstring-rgx=^(?!__eq__$)_ 3 | -------------------------------------------------------------------------------- /tests/functional/m/missing/missing_module_docstring.py: -------------------------------------------------------------------------------- 1 | something # [missing-module-docstring, pointless-statement, undefined-variable] 2 | -------------------------------------------------------------------------------- /tests/functional/m/mixin_class_rgx.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | mixin-class-rgx=.*[Mm]ixin 3 | -------------------------------------------------------------------------------- /tests/functional/m/module___dict__.txt: -------------------------------------------------------------------------------- 1 | used-before-assignment:4:6:4:14::Using variable '__dict__' before assignment:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/m/multiple_imports.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring, unused-import 2 | import os, socket # [multiple-imports] 3 | -------------------------------------------------------------------------------- /tests/functional/m/multiple_imports.txt: -------------------------------------------------------------------------------- 1 | multiple-imports:2:0:2:17::Multiple imports on one line (os, socket):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/m/multiple_statements_single_line.rc: -------------------------------------------------------------------------------- 1 | [FORMAT] 2 | single-line-if-stmt=yes 3 | single-line-class-stmt=yes 4 | -------------------------------------------------------------------------------- /tests/functional/n/name/name_final_snake_case.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | class-const-naming-style=snake_case 3 | const-naming-style=snake_case 4 | -------------------------------------------------------------------------------- /tests/functional/n/name/name_styles.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | disable=too-few-public-methods,global-statement 3 | -------------------------------------------------------------------------------- /tests/functional/n/named_expr_without_context_py38.txt: -------------------------------------------------------------------------------- 1 | named-expr-without-context:6:0:6:8::Named expression used without context:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/n/namedtuple_member_inference.txt: -------------------------------------------------------------------------------- 1 | no-member:15:10:15:17:test:Class 'Thing' has no 'x' member:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/n/nested_func_defined_in_loop.txt: -------------------------------------------------------------------------------- 1 | cell-var-from-loop:7:18:7:19:example.nested:Cell variable i defined in loop:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/n/no/no_name_in_module.rc: -------------------------------------------------------------------------------- 1 | [TYPECHECK] 2 | ignored-modules=argparse 3 | -------------------------------------------------------------------------------- /tests/functional/n/non_ascii_name/non_ascii_name_loł.py: -------------------------------------------------------------------------------- 1 | # [non-ascii-file-name] 2 | -------------------------------------------------------------------------------- /tests/functional/n/nonlocal_and_global.txt: -------------------------------------------------------------------------------- 1 | nonlocal-and-global:4:0:4:7:bad:Name 'missing' is nonlocal and global:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/p/pattern_matching.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/p/preferred_module.rc: -------------------------------------------------------------------------------- 1 | [IMPORTS] 2 | preferred-modules=json:ujson,re:regex 3 | -------------------------------------------------------------------------------- /tests/functional/p/protected_access.rc: -------------------------------------------------------------------------------- 1 | [CLASSES] 2 | exclude-protected=_meta,_manager,os._exit,BaseTomato._sauce 3 | -------------------------------------------------------------------------------- /tests/functional/p/protected_access_special_methods_off.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | check-protected-access-in-special-methods=no 3 | -------------------------------------------------------------------------------- /tests/functional/p/protected_access_special_methods_on.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | check-protected-access-in-special-methods=yes 3 | -------------------------------------------------------------------------------- /tests/functional/p/protocol_classes.txt: -------------------------------------------------------------------------------- 1 | unused-argument:31:21:31:32:HasherFake.update:Unused argument 'blob':INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/p/py_version_35.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.5 3 | -------------------------------------------------------------------------------- /tests/functional/r/raising/raising_bad_type.py: -------------------------------------------------------------------------------- 1 | """Tests for raising-bad-type""" 2 | 3 | raise (ZeroDivisionError, None) # [raising-bad-type] 4 | -------------------------------------------------------------------------------- /tests/functional/r/raising/raising_bad_type.txt: -------------------------------------------------------------------------------- 1 | raising-bad-type:3:0:3:31::Raising tuple while only classes or instances are allowed:INFERENCE 2 | -------------------------------------------------------------------------------- /tests/functional/r/redeclared_assigned_name.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | dummy-variables-rgx=DUMMY 3 | -------------------------------------------------------------------------------- /tests/functional/r/redefined/redefined_builtin.rc: -------------------------------------------------------------------------------- 1 | [VARIABLES] 2 | redefining-builtins-modules=os 3 | -------------------------------------------------------------------------------- /tests/functional/r/regression/regression_4439.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/r/regression/regression_issue_4631.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | limit-inference-results=0 3 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_10334.txt: -------------------------------------------------------------------------------- 1 | not-callable:4:1:4:4:A:s is not callable:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_4126.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=CPython,IronPython 3 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_5408.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=PyPy 3 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_5479.txt: -------------------------------------------------------------------------------- 1 | unused-variable:28:4:28:8:main:Unused variable 'conn':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_8067.txt: -------------------------------------------------------------------------------- 1 | not-callable:6:0:6:3::X is not callable:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_distutil_import_error_73.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/r/regression_02/regression_lambda_inference_not_callable.txt: -------------------------------------------------------------------------------- 1 | not-callable:7:0:7:13::data['abc'] is not callable:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/r/renamed_import_logging_not_lazy.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/r/repeated_keyword.txt: -------------------------------------------------------------------------------- 1 | repeated-keyword:13:0:13:26::Got multiple values for keyword argument 'b' in function call:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/r/return_in_init.txt: -------------------------------------------------------------------------------- 1 | return-in-init:5:4:5:16:MyClass.__init__:Explicit return in __init__:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/r/return_outside_function.txt: -------------------------------------------------------------------------------- 1 | return-outside-function:2:0:2:6::Return outside function:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/s/signature_differs.txt: -------------------------------------------------------------------------------- 1 | signature-differs:21:4:21:12:Cdef.abcd:Signature differs from overridden 'abcd' method:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/s/socketerror_import.py: -------------------------------------------------------------------------------- 1 | """ds""" 2 | 3 | from socket import error 4 | 5 | 6 | print(error) 7 | -------------------------------------------------------------------------------- /tests/functional/s/statement_without_effect_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/s/string/string_formatting_disable.py: -------------------------------------------------------------------------------- 1 | "a {} {".format(1) # [bad-format-string] 2 | -------------------------------------------------------------------------------- /tests/functional/s/string/string_formatting_disable.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | disable=all 3 | enable=bad-format-string 4 | -------------------------------------------------------------------------------- /tests/functional/s/string/string_formatting_disable.txt: -------------------------------------------------------------------------------- 1 | bad-format-string:1:0:1:18::Invalid format string:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/s/super/super_with_arguments.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | disable=all 3 | enable=super-with-arguments 4 | -------------------------------------------------------------------------------- /tests/functional/s/super/super_without_brackets.txt: -------------------------------------------------------------------------------- 1 | super-without-brackets:15:8:15:13:TomatoSoup.temp:Super call without brackets:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/s/symlink/_binding/__init__.py: -------------------------------------------------------------------------------- 1 | ../symlink_module/__init__.py -------------------------------------------------------------------------------- /tests/functional/s/symlink/_binding/symlink_module.py: -------------------------------------------------------------------------------- 1 | ../symlink_module/symlink_module.py -------------------------------------------------------------------------------- /tests/functional/s/symlink/symlink_module/__init__.py: -------------------------------------------------------------------------------- 1 | """Example taken from issue #1470""" 2 | 3 | from symlinked_module import func 4 | -------------------------------------------------------------------------------- /tests/functional/s/syntax/syntax_error.py: -------------------------------------------------------------------------------- 1 | for # [syntax-error] 2 | -------------------------------------------------------------------------------- /tests/functional/s/syntax/syntax_error.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=PyPy 3 | -------------------------------------------------------------------------------- /tests/functional/s/syntax/syntax_error.txt: -------------------------------------------------------------------------------- 1 | syntax-error:1:5:None:None::"Parsing failed: 'invalid syntax (syntax_error, line 1)'":HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/s/syntax/syntax_error_jython.py: -------------------------------------------------------------------------------- 1 | def toto # [syntax-error] 2 | -------------------------------------------------------------------------------- /tests/functional/s/syntax/syntax_error_jython.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=CPython, PyPy 3 | -------------------------------------------------------------------------------- /tests/functional/s/syntax/syntax_error_jython.txt: -------------------------------------------------------------------------------- 1 | syntax-error:1::"mismatched input '\n\n\n\n' expecting LPAREN" 2 | -------------------------------------------------------------------------------- /tests/functional/t/tokenize_error.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/t/tokenize_error.txt: -------------------------------------------------------------------------------- 1 | syntax-error:5:0:None:None::EOF in multi-line statement:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/t/tokenize_error_jython.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=CPython,PyPy,IronPython 3 | -------------------------------------------------------------------------------- /tests/functional/t/tokenize_error_jython.txt: -------------------------------------------------------------------------------- 1 | syntax-error:1::unexpected character after line continuation character 2 | -------------------------------------------------------------------------------- /tests/functional/t/tokenize_error_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/t/tokenize_error_py312.txt: -------------------------------------------------------------------------------- 1 | syntax-error:4:4:None:None::unexpected EOF in multi-line statement:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_few_public_methods.txt: -------------------------------------------------------------------------------- 1 | too-few-public-methods:7:0:7:10:Aaaa:Too few public methods (1/2):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_few_public_methods_excluded.txt: -------------------------------------------------------------------------------- 1 | too-few-public-methods:4:0:4:13:Control:Too few public methods (0/10):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_many_ancestors_ignored_parents.txt: -------------------------------------------------------------------------------- 1 | too-many-ancestors:39:0:39:7:A:Too many ancestors (3/2):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_many_branches.txt: -------------------------------------------------------------------------------- 1 | too-many-branches:3:0:3:9:wrong:Too many branches (13/12):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_many_instance_attributes.txt: -------------------------------------------------------------------------------- 1 | too-many-instance-attributes:8:0:8:10:Aaaa:Too many instance attributes (21/7):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_many_lines.txt: -------------------------------------------------------------------------------- 1 | too-many-lines:1:0:None:None::Too many lines in module (1015/1000):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_many_public_methods.txt: -------------------------------------------------------------------------------- 1 | too-many-public-methods:3:0:3:10:Aaaa:Too many public methods (21/20):UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/too/too_many_statements.rc: -------------------------------------------------------------------------------- 1 | [DESIGN] 2 | max-statements=5 3 | -------------------------------------------------------------------------------- /tests/functional/t/trailing_newlines.py: -------------------------------------------------------------------------------- 1 | """Regression test for trailing-newlines (C0304).""" 2 | # +1: [trailing-newlines] 3 | 4 | -------------------------------------------------------------------------------- /tests/functional/t/trailing_newlines.txt: -------------------------------------------------------------------------------- 1 | trailing-newlines:3:0:None:None::Trailing newlines:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/t/try_except_raise_crash.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/t/type/typealias_naming_style_default.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/t/type/typealias_naming_style_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/t/type/typevar_naming_style_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/t/type/typevar_naming_style_rgx.rc: -------------------------------------------------------------------------------- 1 | [BASIC] 2 | typevar-rgx=TypeVarsShouldBeLikeThis(_co(ntra)?)?$ 3 | -------------------------------------------------------------------------------- /tests/functional/t/typing_use.txt: -------------------------------------------------------------------------------- 1 | function-redefined:21:0:21:25:double_with_docstring:function already defined line 16:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/u/undefined/undefined_all_variable_edge_case.txt: -------------------------------------------------------------------------------- 1 | undefined-variable:5:0:5:7::Undefined variable '__all__':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/u/undefined/undefined_loop_variable_py311.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.11 3 | -------------------------------------------------------------------------------- /tests/functional/u/undefined/undefined_variable_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/u/undefined/undefined_variable_typing.rc: -------------------------------------------------------------------------------- 1 | [VARIABLES] 2 | additional-builtins=__additional_builtin__ 3 | -------------------------------------------------------------------------------- /tests/functional/u/ungrouped_imports_suppression.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/u/unhashable_member_py312.py: -------------------------------------------------------------------------------- 1 | """slices can be used as dict keys from python 3.12""" 2 | VAR = {}[1:2] 3 | -------------------------------------------------------------------------------- /tests/functional/u/unhashable_member_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver = 3.12 3 | -------------------------------------------------------------------------------- /tests/functional/u/unknown_encoding_jython.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=PyPy,CPython,IronPython 3 | -------------------------------------------------------------------------------- /tests/functional/u/unknown_encoding_jython.txt: -------------------------------------------------------------------------------- 1 | syntax-error:1::"Unknown encoding: IBO-8859-1" 2 | -------------------------------------------------------------------------------- /tests/functional/u/unnecessary/unnecessary_direct_lambda_call.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | except_implementations=PyPy 3 | -------------------------------------------------------------------------------- /tests/functional/u/unnecessary/unnecessary_dunder_call_async_py310.rc: -------------------------------------------------------------------------------- 1 | [master] 2 | py-version=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/u/unnecessary/unnecessary_dunder_call_async_py39.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | py-version=3.9 3 | -------------------------------------------------------------------------------- /tests/functional/u/unpacking/unpacking_non_sequence_py310.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/u/unrecognized_inline_option.py: -------------------------------------------------------------------------------- 1 | # +1: [unrecognized-inline-option] 2 | # pylint:bouboule=1 3 | """Check unknown option""" 4 | -------------------------------------------------------------------------------- /tests/functional/u/unrecognized_inline_option.txt: -------------------------------------------------------------------------------- 1 | unrecognized-inline-option:2:0:None:None::Unrecognized file option 'bouboule':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/u/unsubscriptable_value.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | requires = six 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsubscriptable_value_py37.txt: -------------------------------------------------------------------------------- 1 | unsubscriptable-object:15:0:15:15::Value 'Subscriptable()' is unsubscriptable:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_assignment_operation.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | requires = six 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_binary_operation.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=4.0 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_delete_operation.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | requires = six 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_version_for_assignment_expression.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_version_for_exception_group.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.10 3 | 4 | [testoptions] 5 | min_pyver=3.11 6 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_version_for_f_string.rc: -------------------------------------------------------------------------------- 1 | [typing] 2 | py-version=3.5 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_version_for_final.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /tests/functional/u/unsupported/unsupported_version_for_posonly_args.rc: -------------------------------------------------------------------------------- 1 | [main] 2 | py-version=3.7 3 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_global_variable1.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring 2 | VAR = 'pylint' 3 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_global_variable2.rc: -------------------------------------------------------------------------------- 1 | [variables] 2 | allow-global-unused-variables=no 3 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_global_variable2.txt: -------------------------------------------------------------------------------- 1 | unused-variable:11:0:11:3::Unused variable 'VAR':UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_global_variable4.rc: -------------------------------------------------------------------------------- 1 | [variables] 2 | allow-global-unused-variables=no 3 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_import_everything_disabled.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | disable=all 3 | enable=unused-import 4 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_import_py30.txt: -------------------------------------------------------------------------------- 1 | reimported:7:0:7:40::Reimport 'ABCMeta' (imported line 6):HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_name_in_string_literal_type_annotation_py310.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_variable_after_inference.rc: -------------------------------------------------------------------------------- 1 | [Messages Control] 2 | enable=non-iterator-returned 3 | -------------------------------------------------------------------------------- /tests/functional/u/unused/unused_variable_py38.rc: -------------------------------------------------------------------------------- 1 | [variables] 2 | allow-global-unused-variables=no 3 | -------------------------------------------------------------------------------- /tests/functional/u/use/use_implicit_booleaness_not_comparison_to_zero.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | enable=compare-to-zero, 3 | -------------------------------------------------------------------------------- /tests/functional/u/use/use_literal_list.txt: -------------------------------------------------------------------------------- 1 | use-list-literal:3:4:3:10::Consider using [] instead of list():UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/u/used/used_before_assignment_py310.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/u/used/used_before_assignment_py312.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.12 3 | -------------------------------------------------------------------------------- /tests/functional/u/used/used_before_assignment_py312.txt: -------------------------------------------------------------------------------- 1 | used-before-assignment:11:20:11:21::Using variable 'X' before assignment:HIGH 2 | -------------------------------------------------------------------------------- /tests/functional/u/useless/useless_suppression.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/functional/w/wildcard_import_allowed.rc: -------------------------------------------------------------------------------- 1 | [IMPORTS] 2 | allow-wildcard-with-all=yes 3 | -------------------------------------------------------------------------------- /tests/functional/w/wrong_exception_operation.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | min_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/w/wrong_exception_operation_py37.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | max_pyver=3.10 3 | -------------------------------------------------------------------------------- /tests/functional/y/yield_from_iterable.txt: -------------------------------------------------------------------------------- 1 | not-an-iterable:7:15:7:17:to_ten:Non-iterable value 10 is used in an iterating context:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/y/yield_from_outside_func.txt: -------------------------------------------------------------------------------- 1 | yield-outside-function:4:0:4:17::Yield outside function:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/y/yield_inside_async_function.txt: -------------------------------------------------------------------------------- 1 | yield-inside-async-function:16:4:16:24:bad:Yield inside async function:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/functional/y/yield_outside_func.txt: -------------------------------------------------------------------------------- 1 | yield-outside-function:4:0:4:7::Yield outside function:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/input/__init__.py: -------------------------------------------------------------------------------- 1 | """test""" 2 | -------------------------------------------------------------------------------- /tests/input/func_i0011.py: -------------------------------------------------------------------------------- 1 | # pylint:disable=W0404 2 | """check warning on local disabling 3 | """ 4 | __revision__ = 1 5 | -------------------------------------------------------------------------------- /tests/input/func_i0012.py: -------------------------------------------------------------------------------- 1 | # pylint:enable=W0404 2 | """check warning on local enabling 3 | """ 4 | __revision__ = 1 5 | -------------------------------------------------------------------------------- /tests/input/func_w0401_package/__init__.py: -------------------------------------------------------------------------------- 1 | """Our big package.""" 2 | __revision__ = None 3 | -------------------------------------------------------------------------------- /tests/input/func_w0401_package/thing1.py: -------------------------------------------------------------------------------- 1 | """The first thing.""" 2 | __revision__ = None 3 | THING1 = "I am thing1" 4 | -------------------------------------------------------------------------------- /tests/input/multiline-import: -------------------------------------------------------------------------------- 1 | from foo import ( 2 | bar, 3 | baz, 4 | quux, 5 | quuux, 6 | quuuux, 7 | quuuuux, 8 | ) 9 | -------------------------------------------------------------------------------- /tests/input/noext: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """a python file without .py extension""" 3 | 4 | __revision__ = None 5 | -------------------------------------------------------------------------------- /tests/input/not__init__.py: -------------------------------------------------------------------------------- 1 | """test""" 2 | -------------------------------------------------------------------------------- /tests/messages/builtin_module.txt: -------------------------------------------------------------------------------- 1 | F: 1: ignored builtin module sys 2 | -------------------------------------------------------------------------------- /tests/messages/func_bug113231.txt: -------------------------------------------------------------------------------- 1 | W: 20: Use lazy % formatting in logging functions 2 | W: 21: Use lazy % formatting in logging functions 3 | -------------------------------------------------------------------------------- /tests/messages/func_disable_linebased.txt: -------------------------------------------------------------------------------- 1 | C: 1: Line too long (127/100) 2 | C: 14: Line too long (114/100) 3 | -------------------------------------------------------------------------------- /tests/messages/func_disable_linebased_py30.txt: -------------------------------------------------------------------------------- 1 | C: 1: Line too long (127/100) 2 | C: 14: Line too long (114/100) 3 | -------------------------------------------------------------------------------- /tests/messages/func_i0012.txt: -------------------------------------------------------------------------------- 1 | I: 1: 'W0404' is cryptic: use '# pylint: enable=reimported' instead 2 | -------------------------------------------------------------------------------- /tests/messages/func_i0013.txt: -------------------------------------------------------------------------------- 1 | I: 1: Ignoring entire file 2 | -------------------------------------------------------------------------------- /tests/messages/func_i0014.txt: -------------------------------------------------------------------------------- 1 | I: 1: Ignoring entire file 2 | I: 1: Pragma "disable-all" is deprecated, use "skip-file" instead 3 | -------------------------------------------------------------------------------- /tests/messages/func_w0122_py_30.txt: -------------------------------------------------------------------------------- 1 | W: 5: Use of exec 2 | W: 6: Use of exec 3 | W: 8: Use of exec 4 | W: 12:func: Use of exec 5 | -------------------------------------------------------------------------------- /tests/messages/func_w0312.txt: -------------------------------------------------------------------------------- 1 | W: 10: Found indentation with tabs instead of spaces 2 | W: 11: Found indentation with tabs instead of spaces 3 | -------------------------------------------------------------------------------- /tests/messages/func_w0332_py_30.txt: -------------------------------------------------------------------------------- 1 | W: 4: Use of "l" as long integer identifier 2 | -------------------------------------------------------------------------------- /tests/messages/func_w0622.txt: -------------------------------------------------------------------------------- 1 | W: 8:function: Redefining built-in 'type' 2 | W: 11: Redefining built-in 'map' 3 | -------------------------------------------------------------------------------- /tests/pyreverse/data/classes_depth_limited_0.dot: -------------------------------------------------------------------------------- 1 | digraph "classes_depth_limited_0" { 2 | rankdir=BT 3 | charset="utf-8" 4 | } 5 | -------------------------------------------------------------------------------- /tests/pyreverse/data/classes_type_check_imports.dot: -------------------------------------------------------------------------------- 1 | digraph "classes_type_check_imports" { 2 | rankdir=BT 3 | charset="utf-8" 4 | } 5 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/aggregation_filtering/all.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | command_line_args=--filter-mode=ALL 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/aggregation_filtering/other.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | command_line_args=--filter-mode=OTHER 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/aggregation_filtering/pub_only.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | command_line_args=--filter-mode=PUB_ONLY 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/aggregation_filtering/special.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | command_line_args=--filter-mode=SPECIAL 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/annotations/attributes_annotation.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | output_formats=mmd,dot,puml 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/annotations/line_breaks.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | output_formats=mmd,dot,puml 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/inheritance/no_standalone.py: -------------------------------------------------------------------------------- 1 | class A: pass 2 | 3 | class B(A): pass 4 | 5 | class C: pass 6 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/inheritance/no_standalone.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | command_line_args=--no-standalone 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/namespaces/pep420/pep420.mmd: -------------------------------------------------------------------------------- 1 | classDiagram 2 | class PEP420 { 3 | } 4 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/namespaces/pep420/pep420.py: -------------------------------------------------------------------------------- 1 | class PEP420: 2 | pass 3 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/class_diagrams/namespaces/pep420/pep420.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | source_roots=../.. 3 | output_formats=mmd,dot,puml 4 | -------------------------------------------------------------------------------- /tests/pyreverse/functional/package_diagrams/type_check_imports/mod_a.py: -------------------------------------------------------------------------------- 1 | Int = int 2 | 3 | List = list 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/absimp/__init__.py: -------------------------------------------------------------------------------- 1 | """a package with absolute import activated 2 | """ 3 | 4 | from __future__ import absolute_import 5 | -------------------------------------------------------------------------------- /tests/regrtest_data/allow_reexport/__init__.py: -------------------------------------------------------------------------------- 1 | import os as os 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/allow_reexport/file.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=unused-import 2 | import os as os 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/application_crash.py: -------------------------------------------------------------------------------- 1 | ABC = something_undefined 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/bad_package/__init__.py: -------------------------------------------------------------------------------- 1 | import missing 2 | raise missing.Missing.. 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/beyond_top/data.py: -------------------------------------------------------------------------------- 1 | Anything = 42 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/beyond_top_four/module/sub_module/sub_sub_module/main.py: -------------------------------------------------------------------------------- 1 | from ...double_name import function 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/beyond_top_three/level1/__init__.py: -------------------------------------------------------------------------------- 1 | def func(var): 2 | pass 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/beyond_top_three/level1/beyond_top_three.py: -------------------------------------------------------------------------------- 1 | def func(var, some_other_var): 2 | pass 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/beyond_top_two/namespace_package/plugin_api.py: -------------------------------------------------------------------------------- 1 | def top_message(msg): 2 | return 'top_message: %s' % msg 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/directory/ignored_subdirectory/failing.py: -------------------------------------------------------------------------------- 1 | import re 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/dummy/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring 2 | from .dummy import DUMMY 3 | from .another import ANOTHER 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/dummy/another.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring 2 | 3 | ANOTHER = 42 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/dummy/dummy.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring 2 | DUMMY = 42 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/encoding/bad_missing_num.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf -*- 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/encoding/bad_wrong_num.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-9 -*- 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/encoding/good.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/fixme.py: -------------------------------------------------------------------------------- 1 | # TODO: implement 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/ignore_pattern/.hidden/module.py: -------------------------------------------------------------------------------- 1 | import os 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/ignore_pattern/module.py: -------------------------------------------------------------------------------- 1 | import os 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/import_something.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-docstring,unused-import 2 | 3 | import os 4 | import sys 5 | -------------------------------------------------------------------------------- /tests/regrtest_data/imported_module_in_typehint/module_b.py: -------------------------------------------------------------------------------- 1 | import uuid 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/init_wildcard/__init__.py: -------------------------------------------------------------------------------- 1 | from empty import * 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/invalid_encoding.py: -------------------------------------------------------------------------------- 1 | # -*- coding: lala -*- 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/meta.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=invalid-name, missing-docstring 2 | # pylint: disable=unbalanced-tuple-unpacking 3 | n = 42 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/package/AudioTime.py: -------------------------------------------------------------------------------- 1 | """test preceded by the AudioTime class in __init__.py""" 2 | 3 | __revision__ = 0 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/package/subpackage/__init__.py: -------------------------------------------------------------------------------- 1 | """package.subpackage""" 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/package/subpackage/module.py: -------------------------------------------------------------------------------- 1 | """package.subpackage.module""" 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/package_all/notmissing.py: -------------------------------------------------------------------------------- 1 | """ empty """ 2 | __revision__ = 1 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/pkg_mod_imports/base/errors.py: -------------------------------------------------------------------------------- 1 | class SomeError(Exception): 2 | pass 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/preferred_module/unpreferred_module.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | os.path(".") 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/preferred_module/unpreferred_submodule.py: -------------------------------------------------------------------------------- 1 | from os import path, getrandom 2 | 3 | path(".") 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/pyi/a_module_that_we_definitely_dont_use_in_the_functional_tests.py: -------------------------------------------------------------------------------- 1 | def three_item_iterable(): 2 | return [1, 2, 3] 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/special_attr_scope_lookup_crash.py: -------------------------------------------------------------------------------- 1 | class Klass(object): 2 | """A""" 3 | __doc__ += "B" 4 | -------------------------------------------------------------------------------- /tests/regrtest_data/syntax_error.py: -------------------------------------------------------------------------------- 1 | class A extends B {} 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/test_no_name_in_module.py: -------------------------------------------------------------------------------- 1 | from pkg_mod_imports.base.errors import SomeError 2 | -------------------------------------------------------------------------------- /tests/regrtest_data/test_pylintrc_comments.py: -------------------------------------------------------------------------------- 1 | def f(x): 2 | return x # 1 space 3 | -------------------------------------------------------------------------------- /tests/regrtest_data/try_finally_disable_msg_crash.py: -------------------------------------------------------------------------------- 1 | try: 2 | pass 3 | finally: 4 | # pylint: disable=W0201 5 | pass 6 | -------------------------------------------------------------------------------- /tests/regrtest_data/wildcard.py: -------------------------------------------------------------------------------- 1 | from empty import * 2 | -------------------------------------------------------------------------------- /tests/reporters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/reporters/__init__.py -------------------------------------------------------------------------------- /tests/testutils/_primer/fixtures/batched/main_batch0.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/testutils/_primer/fixtures/batched/pr_batch0.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/testutils/_primer/fixtures/both_empty/main.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/testutils/_primer/fixtures/both_empty/pr.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/testutils/data/functional/broken_output_ok_test/exec_used.txt: -------------------------------------------------------------------------------- 1 | exec-used:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/testutils/data/functional/broken_output_wrong_test/exec_used.txt: -------------------------------------------------------------------------------- 1 | exec-used:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/testutils/data/functional/ok_output_ok_test/exec_used.txt: -------------------------------------------------------------------------------- 1 | exec-used:7:0:7:14::Use of exec:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/testutils/data/functional/ok_output_wrong_test/exec_used.txt: -------------------------------------------------------------------------------- 1 | exec-used:7:0:7:14::Use of exec:UNDEFINED 2 | -------------------------------------------------------------------------------- /tests/testutils/data/functional/wrong_output_ok_test/exec_used.txt: -------------------------------------------------------------------------------- 1 | missing-docstring:5:0:1:1::Missing docstring in file:HIGH 2 | -------------------------------------------------------------------------------- /tests/testutils/data/functional/wrong_output_wrong_test/exec_used.txt: -------------------------------------------------------------------------------- 1 | missing-docstring:5:0:1:1::Missing docstring in file:HIGH 2 | -------------------------------------------------------------------------------- /tests/testutils/data/init_hook.rc: -------------------------------------------------------------------------------- 1 | [MAIN] 2 | 3 | init-hook=raise RuntimeError 4 | -------------------------------------------------------------------------------- /tests/testutils/data/m/minimal_messages_excluded.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | exclude_from_minimal_messages_config=true 3 | -------------------------------------------------------------------------------- /tests/testutils/data/t.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/testutils/data/t.out -------------------------------------------------------------------------------- /tests/testutils/data/t.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/testutils/data/t.toml -------------------------------------------------------------------------------- /tests/testutils/data/u.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/testutils/data/u.out -------------------------------------------------------------------------------- /tests/testutils/data/u.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/testutils/data/u.toml -------------------------------------------------------------------------------- /tests/testutils/data/v.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/testutils/data/v.toml -------------------------------------------------------------------------------- /tests/testutils/pyreverse_data/functest_with_options.py: -------------------------------------------------------------------------------- 1 | class Dummy: 2 | pass 3 | -------------------------------------------------------------------------------- /tests/testutils/pyreverse_data/functest_with_options.rc: -------------------------------------------------------------------------------- 1 | [testoptions] 2 | output_formats=dot,png 3 | command_line_args=-ASmy 4 | -------------------------------------------------------------------------------- /tests/testutils/pyreverse_data/functest_without_options.py: -------------------------------------------------------------------------------- 1 | class Dummy: 2 | pass 3 | -------------------------------------------------------------------------------- /tests/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pylint-dev/pylint/30200e7175a5e4dbb5621c7aa9b51b968f706e44/tests/utils/__init__.py --------------------------------------------------------------------------------