head 1.33; access; symbols pkgsrc-2023Q4:1.32.0.2 pkgsrc-2023Q4-base:1.32 pkgsrc-2023Q3:1.30.0.6 pkgsrc-2023Q3-base:1.30 pkgsrc-2023Q2:1.30.0.4 pkgsrc-2023Q2-base:1.30 pkgsrc-2023Q1:1.30.0.2 pkgsrc-2023Q1-base:1.30 pkgsrc-2022Q4:1.28.0.4 pkgsrc-2022Q4-base:1.28 pkgsrc-2022Q3:1.28.0.2 pkgsrc-2022Q3-base:1.28 pkgsrc-2022Q2:1.27.0.2 pkgsrc-2022Q2-base:1.27 pkgsrc-2022Q1:1.25.0.4 pkgsrc-2022Q1-base:1.25 pkgsrc-2021Q4:1.25.0.2 pkgsrc-2021Q4-base:1.25 pkgsrc-2021Q3:1.23.0.2 pkgsrc-2021Q3-base:1.23 pkgsrc-2021Q2:1.21.0.2 pkgsrc-2021Q2-base:1.21 pkgsrc-2021Q1:1.20.0.2 pkgsrc-2021Q1-base:1.20 pkgsrc-2020Q4:1.19.0.4 pkgsrc-2020Q4-base:1.19 pkgsrc-2020Q3:1.19.0.2 pkgsrc-2020Q3-base:1.19 pkgsrc-2020Q2:1.18.0.2 pkgsrc-2020Q2-base:1.18 pkgsrc-2020Q1:1.17.0.2 pkgsrc-2020Q1-base:1.17 pkgsrc-2019Q4:1.17.0.4 pkgsrc-2019Q4-base:1.17 pkgsrc-2019Q3:1.16.0.6 pkgsrc-2019Q3-base:1.16 pkgsrc-2019Q2:1.16.0.4 pkgsrc-2019Q2-base:1.16 pkgsrc-2019Q1:1.16.0.2 pkgsrc-2019Q1-base:1.16 pkgsrc-2018Q4:1.14.0.2 pkgsrc-2018Q4-base:1.14 pkgsrc-2018Q3:1.12.0.2 pkgsrc-2018Q3-base:1.12 pkgsrc-2018Q2:1.10.0.4 pkgsrc-2018Q2-base:1.10 pkgsrc-2018Q1:1.10.0.2 pkgsrc-2018Q1-base:1.10 pkgsrc-2017Q4:1.9.0.2 pkgsrc-2017Q4-base:1.9 pkgsrc-2017Q3:1.7.0.4 pkgsrc-2017Q3-base:1.7 pkgsrc-2017Q2:1.6.0.4 pkgsrc-2017Q2-base:1.6 pkgsrc-2017Q1:1.6.0.2 pkgsrc-2017Q1-base:1.6 pkgsrc-2016Q4:1.5.0.4 pkgsrc-2016Q4-base:1.5 pkgsrc-2016Q3:1.5.0.2 pkgsrc-2016Q3-base:1.5 pkgsrc-2016Q2:1.2.0.10 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.8 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.6 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.4 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.2 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.1.0.10 pkgsrc-2015Q1-base:1.1 pkgsrc-2014Q4:1.1.0.8 pkgsrc-2014Q4-base:1.1 pkgsrc-2014Q3:1.1.0.6 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.4 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.2 pkgsrc-2014Q1-base:1.1; locks; strict; comment @# @; 1.33 date 2024.03.03.11.54.21; author wiz; state Exp; branches; next 1.32; commitid 1ABRr0soA1xwZH0F; 1.32 date 2023.10.28.19.57.05; author wiz; state Exp; branches; next 1.31; commitid jP8MYROLWZ3yJqKE; 1.31 date 2023.10.09.17.39.16; author adam; state Exp; branches; next 1.30; commitid rW0yBD9T4OCFAYHE; 1.30 date 2023.03.09.09.50.19; author adam; state Exp; branches; next 1.29; commitid pLPNC57Q0PrlSqgE; 1.29 date 2023.02.02.08.32.04; author adam; state Exp; branches; next 1.28; commitid ER4V7CD0Sl99yVbE; 1.28 date 2022.08.30.10.01.18; author adam; state Exp; branches; next 1.27; commitid rUlmmog3Zh9L4TRD; 1.27 date 2022.06.15.11.43.05; author adam; state Exp; branches; next 1.26; commitid 02H5WqBtDisq48ID; 1.26 date 2022.04.20.10.51.27; author adam; state Exp; branches; next 1.25; commitid dFhvWpVdofOOzVAD; 1.25 date 2021.12.08.16.23.48; author adam; state Exp; branches; next 1.24; commitid vBFyGSpenGnAHRjD; 1.24 date 2021.10.26.12.22.15; author adam; state Exp; branches; next 1.23; commitid aFTKw6lYwn4EKjeD; 1.23 date 2021.09.13.06.52.31; author adam; state Exp; branches; next 1.22; commitid yMrU607Bu1a6jL8D; 1.22 date 2021.06.30.06.02.15; author adam; state Exp; branches; next 1.21; commitid IzGpA7XiPykmr7ZC; 1.21 date 2021.04.26.13.00.31; author adam; state Exp; branches; next 1.20; commitid l8bdkboOEFEuQNQC; 1.20 date 2021.02.22.09.24.34; author adam; state Exp; branches; next 1.19; commitid UHso61no6KPNFGIC; 1.19 date 2020.08.21.21.55.41; author adam; state Exp; branches; next 1.18; commitid avP4QjMBe7trMYkC; 1.18 date 2020.05.05.18.21.25; author adam; state Exp; branches; next 1.17; commitid eA31A2dbjJmE357C; 1.17 date 2019.10.01.11.38.06; author adam; state Exp; branches; next 1.16; commitid kEtDGVEcMTDDN9FB; 1.16 date 2019.03.02.14.12.28; author adam; state Exp; branches; next 1.15; commitid DjzfZmaD719RvNdB; 1.15 date 2019.02.28.09.20.07; author adam; state Exp; branches; next 1.14; commitid CXFo6TxY1kpWWvdB; 1.14 date 2018.11.27.16.16.55; author adam; state Exp; branches; next 1.13; commitid 7BCo403QxF9UfB1B; 1.13 date 2018.11.26.09.09.34; author adam; state Exp; branches; next 1.12; commitid yTDb1KB4BixWUq1B; 1.12 date 2018.08.02.15.19.23; author adam; state Exp; branches; next 1.11; commitid vn5tWOm8eI9DGyMA; 1.11 date 2018.07.17.10.08.42; author adam; state Exp; branches; next 1.10; commitid rwWMV2k3p7yWttKA; 1.10 date 2018.01.24.08.37.46; author adam; state Exp; branches; next 1.9; commitid 41bu5CdZBND4A6oA; 1.9 date 2017.12.17.16.32.57; author adam; state Exp; branches; next 1.8; commitid H7Ka6sv0GvhlqgjA; 1.8 date 2017.12.12.08.38.18; author adam; state Exp; branches; next 1.7; commitid buRR60FbsEm2YziA; 1.7 date 2017.07.16.20.33.32; author adam; state Exp; branches; next 1.6; commitid PwV0QKZTl4xnIuZz; 1.6 date 2017.03.01.13.08.43; author fhajny; state Exp; branches; next 1.5; commitid vi81fDoYnfBJEQHz; 1.5 date 2016.08.29.16.19.04; author wiz; state Exp; branches; next 1.4; commitid reViwGyC5sWQCdkz; 1.4 date 2016.08.29.15.58.58; author darcy; state Exp; branches; next 1.3; commitid IOrjHybXZEtVvdkz; 1.3 date 2016.07.12.09.32.14; author wiz; state Exp; branches; next 1.2; commitid ZcmEeuNQEA5XU0ez; 1.2 date 2015.04.05.15.59.54; author wen; state Exp; branches; next 1.1; commitid 7Yp1snYYlw7nYpgy; 1.1 date 2014.03.12.01.26.03; author rodent; state Exp; branches; next ; commitid BP0Lu5LTeNE7Elsx; desc @@ 1.33 log @py-pylint: update to 3.1.0. New Features ------------ - Skip ``consider-using-join`` check for non-empty separators if an ``suggest-join-with-non-empty-separator`` option is set to ``no``. Closes #8701 (`#8701 `_) - Discover ``.pyi`` files when linting. These can be ignored with the ``ignore-patterns`` setting. Closes #9097 (`#9097 `_) - Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for ``invalid-name``. Refs #9196 (`#9196 `_) - Support for resolving external toml files named pylintrc.toml and .pylintrc.toml. Closes #9228 (`#9228 `_) - Check for `.clear`, `.discard`, `.pop` and `remove` methods being called on a set while it is being iterated over. Closes #9334 (`#9334 `_) New Checks ---------- - New message `use-yield-from` added to the refactoring checker. This message is emitted when yielding from a loop can be replaced by `yield from`. Closes #9229. (`#9229 `_) - Added a ``deprecated-attribute`` message to check deprecated attributes in the stdlib. Closes #8855 (`#8855 `_) False Positives Fixed --------------------- - Fixed false positive for ``inherit-non-class`` for generic Protocols. Closes #9106 (`#9106 `_) - Exempt ``TypedDict`` from ``typing_extensions`` from ``too-many-ancestor`` checks. Refs #9167 (`#9167 `_) False Negatives Fixed --------------------- - Extend broad-exception-raised and broad-exception-caught to except*. Closes #8827 (`#8827 `_) - Fix a false-negative for unnecessary if blocks using a different than expected ordering of arguments. Closes #8947. (`#8947 `_) Other Bug Fixes --------------- - Improve the message provided for wrong-import-order check. Instead of the import statement ("import x"), the message now specifies the import that is out of order and which imports should come after it. As reported in the issue, this is particularly helpful if there are multiple imports on a single line that do not follow the PEP8 convention. The message will report imports as follows: For "import X", it will report "(standard/third party/first party/local) import X" For "import X.Y" and "from X import Y", it will report "(standard/third party/first party/local) import X.Y" The import category is specified to provide explanation as to why pylint has issued the message and guidence to the developer on how to fix the problem. Closes #8808 (`#8808 `_) Other Changes ------------- - Print how many files were checked in verbose mode. Closes #8935 (`#8935 `_) - Fix a crash when an enum class which is also decorated with a ``dataclasses.dataclass`` decorator is defined. Closes #9100 (`#9100 `_) @ text @@@comment $NetBSD$ bin/pylint-${PYVERSSUFFIX} bin/pylint-config-${PYVERSSUFFIX} bin/pyreverse-${PYVERSSUFFIX} bin/symilar-${PYVERSSUFFIX} ${PYSITELIB}/${WHEEL_INFODIR}/CONTRIBUTORS.txt ${PYSITELIB}/${WHEEL_INFODIR}/LICENSE ${PYSITELIB}/${WHEEL_INFODIR}/METADATA ${PYSITELIB}/${WHEEL_INFODIR}/RECORD ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL ${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt ${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt ${PYSITELIB}/pylint/__init__.py ${PYSITELIB}/pylint/__init__.pyc ${PYSITELIB}/pylint/__init__.pyo ${PYSITELIB}/pylint/__main__.py ${PYSITELIB}/pylint/__main__.pyc ${PYSITELIB}/pylint/__main__.pyo ${PYSITELIB}/pylint/__pkginfo__.py ${PYSITELIB}/pylint/__pkginfo__.pyc ${PYSITELIB}/pylint/__pkginfo__.pyo ${PYSITELIB}/pylint/checkers/__init__.py ${PYSITELIB}/pylint/checkers/__init__.pyc ${PYSITELIB}/pylint/checkers/__init__.pyo ${PYSITELIB}/pylint/checkers/async.py ${PYSITELIB}/pylint/checkers/async.pyc ${PYSITELIB}/pylint/checkers/async.pyo ${PYSITELIB}/pylint/checkers/bad_chained_comparison.py ${PYSITELIB}/pylint/checkers/bad_chained_comparison.pyc ${PYSITELIB}/pylint/checkers/bad_chained_comparison.pyo ${PYSITELIB}/pylint/checkers/base/__init__.py ${PYSITELIB}/pylint/checkers/base/__init__.pyc ${PYSITELIB}/pylint/checkers/base/__init__.pyo ${PYSITELIB}/pylint/checkers/base/basic_checker.py ${PYSITELIB}/pylint/checkers/base/basic_checker.pyc ${PYSITELIB}/pylint/checkers/base/basic_checker.pyo ${PYSITELIB}/pylint/checkers/base/basic_error_checker.py ${PYSITELIB}/pylint/checkers/base/basic_error_checker.pyc ${PYSITELIB}/pylint/checkers/base/basic_error_checker.pyo ${PYSITELIB}/pylint/checkers/base/comparison_checker.py ${PYSITELIB}/pylint/checkers/base/comparison_checker.pyc ${PYSITELIB}/pylint/checkers/base/comparison_checker.pyo ${PYSITELIB}/pylint/checkers/base/docstring_checker.py ${PYSITELIB}/pylint/checkers/base/docstring_checker.pyc ${PYSITELIB}/pylint/checkers/base/docstring_checker.pyo ${PYSITELIB}/pylint/checkers/base/name_checker/__init__.py ${PYSITELIB}/pylint/checkers/base/name_checker/__init__.pyc ${PYSITELIB}/pylint/checkers/base/name_checker/__init__.pyo ${PYSITELIB}/pylint/checkers/base/name_checker/checker.py ${PYSITELIB}/pylint/checkers/base/name_checker/checker.pyc ${PYSITELIB}/pylint/checkers/base/name_checker/checker.pyo ${PYSITELIB}/pylint/checkers/base/name_checker/naming_style.py ${PYSITELIB}/pylint/checkers/base/name_checker/naming_style.pyc ${PYSITELIB}/pylint/checkers/base/name_checker/naming_style.pyo ${PYSITELIB}/pylint/checkers/base/pass_checker.py ${PYSITELIB}/pylint/checkers/base/pass_checker.pyc ${PYSITELIB}/pylint/checkers/base/pass_checker.pyo ${PYSITELIB}/pylint/checkers/base_checker.py ${PYSITELIB}/pylint/checkers/base_checker.pyc ${PYSITELIB}/pylint/checkers/base_checker.pyo ${PYSITELIB}/pylint/checkers/classes/__init__.py ${PYSITELIB}/pylint/checkers/classes/__init__.pyc ${PYSITELIB}/pylint/checkers/classes/__init__.pyo ${PYSITELIB}/pylint/checkers/classes/class_checker.py ${PYSITELIB}/pylint/checkers/classes/class_checker.pyc ${PYSITELIB}/pylint/checkers/classes/class_checker.pyo ${PYSITELIB}/pylint/checkers/classes/special_methods_checker.py ${PYSITELIB}/pylint/checkers/classes/special_methods_checker.pyc ${PYSITELIB}/pylint/checkers/classes/special_methods_checker.pyo ${PYSITELIB}/pylint/checkers/dataclass_checker.py ${PYSITELIB}/pylint/checkers/dataclass_checker.pyc ${PYSITELIB}/pylint/checkers/dataclass_checker.pyo ${PYSITELIB}/pylint/checkers/deprecated.py ${PYSITELIB}/pylint/checkers/deprecated.pyc ${PYSITELIB}/pylint/checkers/deprecated.pyo ${PYSITELIB}/pylint/checkers/design_analysis.py ${PYSITELIB}/pylint/checkers/design_analysis.pyc ${PYSITELIB}/pylint/checkers/design_analysis.pyo ${PYSITELIB}/pylint/checkers/dunder_methods.py ${PYSITELIB}/pylint/checkers/dunder_methods.pyc ${PYSITELIB}/pylint/checkers/dunder_methods.pyo ${PYSITELIB}/pylint/checkers/ellipsis_checker.py ${PYSITELIB}/pylint/checkers/ellipsis_checker.pyc ${PYSITELIB}/pylint/checkers/ellipsis_checker.pyo ${PYSITELIB}/pylint/checkers/exceptions.py ${PYSITELIB}/pylint/checkers/exceptions.pyc ${PYSITELIB}/pylint/checkers/exceptions.pyo ${PYSITELIB}/pylint/checkers/format.py ${PYSITELIB}/pylint/checkers/format.pyc ${PYSITELIB}/pylint/checkers/format.pyo ${PYSITELIB}/pylint/checkers/imports.py ${PYSITELIB}/pylint/checkers/imports.pyc ${PYSITELIB}/pylint/checkers/imports.pyo ${PYSITELIB}/pylint/checkers/lambda_expressions.py ${PYSITELIB}/pylint/checkers/lambda_expressions.pyc ${PYSITELIB}/pylint/checkers/lambda_expressions.pyo ${PYSITELIB}/pylint/checkers/logging.py ${PYSITELIB}/pylint/checkers/logging.pyc ${PYSITELIB}/pylint/checkers/logging.pyo ${PYSITELIB}/pylint/checkers/method_args.py ${PYSITELIB}/pylint/checkers/method_args.pyc ${PYSITELIB}/pylint/checkers/method_args.pyo ${PYSITELIB}/pylint/checkers/misc.py ${PYSITELIB}/pylint/checkers/misc.pyc ${PYSITELIB}/pylint/checkers/misc.pyo ${PYSITELIB}/pylint/checkers/modified_iterating_checker.py ${PYSITELIB}/pylint/checkers/modified_iterating_checker.pyc ${PYSITELIB}/pylint/checkers/modified_iterating_checker.pyo ${PYSITELIB}/pylint/checkers/nested_min_max.py ${PYSITELIB}/pylint/checkers/nested_min_max.pyc ${PYSITELIB}/pylint/checkers/nested_min_max.pyo ${PYSITELIB}/pylint/checkers/newstyle.py ${PYSITELIB}/pylint/checkers/newstyle.pyc ${PYSITELIB}/pylint/checkers/newstyle.pyo ${PYSITELIB}/pylint/checkers/non_ascii_names.py ${PYSITELIB}/pylint/checkers/non_ascii_names.pyc ${PYSITELIB}/pylint/checkers/non_ascii_names.pyo ${PYSITELIB}/pylint/checkers/raw_metrics.py ${PYSITELIB}/pylint/checkers/raw_metrics.pyc ${PYSITELIB}/pylint/checkers/raw_metrics.pyo ${PYSITELIB}/pylint/checkers/refactoring/__init__.py ${PYSITELIB}/pylint/checkers/refactoring/__init__.pyc ${PYSITELIB}/pylint/checkers/refactoring/__init__.pyo ${PYSITELIB}/pylint/checkers/refactoring/implicit_booleaness_checker.py ${PYSITELIB}/pylint/checkers/refactoring/implicit_booleaness_checker.pyc ${PYSITELIB}/pylint/checkers/refactoring/implicit_booleaness_checker.pyo ${PYSITELIB}/pylint/checkers/refactoring/not_checker.py ${PYSITELIB}/pylint/checkers/refactoring/not_checker.pyc ${PYSITELIB}/pylint/checkers/refactoring/not_checker.pyo ${PYSITELIB}/pylint/checkers/refactoring/recommendation_checker.py ${PYSITELIB}/pylint/checkers/refactoring/recommendation_checker.pyc ${PYSITELIB}/pylint/checkers/refactoring/recommendation_checker.pyo ${PYSITELIB}/pylint/checkers/refactoring/refactoring_checker.py ${PYSITELIB}/pylint/checkers/refactoring/refactoring_checker.pyc ${PYSITELIB}/pylint/checkers/refactoring/refactoring_checker.pyo ${PYSITELIB}/pylint/checkers/similar.py ${PYSITELIB}/pylint/checkers/similar.pyc ${PYSITELIB}/pylint/checkers/similar.pyo ${PYSITELIB}/pylint/checkers/spelling.py ${PYSITELIB}/pylint/checkers/spelling.pyc ${PYSITELIB}/pylint/checkers/spelling.pyo ${PYSITELIB}/pylint/checkers/stdlib.py ${PYSITELIB}/pylint/checkers/stdlib.pyc ${PYSITELIB}/pylint/checkers/stdlib.pyo ${PYSITELIB}/pylint/checkers/strings.py ${PYSITELIB}/pylint/checkers/strings.pyc ${PYSITELIB}/pylint/checkers/strings.pyo ${PYSITELIB}/pylint/checkers/threading_checker.py ${PYSITELIB}/pylint/checkers/threading_checker.pyc ${PYSITELIB}/pylint/checkers/threading_checker.pyo ${PYSITELIB}/pylint/checkers/typecheck.py ${PYSITELIB}/pylint/checkers/typecheck.pyc ${PYSITELIB}/pylint/checkers/typecheck.pyo ${PYSITELIB}/pylint/checkers/unicode.py ${PYSITELIB}/pylint/checkers/unicode.pyc ${PYSITELIB}/pylint/checkers/unicode.pyo ${PYSITELIB}/pylint/checkers/unsupported_version.py ${PYSITELIB}/pylint/checkers/unsupported_version.pyc ${PYSITELIB}/pylint/checkers/unsupported_version.pyo ${PYSITELIB}/pylint/checkers/utils.py ${PYSITELIB}/pylint/checkers/utils.pyc ${PYSITELIB}/pylint/checkers/utils.pyo ${PYSITELIB}/pylint/checkers/variables.py ${PYSITELIB}/pylint/checkers/variables.pyc ${PYSITELIB}/pylint/checkers/variables.pyo ${PYSITELIB}/pylint/config/__init__.py ${PYSITELIB}/pylint/config/__init__.pyc ${PYSITELIB}/pylint/config/__init__.pyo ${PYSITELIB}/pylint/config/_breaking_changes.py ${PYSITELIB}/pylint/config/_breaking_changes.pyc ${PYSITELIB}/pylint/config/_breaking_changes.pyo ${PYSITELIB}/pylint/config/_pylint_config/__init__.py ${PYSITELIB}/pylint/config/_pylint_config/__init__.pyc ${PYSITELIB}/pylint/config/_pylint_config/__init__.pyo ${PYSITELIB}/pylint/config/_pylint_config/generate_command.py ${PYSITELIB}/pylint/config/_pylint_config/generate_command.pyc ${PYSITELIB}/pylint/config/_pylint_config/generate_command.pyo ${PYSITELIB}/pylint/config/_pylint_config/help_message.py ${PYSITELIB}/pylint/config/_pylint_config/help_message.pyc ${PYSITELIB}/pylint/config/_pylint_config/help_message.pyo ${PYSITELIB}/pylint/config/_pylint_config/main.py ${PYSITELIB}/pylint/config/_pylint_config/main.pyc ${PYSITELIB}/pylint/config/_pylint_config/main.pyo ${PYSITELIB}/pylint/config/_pylint_config/setup.py ${PYSITELIB}/pylint/config/_pylint_config/setup.pyc ${PYSITELIB}/pylint/config/_pylint_config/setup.pyo ${PYSITELIB}/pylint/config/_pylint_config/utils.py ${PYSITELIB}/pylint/config/_pylint_config/utils.pyc ${PYSITELIB}/pylint/config/_pylint_config/utils.pyo ${PYSITELIB}/pylint/config/argument.py ${PYSITELIB}/pylint/config/argument.pyc ${PYSITELIB}/pylint/config/argument.pyo ${PYSITELIB}/pylint/config/arguments_manager.py ${PYSITELIB}/pylint/config/arguments_manager.pyc ${PYSITELIB}/pylint/config/arguments_manager.pyo ${PYSITELIB}/pylint/config/arguments_provider.py ${PYSITELIB}/pylint/config/arguments_provider.pyc ${PYSITELIB}/pylint/config/arguments_provider.pyo ${PYSITELIB}/pylint/config/callback_actions.py ${PYSITELIB}/pylint/config/callback_actions.pyc ${PYSITELIB}/pylint/config/callback_actions.pyo ${PYSITELIB}/pylint/config/config_file_parser.py ${PYSITELIB}/pylint/config/config_file_parser.pyc ${PYSITELIB}/pylint/config/config_file_parser.pyo ${PYSITELIB}/pylint/config/config_initialization.py ${PYSITELIB}/pylint/config/config_initialization.pyc ${PYSITELIB}/pylint/config/config_initialization.pyo ${PYSITELIB}/pylint/config/deprecation_actions.py ${PYSITELIB}/pylint/config/deprecation_actions.pyc ${PYSITELIB}/pylint/config/deprecation_actions.pyo ${PYSITELIB}/pylint/config/exceptions.py ${PYSITELIB}/pylint/config/exceptions.pyc ${PYSITELIB}/pylint/config/exceptions.pyo ${PYSITELIB}/pylint/config/find_default_config_files.py ${PYSITELIB}/pylint/config/find_default_config_files.pyc ${PYSITELIB}/pylint/config/find_default_config_files.pyo ${PYSITELIB}/pylint/config/help_formatter.py ${PYSITELIB}/pylint/config/help_formatter.pyc ${PYSITELIB}/pylint/config/help_formatter.pyo ${PYSITELIB}/pylint/config/utils.py ${PYSITELIB}/pylint/config/utils.pyc ${PYSITELIB}/pylint/config/utils.pyo ${PYSITELIB}/pylint/constants.py ${PYSITELIB}/pylint/constants.pyc ${PYSITELIB}/pylint/constants.pyo ${PYSITELIB}/pylint/exceptions.py ${PYSITELIB}/pylint/exceptions.pyc ${PYSITELIB}/pylint/exceptions.pyo ${PYSITELIB}/pylint/extensions/__init__.py ${PYSITELIB}/pylint/extensions/__init__.pyc ${PYSITELIB}/pylint/extensions/__init__.pyo ${PYSITELIB}/pylint/extensions/_check_docs_utils.py ${PYSITELIB}/pylint/extensions/_check_docs_utils.pyc ${PYSITELIB}/pylint/extensions/_check_docs_utils.pyo ${PYSITELIB}/pylint/extensions/bad_builtin.py ${PYSITELIB}/pylint/extensions/bad_builtin.pyc ${PYSITELIB}/pylint/extensions/bad_builtin.pyo ${PYSITELIB}/pylint/extensions/broad_try_clause.py ${PYSITELIB}/pylint/extensions/broad_try_clause.pyc ${PYSITELIB}/pylint/extensions/broad_try_clause.pyo ${PYSITELIB}/pylint/extensions/check_elif.py ${PYSITELIB}/pylint/extensions/check_elif.pyc ${PYSITELIB}/pylint/extensions/check_elif.pyo ${PYSITELIB}/pylint/extensions/code_style.py ${PYSITELIB}/pylint/extensions/code_style.pyc ${PYSITELIB}/pylint/extensions/code_style.pyo ${PYSITELIB}/pylint/extensions/comparison_placement.py ${PYSITELIB}/pylint/extensions/comparison_placement.pyc ${PYSITELIB}/pylint/extensions/comparison_placement.pyo ${PYSITELIB}/pylint/extensions/confusing_elif.py ${PYSITELIB}/pylint/extensions/confusing_elif.pyc ${PYSITELIB}/pylint/extensions/confusing_elif.pyo ${PYSITELIB}/pylint/extensions/consider_refactoring_into_while_condition.py ${PYSITELIB}/pylint/extensions/consider_refactoring_into_while_condition.pyc ${PYSITELIB}/pylint/extensions/consider_refactoring_into_while_condition.pyo ${PYSITELIB}/pylint/extensions/consider_ternary_expression.py ${PYSITELIB}/pylint/extensions/consider_ternary_expression.pyc ${PYSITELIB}/pylint/extensions/consider_ternary_expression.pyo ${PYSITELIB}/pylint/extensions/dict_init_mutate.py ${PYSITELIB}/pylint/extensions/dict_init_mutate.pyc ${PYSITELIB}/pylint/extensions/dict_init_mutate.pyo ${PYSITELIB}/pylint/extensions/docparams.py ${PYSITELIB}/pylint/extensions/docparams.pyc ${PYSITELIB}/pylint/extensions/docparams.pyo ${PYSITELIB}/pylint/extensions/docstyle.py ${PYSITELIB}/pylint/extensions/docstyle.pyc ${PYSITELIB}/pylint/extensions/docstyle.pyo ${PYSITELIB}/pylint/extensions/dunder.py ${PYSITELIB}/pylint/extensions/dunder.pyc ${PYSITELIB}/pylint/extensions/dunder.pyo ${PYSITELIB}/pylint/extensions/empty_comment.py ${PYSITELIB}/pylint/extensions/empty_comment.pyc ${PYSITELIB}/pylint/extensions/empty_comment.pyo ${PYSITELIB}/pylint/extensions/eq_without_hash.py ${PYSITELIB}/pylint/extensions/eq_without_hash.pyc ${PYSITELIB}/pylint/extensions/eq_without_hash.pyo ${PYSITELIB}/pylint/extensions/for_any_all.py ${PYSITELIB}/pylint/extensions/for_any_all.pyc ${PYSITELIB}/pylint/extensions/for_any_all.pyo ${PYSITELIB}/pylint/extensions/magic_value.py ${PYSITELIB}/pylint/extensions/magic_value.pyc ${PYSITELIB}/pylint/extensions/magic_value.pyo ${PYSITELIB}/pylint/extensions/mccabe.py ${PYSITELIB}/pylint/extensions/mccabe.pyc ${PYSITELIB}/pylint/extensions/mccabe.pyo ${PYSITELIB}/pylint/extensions/no_self_use.py ${PYSITELIB}/pylint/extensions/no_self_use.pyc ${PYSITELIB}/pylint/extensions/no_self_use.pyo ${PYSITELIB}/pylint/extensions/overlapping_exceptions.py ${PYSITELIB}/pylint/extensions/overlapping_exceptions.pyc ${PYSITELIB}/pylint/extensions/overlapping_exceptions.pyo ${PYSITELIB}/pylint/extensions/private_import.py ${PYSITELIB}/pylint/extensions/private_import.pyc ${PYSITELIB}/pylint/extensions/private_import.pyo ${PYSITELIB}/pylint/extensions/redefined_loop_name.py ${PYSITELIB}/pylint/extensions/redefined_loop_name.pyc ${PYSITELIB}/pylint/extensions/redefined_loop_name.pyo ${PYSITELIB}/pylint/extensions/redefined_variable_type.py ${PYSITELIB}/pylint/extensions/redefined_variable_type.pyc ${PYSITELIB}/pylint/extensions/redefined_variable_type.pyo ${PYSITELIB}/pylint/extensions/set_membership.py ${PYSITELIB}/pylint/extensions/set_membership.pyc ${PYSITELIB}/pylint/extensions/set_membership.pyo ${PYSITELIB}/pylint/extensions/typing.py ${PYSITELIB}/pylint/extensions/typing.pyc ${PYSITELIB}/pylint/extensions/typing.pyo ${PYSITELIB}/pylint/extensions/while_used.py ${PYSITELIB}/pylint/extensions/while_used.pyc ${PYSITELIB}/pylint/extensions/while_used.pyo ${PYSITELIB}/pylint/graph.py ${PYSITELIB}/pylint/graph.pyc ${PYSITELIB}/pylint/graph.pyo ${PYSITELIB}/pylint/interfaces.py ${PYSITELIB}/pylint/interfaces.pyc ${PYSITELIB}/pylint/interfaces.pyo ${PYSITELIB}/pylint/lint/__init__.py ${PYSITELIB}/pylint/lint/__init__.pyc ${PYSITELIB}/pylint/lint/__init__.pyo ${PYSITELIB}/pylint/lint/base_options.py ${PYSITELIB}/pylint/lint/base_options.pyc ${PYSITELIB}/pylint/lint/base_options.pyo ${PYSITELIB}/pylint/lint/caching.py ${PYSITELIB}/pylint/lint/caching.pyc ${PYSITELIB}/pylint/lint/caching.pyo ${PYSITELIB}/pylint/lint/expand_modules.py ${PYSITELIB}/pylint/lint/expand_modules.pyc ${PYSITELIB}/pylint/lint/expand_modules.pyo ${PYSITELIB}/pylint/lint/message_state_handler.py ${PYSITELIB}/pylint/lint/message_state_handler.pyc ${PYSITELIB}/pylint/lint/message_state_handler.pyo ${PYSITELIB}/pylint/lint/parallel.py ${PYSITELIB}/pylint/lint/parallel.pyc ${PYSITELIB}/pylint/lint/parallel.pyo ${PYSITELIB}/pylint/lint/pylinter.py ${PYSITELIB}/pylint/lint/pylinter.pyc ${PYSITELIB}/pylint/lint/pylinter.pyo ${PYSITELIB}/pylint/lint/report_functions.py ${PYSITELIB}/pylint/lint/report_functions.pyc ${PYSITELIB}/pylint/lint/report_functions.pyo ${PYSITELIB}/pylint/lint/run.py ${PYSITELIB}/pylint/lint/run.pyc ${PYSITELIB}/pylint/lint/run.pyo ${PYSITELIB}/pylint/lint/utils.py ${PYSITELIB}/pylint/lint/utils.pyc ${PYSITELIB}/pylint/lint/utils.pyo ${PYSITELIB}/pylint/message/__init__.py ${PYSITELIB}/pylint/message/__init__.pyc ${PYSITELIB}/pylint/message/__init__.pyo ${PYSITELIB}/pylint/message/_deleted_message_ids.py ${PYSITELIB}/pylint/message/_deleted_message_ids.pyc ${PYSITELIB}/pylint/message/_deleted_message_ids.pyo ${PYSITELIB}/pylint/message/message.py ${PYSITELIB}/pylint/message/message.pyc ${PYSITELIB}/pylint/message/message.pyo ${PYSITELIB}/pylint/message/message_definition.py ${PYSITELIB}/pylint/message/message_definition.pyc ${PYSITELIB}/pylint/message/message_definition.pyo ${PYSITELIB}/pylint/message/message_definition_store.py ${PYSITELIB}/pylint/message/message_definition_store.pyc ${PYSITELIB}/pylint/message/message_definition_store.pyo ${PYSITELIB}/pylint/message/message_id_store.py ${PYSITELIB}/pylint/message/message_id_store.pyc ${PYSITELIB}/pylint/message/message_id_store.pyo ${PYSITELIB}/pylint/py.typed ${PYSITELIB}/pylint/pyreverse/__init__.py ${PYSITELIB}/pylint/pyreverse/__init__.pyc ${PYSITELIB}/pylint/pyreverse/__init__.pyo ${PYSITELIB}/pylint/pyreverse/diadefslib.py ${PYSITELIB}/pylint/pyreverse/diadefslib.pyc ${PYSITELIB}/pylint/pyreverse/diadefslib.pyo ${PYSITELIB}/pylint/pyreverse/diagrams.py ${PYSITELIB}/pylint/pyreverse/diagrams.pyc ${PYSITELIB}/pylint/pyreverse/diagrams.pyo ${PYSITELIB}/pylint/pyreverse/dot_printer.py ${PYSITELIB}/pylint/pyreverse/dot_printer.pyc ${PYSITELIB}/pylint/pyreverse/dot_printer.pyo ${PYSITELIB}/pylint/pyreverse/inspector.py ${PYSITELIB}/pylint/pyreverse/inspector.pyc ${PYSITELIB}/pylint/pyreverse/inspector.pyo ${PYSITELIB}/pylint/pyreverse/main.py ${PYSITELIB}/pylint/pyreverse/main.pyc ${PYSITELIB}/pylint/pyreverse/main.pyo ${PYSITELIB}/pylint/pyreverse/mermaidjs_printer.py ${PYSITELIB}/pylint/pyreverse/mermaidjs_printer.pyc ${PYSITELIB}/pylint/pyreverse/mermaidjs_printer.pyo ${PYSITELIB}/pylint/pyreverse/plantuml_printer.py ${PYSITELIB}/pylint/pyreverse/plantuml_printer.pyc ${PYSITELIB}/pylint/pyreverse/plantuml_printer.pyo ${PYSITELIB}/pylint/pyreverse/printer.py ${PYSITELIB}/pylint/pyreverse/printer.pyc ${PYSITELIB}/pylint/pyreverse/printer.pyo ${PYSITELIB}/pylint/pyreverse/printer_factory.py ${PYSITELIB}/pylint/pyreverse/printer_factory.pyc ${PYSITELIB}/pylint/pyreverse/printer_factory.pyo ${PYSITELIB}/pylint/pyreverse/utils.py ${PYSITELIB}/pylint/pyreverse/utils.pyc ${PYSITELIB}/pylint/pyreverse/utils.pyo ${PYSITELIB}/pylint/pyreverse/writer.py ${PYSITELIB}/pylint/pyreverse/writer.pyc ${PYSITELIB}/pylint/pyreverse/writer.pyo ${PYSITELIB}/pylint/reporters/__init__.py ${PYSITELIB}/pylint/reporters/__init__.pyc ${PYSITELIB}/pylint/reporters/__init__.pyo ${PYSITELIB}/pylint/reporters/base_reporter.py ${PYSITELIB}/pylint/reporters/base_reporter.pyc ${PYSITELIB}/pylint/reporters/base_reporter.pyo ${PYSITELIB}/pylint/reporters/collecting_reporter.py ${PYSITELIB}/pylint/reporters/collecting_reporter.pyc ${PYSITELIB}/pylint/reporters/collecting_reporter.pyo ${PYSITELIB}/pylint/reporters/json_reporter.py ${PYSITELIB}/pylint/reporters/json_reporter.pyc ${PYSITELIB}/pylint/reporters/json_reporter.pyo ${PYSITELIB}/pylint/reporters/multi_reporter.py ${PYSITELIB}/pylint/reporters/multi_reporter.pyc ${PYSITELIB}/pylint/reporters/multi_reporter.pyo ${PYSITELIB}/pylint/reporters/reports_handler_mix_in.py ${PYSITELIB}/pylint/reporters/reports_handler_mix_in.pyc ${PYSITELIB}/pylint/reporters/reports_handler_mix_in.pyo ${PYSITELIB}/pylint/reporters/text.py ${PYSITELIB}/pylint/reporters/text.pyc ${PYSITELIB}/pylint/reporters/text.pyo ${PYSITELIB}/pylint/reporters/ureports/__init__.py ${PYSITELIB}/pylint/reporters/ureports/__init__.pyc ${PYSITELIB}/pylint/reporters/ureports/__init__.pyo ${PYSITELIB}/pylint/reporters/ureports/base_writer.py ${PYSITELIB}/pylint/reporters/ureports/base_writer.pyc ${PYSITELIB}/pylint/reporters/ureports/base_writer.pyo ${PYSITELIB}/pylint/reporters/ureports/nodes.py ${PYSITELIB}/pylint/reporters/ureports/nodes.pyc ${PYSITELIB}/pylint/reporters/ureports/nodes.pyo ${PYSITELIB}/pylint/reporters/ureports/text_writer.py ${PYSITELIB}/pylint/reporters/ureports/text_writer.pyc ${PYSITELIB}/pylint/reporters/ureports/text_writer.pyo ${PYSITELIB}/pylint/testutils/__init__.py ${PYSITELIB}/pylint/testutils/__init__.pyc ${PYSITELIB}/pylint/testutils/__init__.pyo ${PYSITELIB}/pylint/testutils/_primer/__init__.py ${PYSITELIB}/pylint/testutils/_primer/__init__.pyc ${PYSITELIB}/pylint/testutils/_primer/__init__.pyo ${PYSITELIB}/pylint/testutils/_primer/package_to_lint.py ${PYSITELIB}/pylint/testutils/_primer/package_to_lint.pyc ${PYSITELIB}/pylint/testutils/_primer/package_to_lint.pyo ${PYSITELIB}/pylint/testutils/_primer/primer.py ${PYSITELIB}/pylint/testutils/_primer/primer.pyc ${PYSITELIB}/pylint/testutils/_primer/primer.pyo ${PYSITELIB}/pylint/testutils/_primer/primer_command.py ${PYSITELIB}/pylint/testutils/_primer/primer_command.pyc ${PYSITELIB}/pylint/testutils/_primer/primer_command.pyo ${PYSITELIB}/pylint/testutils/_primer/primer_compare_command.py ${PYSITELIB}/pylint/testutils/_primer/primer_compare_command.pyc ${PYSITELIB}/pylint/testutils/_primer/primer_compare_command.pyo ${PYSITELIB}/pylint/testutils/_primer/primer_prepare_command.py ${PYSITELIB}/pylint/testutils/_primer/primer_prepare_command.pyc ${PYSITELIB}/pylint/testutils/_primer/primer_prepare_command.pyo ${PYSITELIB}/pylint/testutils/_primer/primer_run_command.py ${PYSITELIB}/pylint/testutils/_primer/primer_run_command.pyc ${PYSITELIB}/pylint/testutils/_primer/primer_run_command.pyo ${PYSITELIB}/pylint/testutils/_run.py ${PYSITELIB}/pylint/testutils/_run.pyc ${PYSITELIB}/pylint/testutils/_run.pyo ${PYSITELIB}/pylint/testutils/checker_test_case.py ${PYSITELIB}/pylint/testutils/checker_test_case.pyc ${PYSITELIB}/pylint/testutils/checker_test_case.pyo ${PYSITELIB}/pylint/testutils/configuration_test.py ${PYSITELIB}/pylint/testutils/configuration_test.pyc ${PYSITELIB}/pylint/testutils/configuration_test.pyo ${PYSITELIB}/pylint/testutils/constants.py ${PYSITELIB}/pylint/testutils/constants.pyc ${PYSITELIB}/pylint/testutils/constants.pyo ${PYSITELIB}/pylint/testutils/decorator.py ${PYSITELIB}/pylint/testutils/decorator.pyc ${PYSITELIB}/pylint/testutils/decorator.pyo ${PYSITELIB}/pylint/testutils/functional/__init__.py ${PYSITELIB}/pylint/testutils/functional/__init__.pyc ${PYSITELIB}/pylint/testutils/functional/__init__.pyo ${PYSITELIB}/pylint/testutils/functional/find_functional_tests.py ${PYSITELIB}/pylint/testutils/functional/find_functional_tests.pyc ${PYSITELIB}/pylint/testutils/functional/find_functional_tests.pyo ${PYSITELIB}/pylint/testutils/functional/lint_module_output_update.py ${PYSITELIB}/pylint/testutils/functional/lint_module_output_update.pyc ${PYSITELIB}/pylint/testutils/functional/lint_module_output_update.pyo ${PYSITELIB}/pylint/testutils/functional/test_file.py ${PYSITELIB}/pylint/testutils/functional/test_file.pyc ${PYSITELIB}/pylint/testutils/functional/test_file.pyo ${PYSITELIB}/pylint/testutils/get_test_info.py ${PYSITELIB}/pylint/testutils/get_test_info.pyc ${PYSITELIB}/pylint/testutils/get_test_info.pyo ${PYSITELIB}/pylint/testutils/global_test_linter.py ${PYSITELIB}/pylint/testutils/global_test_linter.pyc ${PYSITELIB}/pylint/testutils/global_test_linter.pyo ${PYSITELIB}/pylint/testutils/lint_module_test.py ${PYSITELIB}/pylint/testutils/lint_module_test.pyc ${PYSITELIB}/pylint/testutils/lint_module_test.pyo ${PYSITELIB}/pylint/testutils/output_line.py ${PYSITELIB}/pylint/testutils/output_line.pyc ${PYSITELIB}/pylint/testutils/output_line.pyo ${PYSITELIB}/pylint/testutils/pyreverse.py ${PYSITELIB}/pylint/testutils/pyreverse.pyc ${PYSITELIB}/pylint/testutils/pyreverse.pyo ${PYSITELIB}/pylint/testutils/reporter_for_tests.py ${PYSITELIB}/pylint/testutils/reporter_for_tests.pyc ${PYSITELIB}/pylint/testutils/reporter_for_tests.pyo ${PYSITELIB}/pylint/testutils/testing_pylintrc ${PYSITELIB}/pylint/testutils/tokenize_str.py ${PYSITELIB}/pylint/testutils/tokenize_str.pyc ${PYSITELIB}/pylint/testutils/tokenize_str.pyo ${PYSITELIB}/pylint/testutils/unittest_linter.py ${PYSITELIB}/pylint/testutils/unittest_linter.pyc ${PYSITELIB}/pylint/testutils/unittest_linter.pyo ${PYSITELIB}/pylint/testutils/utils.py ${PYSITELIB}/pylint/testutils/utils.pyc ${PYSITELIB}/pylint/testutils/utils.pyo ${PYSITELIB}/pylint/typing.py ${PYSITELIB}/pylint/typing.pyc ${PYSITELIB}/pylint/typing.pyo ${PYSITELIB}/pylint/utils/__init__.py ${PYSITELIB}/pylint/utils/__init__.pyc ${PYSITELIB}/pylint/utils/__init__.pyo ${PYSITELIB}/pylint/utils/ast_walker.py ${PYSITELIB}/pylint/utils/ast_walker.pyc ${PYSITELIB}/pylint/utils/ast_walker.pyo ${PYSITELIB}/pylint/utils/docs.py ${PYSITELIB}/pylint/utils/docs.pyc ${PYSITELIB}/pylint/utils/docs.pyo ${PYSITELIB}/pylint/utils/file_state.py ${PYSITELIB}/pylint/utils/file_state.pyc ${PYSITELIB}/pylint/utils/file_state.pyo ${PYSITELIB}/pylint/utils/linterstats.py ${PYSITELIB}/pylint/utils/linterstats.pyc ${PYSITELIB}/pylint/utils/linterstats.pyo ${PYSITELIB}/pylint/utils/pragma_parser.py ${PYSITELIB}/pylint/utils/pragma_parser.pyc ${PYSITELIB}/pylint/utils/pragma_parser.pyo ${PYSITELIB}/pylint/utils/utils.py ${PYSITELIB}/pylint/utils/utils.pyc ${PYSITELIB}/pylint/utils/utils.pyo @ 1.32 log @python/wheel.mk: simplify a lot, and switch to 'installer' for installation This follows the recommended bootstrap method (flit_core, build, installer). However, installer installs different files than pip, so update PLISTs for all packages using wheel.mk and bump their PKGREVISIONs. @ text @d169 3 @ 1.31 log @py-pylint: updated to 3.0.1 3.0.0 Pylint now support python 3.12 officially. This long anticipated major version also provides some important usability and performance improvements, along with enacting necessary breaking changes and long-announced deprecations. The documentation of each message with an example is very close too. The required astroid version is now 3.0.0. See the astroid changelog for additional fixes, features, and performance improvements applicable to pylint. Our code is now fully typed. The invalid-name message no longer checks for a minimum length of 3 characters by default. Dependencies like wrapt or setuptools were removed. A new json2 reporter has been added. It features an enriched output that is easier to parse and provides more info. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.30 2023/03/09 09:50:19 adam Exp $ a6 1 ${PYSITELIB}/${WHEEL_INFODIR}/INSTALLER a9 1 ${PYSITELIB}/${WHEEL_INFODIR}/REQUESTED a10 1 ${PYSITELIB}/${WHEEL_INFODIR}/direct_url.json d15 1 d18 1 d21 1 d24 1 d27 1 d30 1 d33 1 d36 1 d39 1 d42 1 d45 1 d48 1 d51 1 d54 1 d57 1 d60 1 d63 1 d66 1 d69 1 d72 1 d75 1 d78 1 d81 1 d84 1 d87 1 d90 1 d93 1 d96 1 d99 1 d102 1 d105 1 d108 1 d111 1 d114 1 d117 1 d120 1 d123 1 d126 1 d129 1 d132 1 d135 1 d138 1 d141 1 d144 1 d147 1 d150 1 d153 1 d156 1 d159 1 d162 1 d165 1 d168 1 d171 1 d174 1 d177 1 d180 1 d183 1 d186 1 d189 1 d192 1 d195 1 d198 1 d201 1 d204 1 d207 1 d210 1 d213 1 d216 1 d219 1 d222 1 d225 1 d228 1 d231 1 d234 1 d237 1 d240 1 d243 1 d246 1 d249 1 d252 1 d255 1 d258 1 d261 1 d264 1 d267 1 d270 1 d273 1 d276 1 d279 1 d282 1 d285 1 d288 1 d291 1 d294 1 d297 1 d300 1 d303 1 d306 1 d309 1 d312 1 d315 1 d318 1 d321 1 d324 1 d327 1 d330 1 d333 1 d336 1 d339 1 d342 1 d345 1 d348 1 d351 1 d354 1 d357 1 d360 1 d364 1 d367 1 d370 1 d373 1 d376 1 d379 1 d382 1 d385 1 d388 1 d391 1 d394 1 d397 1 d400 1 d403 1 d406 1 d409 1 d412 1 d415 1 d418 1 d421 1 d424 1 d427 1 d430 1 d433 1 d436 1 d439 1 d442 1 d445 1 d448 1 d451 1 d454 1 d457 1 d460 1 d463 1 d466 1 d469 1 d472 1 d475 1 d478 1 d481 1 d484 1 d487 1 d490 1 d493 1 d496 1 d499 1 d503 1 d506 1 d509 1 d512 1 d515 1 d518 1 d521 1 d524 1 d527 1 d530 1 d533 1 @ 1.30 log @py-pylint: updadted to 2.17.0 2.17.0 2.17 is a small release that is the first to support python 3.11 officially with the addition of TryStar nodes. There's still two new default checks: bad-chained-comparison and implicit-flag-alias, one of them already fixed a previously undetected bug in sentry. Thanks to the community effort our documentation is almost complete, and almost all messages should have a proper documentation now. A big thank you to everyone who participated ! The next release is going to be 3.0.0, bring breaking changes and enact long announced deprecations. There's going to be frequent beta releases, before the official releases, everyone is welcome to try the betas so we find problems before the actual release. @ text @d1 1 a1 2 @@comment $NetBSD: PLIST,v 1.29 2023/02/02 08:32:04 adam Exp $ bin/epylint-${PYVERSSUFFIX} d54 2 a73 2 ${PYSITELIB}/pylint/checkers/mapreduce_checker.py ${PYSITELIB}/pylint/checkers/mapreduce_checker.pyc a143 2 ${PYSITELIB}/pylint/config/configuration_mixin.py ${PYSITELIB}/pylint/config/configuration_mixin.pyc a145 2 ${PYSITELIB}/pylint/config/environment_variable.py ${PYSITELIB}/pylint/config/environment_variable.pyc a151 8 ${PYSITELIB}/pylint/config/option.py ${PYSITELIB}/pylint/config/option.pyc ${PYSITELIB}/pylint/config/option_manager_mixin.py ${PYSITELIB}/pylint/config/option_manager_mixin.pyc ${PYSITELIB}/pylint/config/option_parser.py ${PYSITELIB}/pylint/config/option_parser.pyc ${PYSITELIB}/pylint/config/options_provider_mixin.py ${PYSITELIB}/pylint/config/options_provider_mixin.pyc a155 2 ${PYSITELIB}/pylint/epylint.py ${PYSITELIB}/pylint/epylint.pyc a169 2 ${PYSITELIB}/pylint/extensions/comparetozero.py ${PYSITELIB}/pylint/extensions/comparetozero.pyc a187 2 ${PYSITELIB}/pylint/extensions/emptystring.py ${PYSITELIB}/pylint/extensions/emptystring.pyc d248 1 a270 2 ${PYSITELIB}/pylint/pyreverse/vcg_printer.py ${PYSITELIB}/pylint/pyreverse/vcg_printer.pyc a328 2 ${PYSITELIB}/pylint/testutils/functional_test_file.py ${PYSITELIB}/pylint/testutils/functional_test_file.pyc @ 1.29 log @py-pylint: updated to 2.16.0 What's new in Pylint 2.16.0? ---------------------------- Release date: 2023-02-01 Changes requiring user actions ------------------------------ - The ``accept-no-raise-doc`` option related to ``missing-raises-doc`` will now be correctly taken into account all the time. Pylint will no longer raise missing-raises-doc (W9006) when no exceptions are documented and accept-no-raise-doc is true (issue 7208). If you were expecting missing-raises-doc errors to be raised in that case, you will now have to add ``accept-no-raise-doc=no`` in your configuration to keep the same behavior. New Features ------------ - Added the ``no-header`` output format. If enabled with ``--output-format=no-header``, it will not include the module name in the output. - Added configuration option ``clear-cache-post-run`` to support server-like usage. Use this flag if you expect the linted files to be altered between runs. - Add ``--allow-reexport-from-package`` option to configure the ``useless-import-alias`` check not to emit a warning if a name is reexported from a package. - Update ``pyreverse`` to differentiate between aggregations and compositions. ``pyreverse`` checks if it's an Instance or a Call of an object via method parameters (via type hints) to decide if it's a composition or an aggregation. New Checks ---------- - Adds a ``pointless-exception-statement`` check that emits a warning when an Exception is created and not assigned, raised or returned. - Add a ``shadowed-import`` message for aliased imports. - Add new check called ``unbalanced-dict-unpacking`` to check for unbalanced dict unpacking in assignment and for loops. - Add new checker ``positional-only-arguments-expected`` to check for cases when positional-only arguments have been passed as keyword arguments. - Added ``singledispatch-method`` which informs that ``@@singledispatch`` should decorate functions and not class/instance methods. Added ``singledispatchmethod-function`` which informs that ``@@singledispatchmethod`` should decorate class/instance methods and not functions. - Rename ``broad-except`` to ``broad-exception-caught`` and add new checker ``broad-exception-raised`` which will warn if general exceptions ``BaseException`` or ``Exception`` are raised. - Added ``nested-min-max`` which flags ``min(1, min(2, 3))`` to simplify to ``min(1, 2, 3)``. - Extended ``use-dict-literal`` to also warn about call to ``dict()`` when passing keyword arguments. - Add ``named-expr-without-context`` check to emit a warning if a named expression is used outside a context like ``if``, ``for``, ``while``, or a comprehension. - Add ``invalid-slice-step`` check to warn about a slice step value of ``0`` for common builtin sequences. - Add ``consider-refactoring-into-while-condition`` check to recommend refactoring when a while loop is defined with a constant condition with an immediate ``if`` statement to check for ``break`` condition as a first statement. Extensions ---------- - Add new extension checker ``dict-init-mutate`` that flags mutating a dictionary immediately after the dictionary was created. - Added ``bad-dunder-name`` extension check, which flags bad or misspelled dunder methods. You can use the ``good-dunder-names`` option to allow specific dunder names. - Added ``consider-using-augmented-assign`` check for ``CodeStyle`` extension which flags ``x = x + 1`` to simplify to ``x += 1``. This check is disabled by default. To use it, load the code style extension with ``load-plugins=pylint.extensions.code_style`` and add ``consider-using-augmented-assign`` in the ``enable`` option. - Add ``magic-number`` plugin checker for comparison with constants instead of named constants or enums. You can use it with ``--load-plugins=pylint.extensions.magic_value``. - Add ``redundant-typehint-argument`` message for `typing` plugin for duplicate assign typehints. Enable the plugin to enable the message with: ``--load-plugins=pylint.extensions.typing``. False Positives Fixed --------------------- - Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation. - Document a known false positive for ``useless-suppression`` when disabling ``line-too-long`` in a module with only comments and no code. - ``trailing-whitespaces`` is no longer reported within strings. - Fix false positive for ``global-variable-not-assigned`` when a global variable is re-assigned via an ``ImportFrom`` node. - Fix false positive for ``use-maxsplit-arg`` with custom split method. - Fix ``logging-fstring-interpolation`` false positive raised when logging and f-string with ``%s`` formatting. - Fix false-positive for ``used-before-assignment`` in pattern matching with a guard. - Fix ``use-sequence-for-iteration`` when unpacking a set with ``*``. - Fix ``deprecated-method`` false positive when alias for method is similar to name of deprecated method. - Fix false positive ``assigning-non-slot`` when a class attribute is re-assigned. - Fix false positive for ``too-many-function-args`` when a function call is assigned to a class attribute inside the class where the function is defined. - Fixes false positive ``abstract-method`` on Protocol classes. - Pylint now understands the ``kw_only`` keyword argument for ``dataclass``. - Fix false positive for ``undefined-loop-variable`` in ``for-else`` loops that use a function having a return type annotation of ``NoReturn`` or ``Never``. - Fix ``used-before-assignment`` for functions/classes defined in type checking guard. - Fix false positive for ``unhashable-member`` when subclassing ``dict`` and using the subclass as a dictionary key. - Fix the message for ``unnecessary-dunder-call`` for ``__aiter__`` and ``__aneext__``. Also only emit the warning when ``py-version`` >= 3.10. - Fix ``used-before-assignment`` false positive when else branch calls ``sys.exit`` or similar terminating functions. - Fix a false positive for ``used-before-assignment`` for imports guarded by ``typing.TYPE_CHECKING`` later used in variable annotations. - Fix a false positive for ``simplify-boolean-expression`` when multiple values are inferred for a constant. - ``unnecessary-list-index-lookup`` will not be wrongly emitted if ``enumerate`` is called with ``start``. - Don't warn about ``stop-iteration-return`` when using ``next()`` over ``itertools.cycle``. - Fixes ``used-before-assignment`` false positive when the walrus operator is used in a ternary operator. - Fix ``missing-param-doc`` false positive when function parameter has an escaped underscore. - Fixes ``method-cache-max-size-none`` false positive for methods inheriting from ``Enum``. - ``multiple-statements`` no longer triggers for function stubs using inlined ``...``. - Fix a false positive for ``used-before-assignment`` when a name guarded by ``if TYPE_CHECKING:`` is used as a type annotation in a function body and later re-imported in the same scope. - Prevent ``used-before-assignment`` when imports guarded by ``if TYPE_CHECKING`` are guarded again when used. - Fixes false positive for ``try-except-raise`` with multiple exceptions in one except statement if exception are in different namespace. - Fix ``invalid-name`` errors for ``typing_extension.TypeVar``. - Fix ``no-kwoa`` false positive for context managers. - Fix a false positive for ``redefined-variable-type`` when ``async`` methods are present. False Negatives Fixed --------------------- - Code following a call to ``quit``, ``exit``, ``sys.exit`` or ``os._exit`` will be marked as `unreachable`. - Emit ``used-before-assignment`` when function arguments are redefined inside an inner function and accessed there before assignment. - Fix a false negative for ``unused-import`` when one module used an import in a type annotation that was also used in another module. - Flag ``superfluous-parens`` if parentheses are used during string concatenation. - Emit ``used-before-assignment`` when relying on names only defined under conditions always testing false. - ``consider-using-join`` can now be emitted for non-empty string separators. - Emit ``used-before-assignment`` for further imports guarded by ``TYPE_CHECKING`` Previously, this message was only emitted for imports guarded directly under ``TYPE_CHECKING``, not guarded two if-branches deep, nor when ``TYPE_CHECKING`` was imported from ``typing`` under an alias. - Fix a false negative for ``unused-import`` when a constant inside ``typing.Annotated`` was treated as a reference to an import. - ``consider-using-any-or-all`` message will now be raised in cases when boolean is initialized, reassigned during loop, and immediately returned. - Extend ``invalid-slice-index`` to emit an warning for invalid slice indices used with string and byte sequences, and range objects. - Fixes ``unnecessary-list-index-lookup`` false negative when ``enumerate`` is called with ``iterable`` as a kwarg. - ``no-else-return`` or ``no-else-raise`` will be emitted if ``except`` block always returns or raises. - Fix ``dangerous-default-value`` false negative when ``*`` is used. - ``consider-using-with`` now triggers for ``pathlib.Path.open``. Other Bug Fixes --------------- - Fix bug in detecting ``unused-variable`` when iterating on variable. - Fix bug in scanning of names inside arguments to ``typing.Literal``. See https://peps.python.org/pep-0586/#literals-enums-and-forward-references for details. - Update ``disallowed-name`` check to flag module-level variables. - Pylint will no longer deadlock if a parallel job is killed but fail immediately instead. - Fix ignored files being linted when passed on stdin. - Fix ``no-member`` false negative when augmented assign is done manually, without ``+=``. - Any assertion on a populated tuple will now receive a ``assert-on-tuple`` warning. - ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect the ``no-docstring-rgx`` option. - Update ``reimported`` help message for clarity. - ``consider-iterating-dictionary`` will no longer be raised if bitwise operations are used. - Using custom braces in ``msg-template`` will now work properly. - Pylint will now filter duplicates given to it before linting. The output should be the same whether a file is given/discovered multiple times or not. - Remove ``__index__`` dunder method call from ``unnecessary-dunder-call`` check. - Fixed handling of ``--`` as separator between positional arguments and flags. This was not actually fixed in 2.14.5. - Don't crash on ``OSError`` in config file discovery. - Messages sent to reporter are now copied so a reporter cannot modify the message sent to other reporters. - Fixed a case where custom plugins specified by command line could silently fail. Specifically, if a plugin relies on the ``init-hook`` option changing ``sys.path`` before it can be imported, this will now emit a ``bad-plugin-value`` message. Before this change, it would silently fail to register the plugin for use, but would load any configuration, which could have unintended effects. - Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. - Update wording for ``arguments-differ`` and ``arguments-renamed`` to clarify overriding object. - ``disable-next`` is now correctly scoped to only the succeeding line. - Fixed a crash in the ``unhashable-member`` checker when using a ``lambda`` as a dict key. - Add ``mailcap`` to deprecated modules list. - Fix a crash in the ``modified-iterating-dict`` checker involving instance attributes. - ``invalid-class-object`` does not crash anymore when ``__class__`` is assigned alongside another variable. - ``--help-msg`` now accepts a comma-separated list of message IDs again. - Allow specifying non-builtin exceptions in the ``overgeneral-exception`` option using an exception's qualified name. - Report ``no-self-argument`` rather than ``no-method-argument`` for methods with variadic arguments. - Fixed an issue where ``syntax-error`` couldn't be raised on files with invalid encodings. - Fix false positive for ``redefined-outer-name`` when aliasing ``typing`` e.g. as ``t`` and guarding imports under ``t.TYPE_CHECKING``. - Fixed a crash of the ``modified_iterating`` checker when iterating on a set defined as a class attribute. - Use ``py-version`` to determine if a message should be emitted for messages defined with ``max-version`` or ``min-version``. - Improve ``bad-thread-instantiation`` check to warn if ``target`` is not passed in as a keyword argument or as a second argument. - Fixes edge case of custom method named ``next`` raised an astroid error. - Fixed a multi-processing crash that prevents using any more than 1 thread on MacOS. The returned module objects and errors that were cached by the linter plugin loader cannot be reliably pickled. This means that ``dill`` would throw an error when attempting to serialise the linter object for multi-processing use. - Fix crash that happened when parsing files with unexpected encoding starting with 'utf' like ``utf13``. - Fix a crash when a child class with an ``__init__`` method inherits from a parent class with an ``__init__`` class attribute. - Fix ``valid-metaclass-classmethod-first-arg`` default config value from "cls" to "mcs" which would cause both a false-positive and false-negative. - Fixes a crash in the ``unnecessary_list_index_lookup`` check when using ``enumerate`` with ``start`` and a class attribute. - Fixes a crash in ``stop-iteration-return`` when the ``next`` builtin is called without arguments. - When pylint exit due to bad arguments being provided the exit code will now be the expected ``32``. - Fixes a ``ModuleNotFound`` exception when running pylint on a Django project with the ``pylint_django`` plugin enabled. - Fixed a crash when inferring a value and using its qname on a slice that was being incorrectly called. - Use better regex to check for private attributes. - Fix issue with new typing Union syntax in runtime context for Python 3.10+. Other Changes ------------- - Pylint now provides basic support for Python 3.11. - Update message for ``abstract-method`` to include child class name. - Update Pyreverse's dot and plantuml printers to detect when class methods are abstract and show them with italic font. For the dot printer update the label to use html-like syntax. - The ``docparams`` extension now considers typing in Numpy style docstrings as "documentation" for the ``missing-param-doc`` message. - Relevant ``DeprecationWarnings`` are now raised with ``stacklevel=2``, so they have the callsite attached in the message. - Add a ``minimal`` option to ``pylint-config`` and its toml generator. - Add method name to the error messages of ``no-method-argument`` and ``no-self-argument``. - Prevent leaving the pip install cache in the Docker image. - Add a keyword-only ``compare_constants`` argument to ``safe_infer``. - Add ``default_enabled`` option to optional message dict. Provides an option to disable a checker message by default. To use a disabled message, the user must enable it explicitly by adding the message to the ``enable`` option. - Sort ``--generated-rcfile`` output. - epylint is now deprecated and will be removed in pylint 3.0.0. All emacs and flymake related files were removed and their support will now happen in an external repository : https://github.com/emacsorphanage/pylint. - Adds test for existing preferred-modules configuration functionality. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.28 2022/08/30 10:01:18 adam Exp $ d27 2 @ 1.28 log @py-pylint: updated to 2.15.0 In pylint 2.15.0, we added a new check missing-timeout to warn of default timeout values that could cause a program to be hanging indefinitely. We improved pylint's handling of namespace packages. More packages should be linted without resorting to using the --recursive=y option. We still welcome any community effort to help review, integrate, and add good/bad examples to the doc for 5953. This should be doable without any pylint or astroid knowledge, so this is the perfect entrypoint if you want to contribute to pylint or open source without any experience with our code! Internally, we changed the way we generate the release notes, thanks to DudeNr33. There will be no more conflict resolution to do in the changelog, and every contributor rejoice. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.27 2022/06/15 11:43:05 adam Exp $ d79 2 d189 2 d193 2 d199 2 d209 2 @ 1.27 log @py-pylint: updated to 2.14.2 What's New in Pylint 2.14.2? Fixed a false positive for unused-variable when a function returns an argparse.Namespace object. Avoided raising an identical undefined-loop-variable message twice on the same line. Don't crash if lint.run._query_cpu() is run within a Kubernetes Pod, that has only a fraction of a cpu core assigned. Just go with one process then. Fixed a false positive in consider-using-f-string if the left side of a % is not a string. Fixed a false positive in unnecessary-list-index-lookup and unnecessary-dict-index-lookup when the subscript is updated in the body of a nested loop. Fixed an issue with multi-line init-hook options which did not record the line endings. Fixed a false positive for used-before-assignment when a try block returns but an except handler defines a name via type annotation. --errors-only no longer enables previously disabled messages. It was acting as "emit all and only error messages" without being clearly documented that way. What's New in Pylint 2.14.1? Avoid reporting unnecessary-dict-index-lookup or unnecessary-list-index-lookup when the index lookup is part of a destructuring assignment. Fixed parsing of unrelated options in tox.ini. Fixed a crash when linting __new__() methods that return a call expression. Don't crash if we can't find the user's home directory. Fixed false positives for unused-import when aliasing typing e.g. as t and guarding imports under t.TYPE_CHECKING. Fixed a false positive regression in 2.13 for used-before-assignment where it is safe to rely on a name defined only in an except block because the else block returned. Fixed the use of abbreviations for some special options on the command line. Fix a crash in the optional pylint.extensions.private_import extension. bad-option-value (E0012) is now a warning unknown-option-value (W0012). Deleted messages that do not exist anymore in pylint now raise useless-option-value (R0022) instead of bad-option-value. This allows to distinguish between genuine typos and configuration that could be cleaned up. Existing message disables for bad-option-value will still work on both new messages. What's New in Pylint 2.14.0? The refactoring checker now also raises 'consider-using-generator' messages for max(), min() and sum(). We have improved our recognition of inline disable and enable comments. It is now possible to disable bad-option-value inline (as long as you disable it before the bad option value is raised, i.e. disable=bad-option-value,bad-message not disable=bad-message,bad-option-value ) as well as certain other previously unsupported messages. Fixed a crash in the unused-private-member checker involving chained private attributes. Added new checker comparison-of-constants. pylint.pyreverse.ASTWalker has been removed, as it was only used internally by a single child class. pyreverse: Resolving and displaying implemented interfaces that are defined by the __implements__ attribute has been deprecated and will be removed in 3.0. Fix syntax for return type annotations in MermaidJS diagrams produced with pyreverse. Fix type annotations of class and instance attributes using the alternative union syntax in pyreverse diagrams. Fix unexpected-special-method-signature false positive for __init_subclass__ methods with one or more arguments. Started ignoring underscore as a local variable for too-many-locals. Improved wording of the message of deprecated-module Pylint now requires Python 3.7.2 or newer to run. BaseChecker classes now require the linter argument to be passed. Fix a failure to respect inline disables for fixme occurring on the last line of a module when pylint is launched with --enable=fixme. Update invalid-slots-object message to show bad object rather than its inferred value. The main checker name is now main instead of master. The configuration does not need to be updated as sections' name are optional. Don't report useless-super-delegation for the __hash__ method in classes that also override the __eq__ method. Added new checker typevar-name-mismatch: TypeVar must be assigned to a variable with the same name as its name argument. Pylint can now be installed with an extra-require called spelling (pip install pylint[spelling]). This will add pyenchant to pylint's dependencies. You will still need to install the requirements for pyenchant (the enchant library and any dictionaries) yourself. You will also need to set the spelling-dict option. Removed the assign-to-new-keyword message as there are no new keywords in the supported Python versions any longer. Fixed a crash in the not-an-iterable checker involving multiple starred expressions inside a call. Fixed a crash in the docparams extension involving raising the result of a function. Fixed failure to enable deprecated-module after a disable=all by making ImportsChecker solely responsible for emitting deprecated-module instead of sharing responsibility with StdlibChecker. (This could have led to double messages.) The no-init (W0232) warning has been removed. It's ok to not have an __init__ in a class. The config attribute of BaseChecker has been deprecated. You can use checker.linter.config to access the global configuration object instead of a checker-specific object. The level attribute of BaseChecker has been deprecated: everything is now displayed in --help, all the time. The options_providers attribute of ArgumentsManager has been deprecated. The option_groups attribute of PyLinter has been deprecated. All Interface classes in pylint.interfaces have been deprecated. You can subclass the respective normal classes to get the same behaviour. The __implements__ functionality was based on a rejected PEP from 2001: https://peps.python.org/pep-0245/ The set_option method of BaseChecker has been deprecated. You can use checker.linter.set_option to set an option on the global configuration object instead of a checker-specific object. implicit-str-concat will now be raised on calls like open("myfile.txt" "a+b") too. The config attribute of PyLinter is now of the argparse.Namespace type instead of optparse.Values. MapReduceMixin has been deprecated. BaseChecker now implements get_map_data and reduce_map_data. If a checker actually needs to reduce data it should define get_map_data as returning something different than None and let its reduce_map_data handle a list of the types returned by get_map_data. An example can be seen by looking at pylint/checkers/similar.py. UnsupportedAction has been deprecated. OptionsManagerMixIn has been deprecated. OptionParser has been deprecated. Option has been deprecated. OptionsProviderMixIn has been deprecated. ConfigurationMixIn has been deprecated. get_global_config has been deprecated. You can now access all global options from checker.linter.config. OptionsManagerMixIn has been replaced with ArgumentsManager. ArgumentsManager is considered private API and most methods that were public on OptionsManagerMixIn have now been deprecated and will be removed in a future release. OptionsProviderMixIn has been replaced with ArgumentsProvider. ArgumentsProvider is considered private API and most methods that were public on OptionsProviderMixIn have now been deprecated and will be removed in a future release. interfaces.implements has been deprecated and will be removed in 3.0. Please use standard inheritance patterns instead of __implements__. invalid-enum-extension: Used when a class tries to extend an inherited Enum class. Added the unrecognized-option message. Raised if we encounter any unrecognized options. Added new checker typevar-double-variance: The "covariant" and "contravariant" keyword arguments cannot both be set to "True" in a TypeVar. Re-enable checker bad-docstring-quotes for Python <= 3.7. Removed the broken generate-man option. Fix false negative for bad-string-format-type if the value to be formatted is passed in as a variable holding a constant. Add new check unnecessary-dunder-call for unnecessary dunder method calls. The cache-max-size-none checker has been renamed to method-cache-max-size-none. The method-cache-max-size-none checker will now also check functools.cache. unnecessary-lambda-assignment: Lambda expression assigned to a variable. Define a function using the "def" keyword instead. unnecessary-direct-lambda-call: Lambda expression called directly. Execute the expression inline instead. potential-index-error: Emitted when the index of a list or tuple exceeds its length. This checker is currently quite conservative to avoid false positives. We welcome suggestions for improvements. Added optional extension redefined-loop-name to emit messages when a loop variable is redefined in the loop body. Changed message type from redefined-outer-name to redefined-loop-name (optional extension) for redefinitions of outer loop variables by inner loops. The ignore-mixin-members option has been deprecated. You should now use the new ignored-checks-for-mixins option. bad-option-value will be emitted whenever a configuration value or command line invocation includes an unknown message. Avoid reporting superfluous-parens on expressions using the is not operator. Added the super-without-brackets checker, raised when a super call is missing its brackets. Added the generate-toml-config option. Added new checker unnecessary-list-index-lookup for indexing into a list while iterating over enumerate(). Fix falsely issuing useless-suppression on the wrong-import-position checker. Fixed false positive no-member for Enums with self-defined members. Fix false negative for no-member when attempting to assign an instance attribute to itself without any prior assignment. The concept of checker priority has been removed. Add a new command line option --minimal-messages-config for pytest, which disables all irrelevant messages when running the functional tests. duplicate-argument-name now only raises once for each set of duplicated arguments. Fix bug where specifically enabling just await-outside-async was not possible. The set_config_directly decorator has been removed. Added new message called duplicate-value which identifies duplicate values inside sets. Pylint now expands the user path (i.e. ~ to home/yusef/) and expands environment variables (i.e. home/$USER/$project to home/yusef/pylint for USER=yusef and project=pylint) for pyreverse's output-directory, import-graph, ext-import-graph, int-import-graph options, and the spell checker's spelling-private-dict-file option. Created NoSelfUseChecker extension and moved the no-self-use check. You now need to explicitly enable this check using load-plugins=pylint.extensions.no_self_use. Fix saving of persistent data files in environments where the user's cache directory and the linted file are on a different drive. Don't emit unsubscriptable-object for string annotations. Pylint doesn't check if class is only generic in type stubs only. Fix pyreverse crash RuntimeError: dictionary changed size during iteration Fix bug where it writes a plain text error message to stdout, invalidating output formats. is_class_subscriptable_pep585_with_postponed_evaluation_enabled has been deprecated. Use is_postponed_evaluation_enabled(node) and is_node_in_type_annotation_context(node) instead. Update ranges for using-constant-test and missing-parentheses-for-call-in-test error messages. Don't emit no-member inside type annotations with from __future__ import annotations. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.26 2022/04/20 10:51:27 adam Exp $ d7 10 a16 6 ${PYSITELIB}/${EGG_INFODIR}/PKG-INFO ${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt ${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt ${PYSITELIB}/${EGG_INFODIR}/entry_points.txt ${PYSITELIB}/${EGG_INFODIR}/requires.txt ${PYSITELIB}/${EGG_INFODIR}/top_level.txt a18 1 ${PYSITELIB}/pylint/__init__.pyo a20 1 ${PYSITELIB}/pylint/__main__.pyo a22 1 ${PYSITELIB}/pylint/__pkginfo__.pyo a24 1 ${PYSITELIB}/pylint/checkers/__init__.pyo a26 1 ${PYSITELIB}/pylint/checkers/async.pyo a28 1 ${PYSITELIB}/pylint/checkers/base/__init__.pyo a30 1 ${PYSITELIB}/pylint/checkers/base/basic_checker.pyo a32 1 ${PYSITELIB}/pylint/checkers/base/basic_error_checker.pyo a34 1 ${PYSITELIB}/pylint/checkers/base/comparison_checker.pyo a36 1 ${PYSITELIB}/pylint/checkers/base/docstring_checker.pyo a38 1 ${PYSITELIB}/pylint/checkers/base/name_checker/__init__.pyo a40 1 ${PYSITELIB}/pylint/checkers/base/name_checker/checker.pyo a42 1 ${PYSITELIB}/pylint/checkers/base/name_checker/naming_style.pyo a44 1 ${PYSITELIB}/pylint/checkers/base/pass_checker.pyo a46 1 ${PYSITELIB}/pylint/checkers/base_checker.pyo a48 1 ${PYSITELIB}/pylint/checkers/classes/__init__.pyo a50 1 ${PYSITELIB}/pylint/checkers/classes/class_checker.pyo a52 1 ${PYSITELIB}/pylint/checkers/classes/special_methods_checker.pyo a54 1 ${PYSITELIB}/pylint/checkers/deprecated.pyo a56 1 ${PYSITELIB}/pylint/checkers/design_analysis.pyo a58 1 ${PYSITELIB}/pylint/checkers/dunder_methods.pyo a60 1 ${PYSITELIB}/pylint/checkers/ellipsis_checker.pyo a62 1 ${PYSITELIB}/pylint/checkers/exceptions.pyo a64 1 ${PYSITELIB}/pylint/checkers/format.pyo a66 1 ${PYSITELIB}/pylint/checkers/imports.pyo a68 1 ${PYSITELIB}/pylint/checkers/lambda_expressions.pyo a70 1 ${PYSITELIB}/pylint/checkers/logging.pyo d73 2 a74 1 ${PYSITELIB}/pylint/checkers/mapreduce_checker.pyo a76 1 ${PYSITELIB}/pylint/checkers/misc.pyo a78 1 ${PYSITELIB}/pylint/checkers/modified_iterating_checker.pyo a80 1 ${PYSITELIB}/pylint/checkers/newstyle.pyo a82 1 ${PYSITELIB}/pylint/checkers/non_ascii_names.pyo a84 1 ${PYSITELIB}/pylint/checkers/raw_metrics.pyo a86 1 ${PYSITELIB}/pylint/checkers/refactoring/__init__.pyo a88 1 ${PYSITELIB}/pylint/checkers/refactoring/implicit_booleaness_checker.pyo a90 1 ${PYSITELIB}/pylint/checkers/refactoring/not_checker.pyo a92 1 ${PYSITELIB}/pylint/checkers/refactoring/recommendation_checker.pyo a94 1 ${PYSITELIB}/pylint/checkers/refactoring/refactoring_checker.pyo a96 1 ${PYSITELIB}/pylint/checkers/similar.pyo a98 1 ${PYSITELIB}/pylint/checkers/spelling.pyo a100 1 ${PYSITELIB}/pylint/checkers/stdlib.pyo a102 1 ${PYSITELIB}/pylint/checkers/strings.pyo a104 1 ${PYSITELIB}/pylint/checkers/threading_checker.pyo a106 1 ${PYSITELIB}/pylint/checkers/typecheck.pyo a108 1 ${PYSITELIB}/pylint/checkers/unicode.pyo a110 1 ${PYSITELIB}/pylint/checkers/unsupported_version.pyo a112 1 ${PYSITELIB}/pylint/checkers/utils.pyo a114 1 ${PYSITELIB}/pylint/checkers/variables.pyo a116 1 ${PYSITELIB}/pylint/config/__init__.pyo a118 1 ${PYSITELIB}/pylint/config/_pylint_config/__init__.pyo a120 1 ${PYSITELIB}/pylint/config/_pylint_config/generate_command.pyo a122 1 ${PYSITELIB}/pylint/config/_pylint_config/help_message.pyo a124 1 ${PYSITELIB}/pylint/config/_pylint_config/main.pyo a126 1 ${PYSITELIB}/pylint/config/_pylint_config/setup.pyo a128 1 ${PYSITELIB}/pylint/config/_pylint_config/utils.pyo a130 1 ${PYSITELIB}/pylint/config/argument.pyo a132 1 ${PYSITELIB}/pylint/config/arguments_manager.pyo a134 1 ${PYSITELIB}/pylint/config/arguments_provider.pyo a136 1 ${PYSITELIB}/pylint/config/callback_actions.pyo a138 1 ${PYSITELIB}/pylint/config/config_file_parser.pyo a140 1 ${PYSITELIB}/pylint/config/config_initialization.pyo a142 1 ${PYSITELIB}/pylint/config/configuration_mixin.pyo a144 1 ${PYSITELIB}/pylint/config/deprecation_actions.pyo a146 1 ${PYSITELIB}/pylint/config/environment_variable.pyo a148 1 ${PYSITELIB}/pylint/config/exceptions.pyo a150 1 ${PYSITELIB}/pylint/config/find_default_config_files.pyo a152 1 ${PYSITELIB}/pylint/config/help_formatter.pyo a154 1 ${PYSITELIB}/pylint/config/option.pyo a156 1 ${PYSITELIB}/pylint/config/option_manager_mixin.pyo a158 1 ${PYSITELIB}/pylint/config/option_parser.pyo a160 1 ${PYSITELIB}/pylint/config/options_provider_mixin.pyo a162 1 ${PYSITELIB}/pylint/config/utils.pyo a164 1 ${PYSITELIB}/pylint/constants.pyo a166 1 ${PYSITELIB}/pylint/epylint.pyo a168 1 ${PYSITELIB}/pylint/exceptions.pyo a170 1 ${PYSITELIB}/pylint/extensions/__init__.pyo a172 1 ${PYSITELIB}/pylint/extensions/_check_docs_utils.pyo a174 1 ${PYSITELIB}/pylint/extensions/bad_builtin.pyo a176 1 ${PYSITELIB}/pylint/extensions/broad_try_clause.pyo a178 1 ${PYSITELIB}/pylint/extensions/check_elif.pyo a180 1 ${PYSITELIB}/pylint/extensions/code_style.pyo a182 1 ${PYSITELIB}/pylint/extensions/comparetozero.pyo a184 1 ${PYSITELIB}/pylint/extensions/comparison_placement.pyo a186 1 ${PYSITELIB}/pylint/extensions/confusing_elif.pyo a188 1 ${PYSITELIB}/pylint/extensions/consider_ternary_expression.pyo a190 1 ${PYSITELIB}/pylint/extensions/docparams.pyo a192 1 ${PYSITELIB}/pylint/extensions/docstyle.pyo a194 1 ${PYSITELIB}/pylint/extensions/empty_comment.pyo a196 1 ${PYSITELIB}/pylint/extensions/emptystring.pyo a198 1 ${PYSITELIB}/pylint/extensions/eq_without_hash.pyo a200 1 ${PYSITELIB}/pylint/extensions/for_any_all.pyo a202 1 ${PYSITELIB}/pylint/extensions/mccabe.pyo a204 1 ${PYSITELIB}/pylint/extensions/no_self_use.pyo a206 1 ${PYSITELIB}/pylint/extensions/overlapping_exceptions.pyo a208 1 ${PYSITELIB}/pylint/extensions/private_import.pyo a210 1 ${PYSITELIB}/pylint/extensions/redefined_loop_name.pyo a212 1 ${PYSITELIB}/pylint/extensions/redefined_variable_type.pyo a214 1 ${PYSITELIB}/pylint/extensions/set_membership.pyo a216 1 ${PYSITELIB}/pylint/extensions/typing.pyo a218 1 ${PYSITELIB}/pylint/extensions/while_used.pyo a220 1 ${PYSITELIB}/pylint/graph.pyo a222 1 ${PYSITELIB}/pylint/interfaces.pyo a224 1 ${PYSITELIB}/pylint/lint/__init__.pyo a226 1 ${PYSITELIB}/pylint/lint/base_options.pyo a228 1 ${PYSITELIB}/pylint/lint/caching.pyo a230 1 ${PYSITELIB}/pylint/lint/expand_modules.pyo a232 1 ${PYSITELIB}/pylint/lint/message_state_handler.pyo a234 1 ${PYSITELIB}/pylint/lint/parallel.pyo a236 1 ${PYSITELIB}/pylint/lint/pylinter.pyo a238 1 ${PYSITELIB}/pylint/lint/report_functions.pyo a240 1 ${PYSITELIB}/pylint/lint/run.pyo a242 1 ${PYSITELIB}/pylint/lint/utils.pyo a244 1 ${PYSITELIB}/pylint/message/__init__.pyo a246 1 ${PYSITELIB}/pylint/message/_deleted_message_ids.pyo a248 1 ${PYSITELIB}/pylint/message/message.pyo a250 1 ${PYSITELIB}/pylint/message/message_definition.pyo a252 1 ${PYSITELIB}/pylint/message/message_definition_store.pyo a254 1 ${PYSITELIB}/pylint/message/message_id_store.pyo a256 1 ${PYSITELIB}/pylint/pyreverse/__init__.pyo a258 1 ${PYSITELIB}/pylint/pyreverse/diadefslib.pyo a260 1 ${PYSITELIB}/pylint/pyreverse/diagrams.pyo a262 1 ${PYSITELIB}/pylint/pyreverse/dot_printer.pyo a264 1 ${PYSITELIB}/pylint/pyreverse/inspector.pyo a266 1 ${PYSITELIB}/pylint/pyreverse/main.pyo a268 1 ${PYSITELIB}/pylint/pyreverse/mermaidjs_printer.pyo a270 1 ${PYSITELIB}/pylint/pyreverse/plantuml_printer.pyo a272 1 ${PYSITELIB}/pylint/pyreverse/printer.pyo a274 1 ${PYSITELIB}/pylint/pyreverse/printer_factory.pyo a276 1 ${PYSITELIB}/pylint/pyreverse/utils.pyo a278 1 ${PYSITELIB}/pylint/pyreverse/vcg_printer.pyo a280 1 ${PYSITELIB}/pylint/pyreverse/writer.pyo a282 1 ${PYSITELIB}/pylint/reporters/__init__.pyo a284 1 ${PYSITELIB}/pylint/reporters/base_reporter.pyo a286 1 ${PYSITELIB}/pylint/reporters/collecting_reporter.pyo a288 1 ${PYSITELIB}/pylint/reporters/json_reporter.pyo a290 1 ${PYSITELIB}/pylint/reporters/multi_reporter.pyo a292 1 ${PYSITELIB}/pylint/reporters/reports_handler_mix_in.pyo a294 1 ${PYSITELIB}/pylint/reporters/text.pyo a296 1 ${PYSITELIB}/pylint/reporters/ureports/__init__.pyo a298 1 ${PYSITELIB}/pylint/reporters/ureports/base_writer.pyo a300 1 ${PYSITELIB}/pylint/reporters/ureports/nodes.pyo a302 1 ${PYSITELIB}/pylint/reporters/ureports/text_writer.pyo d305 14 a318 1 ${PYSITELIB}/pylint/testutils/__init__.pyo a320 1 ${PYSITELIB}/pylint/testutils/_run.pyo a322 1 ${PYSITELIB}/pylint/testutils/checker_test_case.pyo a324 1 ${PYSITELIB}/pylint/testutils/configuration_test.pyo a326 1 ${PYSITELIB}/pylint/testutils/constants.pyo a328 1 ${PYSITELIB}/pylint/testutils/decorator.pyo a330 1 ${PYSITELIB}/pylint/testutils/functional/__init__.pyo a332 1 ${PYSITELIB}/pylint/testutils/functional/find_functional_tests.pyo a334 1 ${PYSITELIB}/pylint/testutils/functional/lint_module_output_update.pyo a336 1 ${PYSITELIB}/pylint/testutils/functional/test_file.pyo a338 1 ${PYSITELIB}/pylint/testutils/functional_test_file.pyo a340 1 ${PYSITELIB}/pylint/testutils/get_test_info.pyo a342 1 ${PYSITELIB}/pylint/testutils/global_test_linter.pyo a344 1 ${PYSITELIB}/pylint/testutils/lint_module_test.pyo a346 4 ${PYSITELIB}/pylint/testutils/output_line.pyo ${PYSITELIB}/pylint/testutils/primer.py ${PYSITELIB}/pylint/testutils/primer.pyc ${PYSITELIB}/pylint/testutils/primer.pyo a348 1 ${PYSITELIB}/pylint/testutils/pyreverse.pyo a350 1 ${PYSITELIB}/pylint/testutils/reporter_for_tests.pyo a353 1 ${PYSITELIB}/pylint/testutils/tokenize_str.pyo a355 1 ${PYSITELIB}/pylint/testutils/unittest_linter.pyo a357 1 ${PYSITELIB}/pylint/testutils/utils.pyo a359 1 ${PYSITELIB}/pylint/typing.pyo a361 1 ${PYSITELIB}/pylint/utils/__init__.pyo a363 1 ${PYSITELIB}/pylint/utils/ast_walker.pyo a365 1 ${PYSITELIB}/pylint/utils/docs.pyo a367 1 ${PYSITELIB}/pylint/utils/file_state.pyo a369 1 ${PYSITELIB}/pylint/utils/linterstats.pyo a371 1 ${PYSITELIB}/pylint/utils/pragma_parser.pyo a373 1 ${PYSITELIB}/pylint/utils/utils.pyo @ 1.26 log @py-pylint: updated to 2.13.6 What's New in Pylint 2.13.6? ============================ * Fix a crash in the ``unsupported-membership-test`` checker when assigning multiple constants to class attributes including ``__iter__`` via unpacking. * Asterisks are no longer required in Sphinx and Google style parameter documentation for ``missing-param-doc`` and are parsed correctly. * Fixed a false positive for ``unused-variable`` when a builtin specified in ``--additional-builtins`` is given a type annotation. * Fixed an ``AstroidError`` in 2.13.0 raised by the ``duplicate-code`` checker with ``ignore-imports`` or ``ignore-signatures`` enabled. What's New in Pylint 2.13.5? ============================ * Fix false positive regression in 2.13.0 for ``used-before-assignment`` for homonyms between variable assignments in try/except blocks and variables in subscripts in comprehensions. * ``lru-cache-decorating-method`` has been renamed to ``cache-max-size-none`` and will only be emitted when ``maxsize`` is ``None``. * Fix false positive for ``unused-import`` when disabling both ``used-before-assignment`` and ``undefined-variable``. * Narrow the scope of the ``unnecessary-ellipsis`` checker to: * functions & classes which contain both a docstring and an ellipsis. * A body which contains an ellipsis ``nodes.Expr`` node & at least one other statement. * Fix false positive for ``used-before-assignment`` for assignments taking place via nonlocal declarations after an earlier type annotation. * Fix crash for ``redefined-slots-in-subclass`` when the type of the slot is not a const or a string. * Only raise ``not-callable`` when all the inferred values of a property are not callable. * Fix a false negative for ``subclassed-final-class`` when a set of other messages were disabled. What's New in Pylint 2.13.4? ============================ * Fix false positive regression in 2.13.0 for ``used-before-assignment`` for homonyms between variable assignments in try/except blocks and variables in a comprehension's filter. * Include ``testing_pylintrc`` in source and wheel distributions. * Fix crash in ``super-init-not-called`` checker when using ``ctypes.Union``. * Fix crash for ``unneccessary-ellipsis`` checker when an ellipsis is used inside of a container or a lambda expression. What's New in Pylint 2.13.3? ============================ * Fix false positive for ``unnecessary-ellipsis`` when using an ellipsis as a default argument. * Fix crash involving unbalanced tuple unpacking. * Fix false positive for 'nonexistent-operator' when repeated '-' are separated (e.g. by parens). What's New in Pylint 2.13.2? ============================ * Fix crash when subclassing a ``namedtuple``. * Fix false positive for ``superfluous-parens`` for patterns like "return (a or b) in iterable". * Fix a false negative regression in 2.13.0 where ``protected-access`` was not raised on functions. * Better error messages in case of crash if pylint can't write the issue template. What's New in Pylint 2.13.1? ============================ * Fix a regression in 2.13.0 where ``used-before-assignment`` was emitted for the usage of a nonlocal in a try block. * Avoid emitting ``raising-bad-type`` when there is inference ambiguity on the variable being raised. * Loosen TypeVar default name pattern a bit to allow names with multiple uppercase characters. E.g. ``HVACModeT`` or ``IPAddressT``. * Fixed false positive for ``unused-argument`` when a ``nonlocal`` name is used in a nested function that is returned without being called by its parent. * Fix program crash for ``modified_iterating-list/set/dict`` when the list/dict/set being iterated through is a function call. * Don't emit ``broken-noreturn`` and ``broken-collections-callable`` errors inside ``if TYPE_CHECKING`` blocks. What's New in Pylint 2.13.0? ============================ * Add missing dunder methods to ``unexpected-special-method-signature`` check. * No longer emit ``no-member`` in for loops that reference ``self`` if the binary operation that started the for loop uses a ``self`` that is encapsulated in tuples or lists. * Output better error message if unsupported file formats are used with ``pyreverse``. * Fix pyreverse diagrams type hinting for classmethods and staticmethods. * Fix pyreverse diagrams type hinting for methods returning None. * Fix matching ``--notes`` options that end in a non-word character. * Updated the position of messages for class and function defintions to no longer cover the complete definition. Only the ``def`` or ``class`` + the name of the class/function are covered. * ``using-f-string-in-unsupported-version`` and ``using-final-decorator-in-unsupported-version`` msgids were renamed from ``W1601`` and ``W1602`` to ``W2601`` and ``W2602``. Disabling using these msgids will break. This is done in order to restore consistency with the already existing msgids for ``apply-builtin`` and ``basestring-builtin`` from the now deleted python 3K+ checker. There is now a check that we're not using existing msgids or symbols from deleted checkers. * The line numbering for messages related to function arguments is now more accurate. This can require some message disables to be relocated to updated positions. * Add ``--recursive`` option to allow recursive discovery of all modules and packages in subtree. Running pylint with ``--recursive=y`` option will check all discovered ``.py`` files and packages found inside subtree of directory provided as parameter to pylint. * Add ``modified-iterating-list``, ``modified-iterating-dict`` and ``modified-iterating-set``, emitted when items are added to or removed from respectively a list, dictionary or set being iterated through. * Fix false-negative for ``assignment-from-none`` checker using list.sort() method. * New extension ``import-private-name``: indicate imports of external private packages and objects (prefixed with ``_``). It can be loaded using ``load-plugins=pylint.extensions.private_import``. * Fixed crash from ``arguments-differ`` and ``arguments-renamed`` when methods were defined outside the top level of a class. * Removed the deprecated ``check_docs`` extension. You can use the ``docparams`` checker to get the checks previously included in ``check_docs``. * Added a ``testutil`` extra require to the packaging, as ``gitpython`` should not be a dependency all the time but is still required to use the primer helper code in ``pylint.testutil``. You can install it with ``pip install pylint[testutil]``. * Reinstated checks from the python3 checker that are still useful for python 3 (``eq-without-hash``). This is now in the ``pylint.extensions.eq_without_hash`` optional extension. * Fixed an issue where ``ungrouped-imports`` could not be disabled without raising ``useless-suppression``. * Added several checkers to deal with unicode security issues (see `Trojan Sources `_ and `PEP 672 `_ for details) that also concern the readability of the code. In detail the following checks were added: * ``bad-file-encoding`` checks that the file is encoded in UTF-8 as suggested by `PEP8 `_. UTF-16 and UTF-32 are `not supported by Python `_ at the moment. If this ever changes ``invalid-unicode-codec`` checks that they aren't used, to allow for backwards compatibility. * ``bidirectional-unicode`` checks for bidirectional unicode characters that could make code execution different than what the user expects. * ``invalid-character-backspace``, ``invalid-character-carriage-return``, ``invalid-character-sub``, ``invalid-character-esc``, ``invalid-character-zero-width-space`` and ``invalid-character-nul`` to check for possibly harmful unescaped characters. * Use the ``tomli`` package instead of ``toml`` to parse ``.toml`` files. * Fix false positive - Allow unpacking of ``self`` in a subclass of ``typing.NamedTuple``. * Fixed false negative ``unpacking-non-sequence`` when value is an empty list. * Better warning messages for useless else or elif when a function returns early. * Fixed false positive ``consider-using-dict-comprehension`` when creating a dict using a list of tuples where key AND value vary depending on the same condition. * Fixed false positive for ``global-variable-undefined`` when ``global`` is used with a class name * Fixed false positive for ``unused-variable`` when a ``nonlocal`` name is assigned as part of a multi-name assignment. * Fixed a crash in ``unspecified-encoding`` checker when providing ``None`` to the ``mode`` argument of an ``open()`` call. * Fixed a crash involving a ``NewType`` named with an f-string. * Improved ``bad-open-mode`` message when providing ``None`` to the ``mode`` argument of an ``open()`` call. * Added ``lru-cache-decorating-method`` checker with checks for the use of ``functools.lru_cache`` on class methods. This is unrecommended as it creates memory leaks by never letting the instance getting garbage collected. * Fixed crash with recursion error for inference of class attributes that referenced the class itself. * Fixed false positive for ``unused-argument`` when a method overridden in a subclass does nothing with the value of a keyword-only argument. * The issue template for crashes is now created for crashes which were previously not covered by this mechanism. * Rewrote checker for ``non-ascii-name``. It now ensures __all__ Python names are ASCII and also properly checks the names of imports (``non-ascii-module-import``) as well as file names (``non-ascii-file-name``) and emits their respective new warnings. Non ASCII characters could be homoglyphs (look alike characters) and hard to enter on a non specialized keyboard. See `Confusable Characters in PEP 672 `_ * When run in parallel mode ``pylint`` now pickles the data passed to subprocesses with the ``dill`` package. The ``dill`` package has therefore been added as a dependency. * An astroid issue where symlinks were not being taken into account was fixed * Fix a crash in ``unused-private-member`` checker when analyzing code using ``type(self)`` in bound methods. * Optimize parsing of long lines when ``missing-final-newline`` is enabled. * Fix false positives for ``used-before-assignment`` from using named expressions in a ternary operator test and using that expression as a call argument. * Fix false positive for ``undefined-variable`` when ``namedtuple`` class attributes are used as return annotations. * Fix false negative for ``undefined-variable`` and related variable messages when the same undefined variable is used as a type annotation and is accessed multiple times, or is used as a default argument to a function. * Pyreverse - add output in mermaidjs format * Emit ``used-before-assignment`` instead of ``undefined-variable`` when attempting to access unused type annotations. * Added confidence level ``CONTROL_FLOW`` for warnings relying on assumptions about control flow. * ``used-before-assignment`` now considers that assignments in a try block may not have occurred when the except or finally blocks are executed. * Fixed false negative for ``used-before-assignment`` when a conditional or context manager intervened before the try statement that suggested it might fail. * Fixed false negative for ``used-before-assignment`` in finally blocks if an except handler did not define the assignment that might have failed in the try block. * Fixed extremely long processing of long lines with comma's. * Fixed crash on properties and inherited class methods when comparing them for equality against an empty dict. * Fixed a false positive for ``assigning-non-slot`` when the slotted class defined ``__setattr__``. * Fixed a false positive for ``invalid-class-object`` when the object being assigned to the ``__class__`` attribute is uninferable. * Fixed false positive for ``used-before-assignment`` with self-referential type annotation in conditional statements within class methods. * Add checker ``redefined-slots-in-subclass``: Emitted when a slot is redefined in a subclass. * Fixed false positive for ``global-variable-not-assigned`` when the ``del`` statement is used * By default, pylint does no longer take files starting with ``.#`` into account. Those are considered `emacs file locks`. See https://www.gnu.org/software/emacs/manual/html_node/elisp/File-Locks.html. This behavior can be reverted by redefining the ``ignore-patterns`` option. * Fixed a false positive for ``used-before-assignment`` when a named expression appears as the first value in a container. * ``used-before-assignment`` now assumes that assignments in except blocks may not have occurred and warns accordingly. * When evaluating statements after an except block, ``used-before-assignment`` assumes that assignments in the except blocks took place if the corresponding try block contained a return statement. * Fixed a false negative for ``used-before-assignment`` when some but not all except handlers defined a name relied upon after an except block when the corresponding try block contained a return statement. * When evaluating statements in the ``else`` clause of a loop, ``used-before-assignment`` assumes that assignments in the except blocks took place if the except handlers constituted the only ways for the loop to finish without breaking early. * ``used-before-assignment`` now checks names in try blocks. * Fixed false positive with ``used-before-assignment`` for assignment expressions in lambda statements. * Fixed a false positive (affecting unreleased development) for ``used-before-assignment`` involving homonyms between filtered comprehensions and assignments in except blocks. * Fixed crash with slots assignments and annotated assignments. * Fixed crash on list comprehensions that used ``type`` as inner variable name. * Fixed crash in ``use-maxsplit-arg`` checker when providing the ``sep`` argument to ``str.split()`` by keyword. * Fix false positive for ``unused-variable`` for a comprehension variable matching an outer scope type annotation. * Fix false negative for ``undefined-variable`` for a variable used multiple times in a comprehension matching an unused outer scope type annotation. * Some files in ``pylint.testutils`` were deprecated. In the future imports should be done from the ``pylint.testutils.functional`` namespace directly. * Fixed false positives for ``no-value-for-parameter`` with variadic positional arguments. * ``safe_infer`` no longer makes an inference when given two function definitions with differing numbers of arguments. * Fix ``comparison-with-callable`` false positive for callables that raise, such as typing constants. * Fixed a crash on ``__init__`` nodes when the attribute was previously uninferable due to a cache limit size. This limit can be hit when the inheritance pattern of a class (and therefore of the ``__init__`` attribute) is very large. * Fix false positive for ``used-before-assignment`` from a class definition nested under a function subclassing a class defined outside the function. * Fix ``unnecessary_dict_index_lookup`` false positive when deleting a dictionary's entry. * Fix false positive for ``used-before-assignment`` when an except handler shares a name with a test in a filtered comprehension. * Fix crash in ``unnecessary-dict-index-lookup`` checker if the output of ``items()`` is assigned to a 1-tuple. * When invoking ``pylint``, ``epylint``, ``symilar`` or ``pyreverse`` by importing them in a python file you can now pass an ``argv`` keyword besides patching ``sys.argv``. * The ``PyLinter`` class will now be initialized with a ``TextReporter`` as its reporter if none is provided. * Fix ``super-init-not-called`` when parent or ``self`` is a ``Protocol`` * Fix false positive ``not-callable`` with attributes that alias ``NamedTuple`` * Emit ``redefined-outer-name`` when a nested except handler shadows an outer one. * Fix false positive ``super-init-not-called`` for classes that inherit their ``init`` from a parent. * ``encoding`` can now be supplied as a positional argument to calls that open files without triggering ``unspecified-encoding``. * Fatal errors now emit a score of 0.0 regardless of whether the linted module contained any statements * ``fatal`` was added to the variables permitted in score evaluation expressions. * The default score evaluation now uses a floor of 0. * Fix false negative for ``consider-iterating-dictionary`` during membership checks encapsulated in iterables or ``not in`` checks * Fixed crash on uninferable decorators on Python 3.6 and 3.7 * Add checker ``unnecessary-ellipsis``: Emitted when the ellipsis constant is used unnecessarily. * Disable checker ``bad-docstring-quotes`` for Python <= 3.7, because in these versions the line numbers for decorated functions and classes are not reliable which interferes with the checker. * Fixed incorrect classification of Numpy-style docstring as Google-style docstring for docstrings with property setter documentation. Docstring classification is now based on the highest amount of matched sections instead of the order in which the docstring styles were tried. * Fixed detection of ``arguments-differ`` when superclass static methods lacked a ``@@staticmethod`` decorator. * ``TypingChecker`` * Added new check ``broken-noreturn`` to detect broken uses of ``typing.NoReturn`` if ``py-version`` is set to Python ``3.7.1`` or below. https://bugs.python.org/issue34921 * Added new check ``broken-collections-callable`` to detect broken uses of ``collections.abc.Callable`` if ``py-version`` is set to Python ``3.9.1`` or below. https://bugs.python.org/issue42965 * The ``testutils`` for unittests now accept ``end_lineno`` and ``end_column``. Tests without these will trigger a ``DeprecationWarning``. * ``arguments-differ`` will no longer complain about method redefinitions with extra parameters that have default values. * Fixed false positive ``unexpected-keyword-arg`` for decorators. * Importing the deprecated stdlib module ``xml.etree.cElementTree`` now emits ``deprecated_module``. * Disables for ``deprecated-module`` and similar warnings for stdlib features deprecated in newer versions of Python no longer raise ``useless-suppression`` when linting with older Python interpreters where those features are not yet deprecated. * Importing the deprecated stdlib module ``distutils`` now emits ``deprecated_module`` on Python 3.10+. * ``missing-raises-doc`` will now check the class hierarchy of the raised exceptions .. code-block:: python def my_function() """My function. Raises: Exception: if something fails """ raise ValueError * Allow disabling ``duplicate-code`` with a disable comment when running through pylint. * Improve ``invalid-name`` check for ``TypeVar`` names. The accepted pattern can be customized with ``--typevar-rgx``. * Added new checker ``typevar-name-missing-variance``. Emitted when a covariant or contravariant ``TypeVar`` does not end with ``_co`` or ``_contra`` respectively or when a ``TypeVar`` is not either but has a suffix. * Allow usage of mccabe 0.7.x release * Fix ``unused-private-member`` false positive when accessing private methods through ``property``. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.25 2021/12/08 16:23:48 adam Exp $ d4 1 d73 3 d88 3 d160 33 d199 9 d211 3 a213 3 ${PYSITELIB}/pylint/config/man_help_formatter.py ${PYSITELIB}/pylint/config/man_help_formatter.pyc ${PYSITELIB}/pylint/config/man_help_formatter.pyo d226 3 d289 3 d298 3 d322 6 d331 3 d352 3 d442 3 d500 3 @ 1.25 log @py-pylint: updated to 2.12.2 v2.12.2 Fixed a false positive for unused-import where everything was not analyzed properly inside typing guards. Fixed a false-positive regression for used-before-assignment for typed variables in the body of class methods that reference the same class Specified that the ignore-paths option considers "" to represent a windows directory delimiter instead of a regular expression escape character. Fixed a crash with the ignore-paths option when invoking the option via the command line. Fixed handling of Sphinx-style parameter docstrings with asterisks. These should be escaped with by prepending a "". Add endLine and endColumn keys to output of JSONReporter. Fixed handling of Google-style parameter specifications where descriptions are on the line following the parameter name. These were generating false positives for missing-param-doc. Fix false negative for consider-iterating-dictionary during membership checks encapsulated in iterables or not in checks unused-import now check all ancestors for typing guards 2.12.1 Require Python 3.6.2 to run pylint. 2.12.0 Upgrade astroid to 2.9.0 Add ability to add end_line and end_column to the --msg-template option. With the standard TextReporter this will add the line and column number of the end of a node to the output of Pylint. If these numbers are unknown, they are represented by an empty string. Introduced primer tests and a configuration tests framework. The helper classes available in pylint/testutil/ are still unstable and might be modified in the near future. Fix install graphiz message which isn't needed for puml output format. MessageTest of the unittest testutil now requires the confidence attribute to match the expected value. If none is provided it is set to UNDEFINED. add_message of the unittest testutil now actually handles the col_offset parameter and allows it to be checked against actual output in a test. Fix a crash in the check_elif extensions where an undetected if in a comprehension with an if statement within a f-string resulted in an out of range error. The checker no longer relies on counting if statements anymore and uses known if statements locations instead. It should not crash on badly parsed if statements anymore. Fix simplify-boolean-expression when condition can be inferred as False. Fix exception when pyreverse parses property function of a class. The functional testutils now accept end_lineno and end_column. Expected output files without these will trigger a DeprecationWarning. Expected output files can be easily updated with the python tests/test_functional.py --update-functional-output command. The functional testutils now correctly check the distinction betweeen HIGH and UNDEFINED confidence. Expected output files without defiend confidence levels will now trigger a DeprecationWarning. Expected output files can be easily updated with the python tests/test_functional.py --update-functional-output command. The functional test runner now supports the option min_pyver_end_position to control on which python versions the end_lineno and end_column attributes should be checked. The default value is 3.8. Fix accept-no-yields-doc and accept-no-return-doc not allowing missing yield or return documentation when a docstring is partially correct Add an optional extension consider-using-any-or-all : Emitted when a for loop only produces a boolean and could be replaced by any or all using a generator. Also suggests a suitable any or all statement. Properly identify parameters with no documentation and add new message called missing-any-param-doc Add checkers overridden-final-method & subclassed-final-class Fixed protected-access for accessing of attributes and methods of inner classes Added support for ModuleNotFoundError (import-error and no-name-in-module). ModuleNotFoundError inherits from ImportError and was added in Python 3.6 undefined-variable now correctly flags variables which only receive a type annotations and never get assigned a value undefined-variable now correctly considers the line numbering and order of classes used in metaclass declarations used-before-assignment now correctly considers references to classes as type annotation or default values in first-level methods undefined-variable and unused-variable now correctly trigger for assignment expressions in functions defaults undefined-variable now correctly triggers for assignment expressions in if ... else statements This includes a basic form of control flow inference for if ... else statements using constant boolean values Added the --enable-all-extensions command line option. It will load all available extensions which can be listed by running --list-extensions Fix bug with importing namespace packages with relative imports Improve and flatten unused-wildcard-import message In length checker, len-as-condition has been renamed as use-implicit-booleaness-not-len in order to be consistent with use-implicit-booleaness-not-comparison. Created new UnsupportedVersionChecker checker class that includes checks for features not supported by all versions indicated by a py-version. Added using-f-string-in-unsupported-version checker. Issued when py-version is set to a version that does not support f-strings (< 3.6) Fix useless-super-delegation false positive when default keyword argument is a variable. Properly emit duplicate-key when Enum members are duplicate dictionary keys Use py-version setting for alternative union syntax check (PEP 604), instead of the Python interpreter version. Subclasses of dict are regarded as reversible by the bad-reversed-sequence checker (Python 3.8 onwards). Support configuring mixin class pattern via mixin-class-rgx Added new checker use-implicit-booleaness-not-comparison: Emitted when collection literal comparison is being used to check for emptiness. mising-param-doc now correctly parses asterisks for variable length and keyword parameters mising-param-doc now correctly handles Numpy parameter documentation without explicit typing pylint no longer crashes when checking assignment expressions within if-statements Update ``literal-comparison``` checker to ignore tuple literals Normalize the input to the ignore-paths option to allow both Posix and Windows paths Fix double emitting of not-callable on inferrable properties self-cls-assignment now also considers tuple assignment Fix missing-function-docstring not being able to check __init__ and other magic methods even if the no-docstring-rgx setting was set to do so Added using-final-decorator-in-unsupported-version checker. Issued when py-version is set to a version that does not support typing.final (< 3.8) Added configuration option exclude-too-few-public-methods to allow excluding classes from the min-public-methods checker. The --jobs parameter now fallbacks to 1 if the host operating system does not have functioning shared semaphore implementation. Fix crash for unused-private-member when checking private members on __class__ Crashes when a list is encountered in a toml configuration do not happen anymore. Moved misplaced-comparison-constant to its own extension comparison_placement. This checker was opinionated and now no longer a default. It can be reactived by adding pylint.extensions.comparison_placement to load-plugins in your config. A new bad-configuration-section checker was added that will emit for misplaced option in pylint's top level namespace for toml configuration. Top-level dictionaries or option defined in the wrong section will still silently not be taken into account, which is tracked in a follow-up issue. Fix crash for protected-access on (outer) class traversal Added new checker useless-with-lock to find incorrect usage of with statement and threading module locks. Emitted when with threading.Lock(): is used instead of with lock_instance:. Make yn validator case insensitive, to allow for True and False in config files. Fix crash on open() calls when the mode argument is not a simple string. Inheriting from a class that implements __class_getitem__ no longer raises inherit-non-class. Pyreverse - Add the project root directory to sys.path Don't emit consider-using-f-string if py-version is set to Python < 3.6. f-strings were added in Python 3.6 Fix regression for unspecified-encoding with pathlib.Path.read_text() Don't emit consider-using-f-string if the variables to be interpolated include a backslash Fixed false positive for cell-var-from-loop when variable is used as the default value for a keyword-only parameter. Fix false-positive undefined-variable with Lambda, IfExp, and assignment expression. Fix false-positive useless-suppression for wrong-import-order Fixed toml dependency issue Fix false-positive useless-suppression for line-too-long Fixed invalid-name not checking parameters of overwritten base object methods Fixed crash in consider-using-f-string if format is not called Fix crash with AssignAttr in if TYPE_CHECKING blocks. Improve node information for invalid-name on function argument. Prevent return type checkers being called on functions with ellipses as body Add is_sys_guard and is_typing_guard helper functions from astroid to pylint.checkers.utils. Fix regression on ClassDef inference Fix regression on Compare node inference Fix false-positive isinstance-second-argument-not-valid-type with typing.Callable. It is now recommended to do pylint development on Python 3.8 or higher. This allows using the latest ast parser. All standard jobs in the pylint CI now run on Python 3.8 by default. We still support python 3.6 and 3.7 and run tests for those interpreters. TypingChecker Fix false-negative for deprecated-typing-alias and consider-using-alias with typing.Type + typing.Callable. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.24 2021/10/26 12:22:15 adam Exp $ d27 27 a53 3 ${PYSITELIB}/pylint/checkers/base.py ${PYSITELIB}/pylint/checkers/base.pyc ${PYSITELIB}/pylint/checkers/base.pyo d57 9 a65 3 ${PYSITELIB}/pylint/checkers/classes.py ${PYSITELIB}/pylint/checkers/classes.pyc ${PYSITELIB}/pylint/checkers/classes.pyo d72 3 d93 3 d99 3 d138 3 d153 3 a197 3 ${PYSITELIB}/pylint/extensions/check_docs.py ${PYSITELIB}/pylint/extensions/check_docs.pyc ${PYSITELIB}/pylint/extensions/check_docs.pyo d228 3 d240 3 d315 3 d384 12 d420 1 @ 1.24 log @py-pylint: updated to 2.11.1 What's New in Pylint 2.11.1? ============================ * ``unspecified-encoding`` now checks the encoding of ``pathlib.Path()`` correctly What's New in Pylint 2.11.0? ============================ * The python3 porting mode checker and it's ``py3k`` option were removed. You can still find it in older pylint versions. * ``raising-bad-type`` is now properly emitted when raising a string * Added new extension ``SetMembershipChecker`` with ``use-set-for-membership`` check: Emitted when using an in-place defined ``list`` or ``tuple`` to do a membership test. ``sets`` are better optimized for that. * Added ``py-version`` config key (if ``[MASTER]`` section). Used for version dependant checks. Will default to whatever Python version pylint is executed with. * ``CodeStyleChecker`` * Added ``consider-using-assignment-expr``: Emitted when an assignment is directly followed by an if statement and both can be combined by using an assignment expression ``:=``. Requires Python 3.8 * Added ``consider-using-f-string``: Emitted when .format() or '%' is being used to format a string. * Fix false positive for ``consider-using-with`` if a context manager is assigned to a variable in different paths of control flow (e. g. if-else clause). * https is now prefered in the documentation and http://pylint.pycqa.org correctly redirect to https://pylint.pycqa.org * Fix false positive for ``function-redefined`` for simple type annotations * Fix false positive for ``protected-access`` if a protected member is used in type hints of function definitions * Fix false positive ``dict-iter-missing-items`` for dictionaries only using tuples as keys * The ``unspecified-encoding`` checker now also checks calls to ``pathlib.Path().read_text()`` and ``pathlib.Path().write_text()`` * Fix false positive ``superfluous-parens`` for tuples created with inner tuples * Fix false positive ``unused-private-member`` for accessing attributes in a class using ``cls`` * Fix false positive ``unused-private-member`` for private staticmethods accessed in classmethods. * Extended ``consider-using-in`` check to work for attribute access. * Setting ``min-similarity-lines`` to 0 now makes the similarty checker stop checking for duplicate code * Fix a bug where pylint complained if the cache's parent directory does not exist * The ``global-variable-not-assigned`` checker now catches global variables that are never reassigned in a local scope and catches (reassigned) functions * Fix false positives for invalid-all-format that are lists or tuples at runtime * Fix ``no-self-use`` and ``docparams extension`` for async functions and methods. * Add documentation for ``pyreverse`` and ``symilar`` * Non symbolic messages with the wrong capitalisation now correctly trigger ``use-symbolic-message-instead`` * The ``consider-iterating-dictionary`` checker now also considers membership checks * The ``invalid-name`` message is now more detailed when using multiple naming style regexes. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.23 2021/09/13 06:52:31 adam Exp $ d69 3 a71 3 ${PYSITELIB}/pylint/checkers/refactoring/len_checker.py ${PYSITELIB}/pylint/checkers/refactoring/len_checker.pyc ${PYSITELIB}/pylint/checkers/refactoring/len_checker.pyo d93 3 d99 3 d165 3 d186 3 a245 3 ${PYSITELIB}/pylint/message/message_handler_mix_in.py ${PYSITELIB}/pylint/message/message_handler_mix_in.pyc ${PYSITELIB}/pylint/message/message_handler_mix_in.pyo d324 3 d348 3 d372 3 d378 3 @ 1.23 log @py-pylint: updated to 2.10.2 What's New in Pylint 2.10.2? ============================ * We now use platformdirs instead of appdirs since the latter is not maintained. * Fix a crash in the checker raising ``shallow-copy-environ`` when failing to infer on ``copy.copy`` What's New in Pylint 2.10.1? ============================ * pylint does not crash when PYLINT_HOME does not exist. What's New in Pylint 2.10.0? ============================ * pyreverse: add option to produce colored output. * pyreverse: add output in PlantUML format. * ``consider-using-with`` is no longer triggered if a context manager is returned from a function. * pylint does not crash with a traceback anymore when a file is problematic. It creates a template text file for opening an issue on the bug tracker instead. The linting can go on for other non problematic files instead of being impossible. * pyreverse: Show class has-a relationships inferred from the type-hint * Fixed a crash when importing beyond the top level package during ``import-error`` message creation * Added ``ignored-parents`` option to the design checker to ignore specific classes from the ``too-many-ancestors`` check (R0901). * Added ``unspecified-encoding``: Emitted when open() is called without specifying an encoding * Improved the Similarity checker performance. Fix issue with ``--min-similarity-lines`` used with ``--jobs``. * Don't emit ``no-member`` error if guarded behind if statement. * The default for ``PYLINTHOME`` is now the standard ``XDG_CACHE_HOME``, and pylint now uses ``appdirs``. * Added ``use-list-literal``: Emitted when ``list()`` is called with no arguments instead of using ``[]`` * Added ``use-dict-literal``: Emitted when ``dict()`` is called with no arguments instead of using ``{}`` * Added optional extension ``consider-ternary-expression``: Emitted whenever a variable is assigned in both branches of an if/else block. * Added optional extension ``while-used``: Emitted whenever a ``while`` loop is used. * Added ``forgotten-debug-statement``: Emitted when ``breakpoint``, ``pdb.set_trace`` or ``sys.breakpointhook`` calls are found * Fix false-positive of ``unused-private-member`` when using nested functions in a class * Fix crash for ``unused-private-member`` that occurred with nested attributes. * Fix a false positive for ``unused-private-member`` with class names * Fix false positives for ``superfluous-parens`` with walrus operator, ternary operator and inside list comprehension. * Added ``format-string-without-interpolation`` checker: Emitted when formatting is applied to a string without any variables to be replaced * Refactor of ``--list-msgs`` & ``--list-msgs-enabled``: both options now show whether messages are emittable with the current interpreter. * Fix false negative for ``used-before-assignment`` when the variable is assigned in an exception handler, but used outside of the handler. * Added ``disable-next`` option: allows using `# pylint: disable-next=msgid` to disable a message for the following line * Added ``redundant-u-string-prefix`` checker: Emitted when the u prefix is added to a string * Fixed ``cell-var-from-loop`` checker: handle cell variables in comprehensions within functions, and function default argument expressions. Also handle basic variable shadowing. * Fixed bug with ``cell-var-from-loop`` checker: it no longer has false negatives when both ``unused-variable`` and ``used-before-assignment`` are disabled. * Fix false postive for ``invalid-all-format`` if the list or tuple builtin functions are used * Config files can now contain environment variables * Fix false-positive ``used-before-assignment`` with an assignment expression in a ``Return`` node * Added ``use-sequence-for-iteration``: Emitted when iterating over an in-place defined ``set``. * ``CodeStyleChecker`` * Limit ``consider-using-tuple`` to be emitted only for in-place defined ``lists``. * Emit ``consider-using-tuple`` even if list contains a ``starred`` expression. * Ignore decorators lines by similarities checker when ignore signatures flag enabled * Allow ``true`` and ``false`` values in ``pylintrc`` for better compatibility with ``toml`` config. * Class methods' signatures are ignored the same way as functions' with similarities "ignore-signatures" option enabled * Improve performance when inferring ``Call`` nodes, by utilizing caching. * Improve error message for invalid-metaclass when the node is an Instance. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.22 2021/06/30 06:02:15 adam Exp $ a62 3 ${PYSITELIB}/pylint/checkers/python3.py ${PYSITELIB}/pylint/checkers/python3.pyc ${PYSITELIB}/pylint/checkers/python3.pyo d186 3 d300 3 d336 3 d348 3 @ 1.22 log @py-pylint: updated to 2.9.0 What's New in Pylint 2.9.0? =========================== Release date: 2021-06-29 * Python 3.10 is now supported. * Add type annotations to pyreverse dot files * Fix missing support for detecting deprecated aliases to existing functions/methods. * astroid has been upgraded to 2.6.1 * Added various deprecated functions/methods for python 3.10, 3.7, 3.6 and 3.3 * Fix false positive ``useless-type-doc`` on ignored argument using ``pylint.extensions.docparams`` when a function was typed using pep484 but not inside the docstring. * ``setuptools_scm`` has been removed and replaced by ``tbump`` in order to not have hidden runtime dependencies to setuptools * Fix a crash when a test function is decorated with ``@@pytest.fixture`` and astroid can't infer the name of the decorator when using ``open`` without ``with``. * Added ``deprecated-decorator``: Emitted when deprecated decorator is used. * Added ``ignore-paths`` behaviour. Defined regex patterns are matched against full file path. * Fix false negative for ``consider-using-with`` if calls like ``open()`` were used outside of assignment expressions. * The warning for ``arguments-differ`` now signals explicitly the difference it detected by naming the argument or arguments that changed and the type of change that occurred. * Suppress ``consider-using-with`` inside context managers. * Added ``--fail-on`` option to return non-zero exit codes regardless of ``--fail-under`` value. * numversion tuple contains integers again to fix multiple pylint's plugins that relied on it * Fix false-positive ``too-many-ancestors`` when inheriting from builtin classes, especially from the ``collections.abc`` module * Stdlib deprecated modules check is moved to stdlib checker. New deprecated modules are added. * Fix raising false-positive ``no-member`` on abstract properties * Created new error message called ``arguments-renamed`` which identifies any changes at the parameter names of overridden functions. * New checker ``consider-using-dict-items``. Emitted when iterating over dictionary keys and then indexing the same dictionary with the key within loop body. * Don't emit ``import-error`` if import guarded behind ``if sys.version_info >= (x, x)`` * Fix incompatibility with Python 3.6.0 caused by ``typing.Counter`` and ``typing.NoReturn`` usage * New checker ``use-maxsplit-arg``. Emitted either when accessing only the first or last element of ``str.split()``. * Add ignore_signatures to duplicate code checker * Fix documentation errors in "Block disables" paragraph of User Guide. * New checker ``unnecessary-dict-index-lookup``. Emitted when iterating over dictionary items (key-value pairs) and accessing the value by index lookup. * New checker``consider-using-from-import``. Emitted when a submodule/member of a package is imported and aliased with the same name. * Allow comma-separated list in ``output-format`` and separate output files for each specified format. * Make ``using-constant-test`` detect constant tests consisting of list literals like ``[]`` and ``[1, 2, 3]``. * Improved error message of ``unnecessary-comprehension`` checker by providing code suggestion. * New checker ``unused-private-member``. Emitted when a private member (i.e., starts with ``__``) of a class is defined but not used. * Fix false negative of ``consider-using-enumerate`` when iterating over an attribute. * New checker ``invalid-class-object``. Emitted when a non-class is assigned to a ``__class__`` attribute. * Fix a crash when a plugin from the configuration could not be loaded and raise an error 'bad-plugin-value' instead * Added handling of floating point values when parsing configuration from pyproject.toml * ``invalid-length-returned``, now also works when nothing at all is returned following an upgrade in astroid. * ``logging-format-interpolation`` and ``logging-not-lazy``, now works on logger class created from renamed logging import following an upgrade in astroid. * Fix false-positive ``no-member`` with generic base class * Fix ``assigning-non-slot`` false-positive with base that inherits from ``typing.Generic`` * New checker ``invalid-all-format``. Emitted when ``__all__`` has an invalid format, i.e. isn't a ``tuple`` or ``list``. * Fix false positive ``unused-variable`` and ``undefined-variable`` with Pattern Matching in Python 3.10 * New checker ``await-outside-async``. Emitted when await is used outside an async function. * Clarify documentation for ``typing`` extension. * Add new extension ``CodeStyleChecker``. It includes checkers that can improve code consistency. As such they don't necessarily provide a performance benefit and are often times opinionated. * New checker ``consider-using-tuple``. Emitted when an in-place defined list or set can be replaced by a tuple. * New checker ``consider-using-namedtuple-or-dataclass``. Emitted when dictionary values can be replaced by namedtuples or dataclass instances. * Fix error that occurred when using ``slice`` as subscript for dict. * Reduce false-positives around inference of ``.value`` and ``.name`` properties on ``Enum`` subclasses, following an upgrade in astroid * Fix issue with ``cached_property`` that caused ``invalid-overridden-method`` error when overriding a ``property``. * Fix ``unused-import`` false positive for imported modules referenced in attribute lookups in type comments. What's New in Pylint 2.8.3? =========================== Release date: 2021-05-31 * Astroid has been pinned to 2.5.6 for the 2.8 branch. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.21 2021/04/26 13:00:31 adam Exp $ d165 3 d192 3 d249 3 d258 9 d270 3 a272 3 ${PYSITELIB}/pylint/pyreverse/vcgutils.py ${PYSITELIB}/pylint/pyreverse/vcgutils.pyc ${PYSITELIB}/pylint/pyreverse/vcgutils.pyo @ 1.21 log @py-pylint: updated to 2.8.1 What's New in Pylint 2.8.1? =========================== Release date: 2021-04-25 .. Put new features and bugfixes here and also in 'doc/whatsnew/2.9.rst' * Add numversion back (temporarily) in ``__pkginfo__`` because it broke Pylama and revert the unnecessary ``pylint.version`` breaking change. What's New in Pylint 2.8.0? =========================== Release date: 2021-04-24 * New refactoring message ``consider-using-with``. This message is emitted if resource-allocating functions or methods of the standard library (like ``open()`` or ``threading.Lock.acquire()``) that can be used as a context manager are called without a ``with`` block. * Resolve false positives on unused variables in decorator functions * Add new extension ``ConfusingConsecutiveElifChecker``. This optional checker emits a refactoring message (R5601 ``confusing-consecutive-elif``) if if/elif statements with different indentation levels follow directly one after the other. * New option ``--output=`` to output result to a file rather than printing to stdout. * Use a prescriptive message for ``unidiomatic-typecheck`` * Apply ``const-naming-style`` to module constants annotated with ``typing.Final`` * The packaging is now done via setuptools exclusively. ``doc``, ``tests``, ``man``, ``elisp`` and ``Changelog`` are not packaged anymore - reducing the size of the package by 75%. * Debian packaging is now (officially) done in https://salsa.debian.org/python-team/packages/pylint. * The 'doc' extra-require has been removed. * ``__pkginfo__`` now only contain ``__version__`` (also accessible with ``pylint.__version__``), other meta-information are still accessible with ``from importlib import metadata;metadata.metadata('pylint')``. * COPYING has been renamed to LICENSE for standardization. * Fix false-positive ``used-before-assignment`` in function returns. * Updated ``astroid`` to 2.5.3 * Add ``consider-using-min-max-builtin`` check for if statement which could be replaced by Python builtin min or max * Don't auto-enable postponed evaluation of type annotations with Python 3.10 * Update ``astroid`` to 2.5.4 * Add new extension ``TypingChecker``. This optional checker can detect the use of deprecated typing aliases and can suggest the use of the alternative union syntax where possible. (For example, 'typing.Dict' can be replaced by 'dict', and 'typing.Unions' by '|', etc.) Make sure to check the config options if you plan on using it! * Reactivates old counts in report mode. * During detection of ``inconsistent-return-statements`` consider that ``assert False`` is a return node. * Run will not fail if score exactly equals ``config.fail_under``. * Functions that never returns may declare ``NoReturn`` as type hints, so that ``inconsistent-return-statements`` is not emitted. * Improved protected access checks to allow access inside class methods * Fix issue with PEP 585 syntax and the use of ``collections.abc.Set`` * Fix issue that caused class variables annotated with ``typing.ClassVar`` to be identified as class constants. Now, class variables annotated with ``typing.Final`` are identified as such. * Continuous integration with read the doc has been added. * Don't show ``DuplicateBasesError`` for attribute access * Fix crash when checking ``setup.cfg`` for pylint config when there are non-ascii characters in there * Allow code flanked in backticks to be skipped by spellchecker * Allow Python tool directives (for black, flake8, zimports, isort, mypy, bandit, pycharm) at beginning of comments to be skipped by spellchecker * Fix issue that caused emacs pylint to fail when used with tramp * Improve check for invalid PEP 585 syntax inside functions if postponed evaluation of type annotations is enabled * Improve check for invalid PEP 585 syntax as default function arguments @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.20 2021/02/22 09:24:34 adam Exp $ d156 3 d270 3 @ 1.20 log @py-pylint: updated to 2.7.0 What's New in Pylint 2.7.0? * Introduce DeprecationMixin for reusable deprecation checks. * Fix false positive for ``builtin-not-iterating`` when ``map`` receives iterable * Python 3.6+ is now required. * Fix false positive for ``builtin-not-iterating`` when ``zip`` receives iterable * Add `nan-comparison` check for NaN comparisons * Bug fix for empty-comment message line number. * Only emit `bad-reversed-sequence` on dictionaries if below py3.8 * Handle class decorators applied to function. * Add check for empty comments * Fix minor documentation issue in contribute.rst * Enums are now required to be named in UPPER_CASE by ``invalid-name``. * Add missing checks for deprecated functions. * Postponed evaluation of annotations are now recognized by default if python version is above 3.10 * Fix column metadata for anomalous backslash lints * Drop support for Python 3.5 * Add support for pep585 with postponed evaluation * Check alternative union syntax - PEP 604 * Fix multiple false positives with assignment expressions * Fix TypedDict inherit-non-class false-positive Python 3.9+ * Fix issue with nested PEP 585 syntax * Fix issue with nested PEP 604 syntax * Fix a crash in `undefined-variable` caused by chained attributes in metaclass * Fix false positive for `not-async-context-manager` when `contextlib.asynccontextmanager` is used * Fix linter multiprocessing pool shutdown (triggered warnings when runned in parallels with other pytest plugins) * Fix a false-positive emission of `no-self-use` and `unused-argument` for methods of generic structural types (`Protocol[T]`) * Fix bug that lead to duplicate messages when using ``--jobs 2`` or more. * Adds option ``check-protected-access-in-special-methods`` in the ClassChecker to activate/deactivate ``protected-access`` message emission for single underscore prefixed attribute in special methods. * Fix vulnerable regular expressions in ``pyreverse`` * ``inconsistent-return-statements`` message is now emitted if one of ``try/except`` statement is not returning explicitly while the other do. * Fix ``useless-super-delegation`` false positive when default keyword argument is a dictionnary. * Fix a crash when a specified config file does not exist * Add support to ``ignored-argument-names`` in DocstringParameterChecker and adds `useless-param-doc` and `useless-type-doc` messages. * Enforce docparams consistently when docstring is not present * Fix ``duplicate-code`` false positive when lines only contain whitespace and non-alphanumeric characters (e.g. parentheses, bracket, comman, etc.) * Improve lint message for `singleton-comparison` with bools * Fix spell-checker crash on indented docstring lines that look like # comments * Fix AttributeError in checkers/refactoring.py * Improve sphinx directives spelling filter * Fix a bug with postponed evaluation when using aliases for annotations. * Fix minor documentation issues * Improve the performance of the line length check. * Removed incorrect deprecation of ``inspect.getfullargspec`` * Fix ``signature-differs`` false positive for functions with variadics * Fix a crash in `consider-using-enumerate` when encountering `range()` without arguments * `len-as-conditions` is now triggered only for classes that are inheriting directly from list, dict, or set and not implementing the `__bool__` function, or from generators like range or list/dict/set comprehension. This should reduce the false positives for other classes, like pandas's DataFrame or numpy's Array. * Fixes duplicate-errors not working with -j2+ * `generated-members` now matches the qualified name of members * Add check for bool function to `len-as-condition` * Add `simplifiable-condition` check for extraneous constants in conditionals using and/or. * Add `condition-evals-to-constant` check for conditionals using and/or that evaluate to a constant. * Changed setup.py to work with [distlib](https://pypi.org/project/distlib) * New check: ``consider-using-generator`` This check warns when a comprehension is used inside an `any` or `all` function, since it is unnecessary and should be replaced by a generator instead. Using a generator would be less code and way faster. * Add Github Actions to replace Travis and AppVeyor in the future @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.19 2020/08/21 21:55:41 adam Exp $ d159 3 d183 3 d195 3 a332 4 man/man1/epylint-${PYVERSSUFFIX}.1 man/man1/pylint-${PYVERSSUFFIX}.1 man/man1/pyreverse-${PYVERSSUFFIX}.1 man/man1/symilar-${PYVERSSUFFIX}.1 @ 1.19 log @py-pylint: updated to 2.6.0 What's New in Pylint 2.6.0? =========================== * Fix various scope-related bugs in ``undefined-variable`` checker * bad-continuation and bad-whitespace have been removed, black or another formatter can help you with this better than Pylint * The no-space-check option has been removed. It's no longer possible to consider empty line like a `trailing-whitespace` by using clever options * ``missing-kwoa`` is no longer emitted when dealing with overload functions * mixed-indentation has been removed, it is no longer useful since TabError is included directly in python3 * Add `super-with-arguments` check for flagging instances of Python 2 style super calls. * Add an faq detailing which messages to disable to avoid duplicates w/ other popular linters * Fix superfluous-parens false-positive for the walrus operator * Fix `fail-under` not accepting floats * Fix a bug with `ignore-docstrings` ignoring all lines in a module * Fix `pre-commit` config that could lead to undetected duplicate lines of code * Fix a crash in parallel mode when the module's filepath is not set * Add `raise-missing-from` check for exceptions that should have a cause. * Support both isort 4 and isort 5. If you have pinned isort 4 in your projet requirements, nothing changes. If you use isort 5, though, note that the `known-standard-library` option is not interpreted the same in isort 4 and isort 5 (see the migration guide in isort documentation for further details). For compatibility's sake for most pylint users, the `known-standard-library` option in pylint now maps to `extra-standard-library` in isort 5. If you really want what `known-standard-library` now means in isort 5, you must disable the `wrong-import-order` check in pylint and run isort manually with a proper isort configuration file. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.18 2020/05/05 18:21:25 adam Exp $ d36 3 d54 3 d69 15 a83 3 ${PYSITELIB}/pylint/checkers/refactoring.py ${PYSITELIB}/pylint/checkers/refactoring.pyc ${PYSITELIB}/pylint/checkers/refactoring.pyo d165 3 d189 3 a191 3 ${PYSITELIB}/pylint/lint/check_parallel.py ${PYSITELIB}/pylint/lint/check_parallel.pyc ${PYSITELIB}/pylint/lint/check_parallel.pyo d273 36 a308 3 ${PYSITELIB}/pylint/testutils.py ${PYSITELIB}/pylint/testutils.pyc ${PYSITELIB}/pylint/testutils.pyo @ 1.18 log @py-pylint: updated to 2.5.2 What's New in Pylint 2.5.2? * ``pylint.Run`` accepts ``do_exit`` as a deprecated parameter What's New in Pylint 2.5.1? * Fix a crash in `method-hidden` lookup for unknown base classes * Revert pylint.Run's `exit` parameter to ``do_exit`` This has been inadvertently changed several releases ago to ``do_exit``. * ``no-value-for-parameter`` variadic detection has improved for assign statements * Allow package files to be properly discovered with multiple jobs * Allow linting directories without `__init__.py` which was a regression in 2.5. What's New in Pylint 2.5.0? * Fix a false negative for ``undefined-variable`` when using class attribute in comprehension. * Fix a false positive for ``undefined-variable`` when using class attribute in decorator or as type hint. * Remove HTML quoting of messages in JSON output. * Adjust the `invalid-name` rule to work with non-ASCII identifiers and add the `non-ascii-name` rule. * Positional-only arguments are taken in account for ``useless-super-delegation`` * ``unidiomatic-typecheck`` is no longer emitted for ``in`` and ``not in`` operators * Positional-only argument annotations are taken in account for ``unused-import`` * Add a command to list available extensions. * Allow used variables to be properly consumed when different checks are enabled / disabled * Fix dangerous-default-value rule to account for keyword argument defaults * Fix a false positive of ``self-assigning-variable`` on tuple unpacking. * ``no-self-use`` is no longer emitted for typing stubs. * Fix a false positive for ``undefined-variable`` when ``__class__`` is used * Emit ``invalid-name`` for variables defined in loops at module level. * Add a check for cases where the second argument to `isinstance` is not a type. * Add 'notes-rgx' option, to be used for fixme check. * ``function-redefined`` exempts function redefined on a condition. * ``typing.overload`` functions are exempted from docstring checks * Emit ``invalid-overridden-method`` for improper async def overrides. * Do not allow ``python -m pylint ...`` to import user code ``python -m pylint ...`` adds the current working directory as the first element of ``sys.path``. This opens up a potential security hole where ``pylint`` will import user level code as long as that code resides in modules having the same name as stdlib or pylint's own modules. * Add `dummy-variables-rgx` option for `_redeclared-assigned-name` check. * Fixed graph creation for relative paths * Add a check for asserts on string literals. * `not in` is considered iterating context for some of the Python 3 porting checkers. * A new check `inconsistent-quotes` was added. * Add a check for non string assignment to __name__ attribute. * `__pow__`, `__imatmul__`, `__trunc__`, `__floor__`, and `__ceil__` are recognized as special method names. * Added errors for protocol functions when invalid return types are detected. E0304 (invalid-bool-returned): __bool__ did not return a bool E0305 (invalid-index-returned): __index__ did not return an integer E0306 (invalid-repr-returned): __repr__ did not return a string E0307 (invalid-str-returned): __str__ did not return a string E0308 (invalid-bytes-returned): __bytes__ did not return a string E0309 (invalid-hash-returned): __hash__ did not return an integer E0310 (invalid-length-hint-returned): __length_hint__ did not return a non-negative integer E0311 (invalid-format-returned): __format__ did not return a string E0312 (invalid-getnewargs-returned): __getnewargs__ did not return a tuple E0313 (invalid-getnewargs-ex-returned): __getnewargs_ex__ did not return a tuple of the form (tuple, dict) * ``missing-*-docstring`` can look for ``__doc__`` assignments. * ``undefined-variable`` can now find undefined loop iterables * ``safe_infer`` can infer a value as long as all the paths share the same type. * Add a --fail-under flag, also configurable in a .pylintrc file. If the final score is more than the specified score, it's considered a success and pylint exits with exitcode 0. Otherwise, it's considered a failure and pylint exits with its current exitcode based on the messages issued. * Don't emit ``line-too-long`` for multilines when `disable=line-too-long` comment stands at their end * Fixed an ``AttributeError`` caused by improper handling of ``dataclasses`` inference in ``pyreverse`` * Do not exempt bare except from ``undefined-variable`` and similar checks If a node was wrapped in a ``TryExcept``, ``pylint`` was taking a hint from the except handler when deciding to emit or not a message. We were treating bare except as a fully fledged ignore but only the corresponding exceptions should be handled that way (e.g. ``NameError`` or ``ImportError``) * No longer emit ``assignment-from-no-return`` when a function only raises an exception * Allow import aliases to exempt ``import-error`` when used in type annotations. * ``Ellipsis` is exempted from ``multiple-statements`` for function overloads. * No longer emit ``invalid-name`` for non-constants found at module level. Pylint was taking the following statement from PEP-8 too far, considering all module level variables as constants, which is not what the statement is saying: `Constants are usually defined on a module level and written in all capital letters with underscores separating words.` * Allow ``implicit-str-concat-in-sequence`` to be emitted for string juxtaposition * ``implicit-str-concat-in-sequence`` was renamed ``implicit-str-concat`` * The ``json`` reporter no longer bypasses ``redirect_stdout``. * Move ``NoFileError``, ``OutputLine``, ``FunctionalTestReporter``, ``FunctionalTestFile``, ``LintModuleTest`` and related methods from ``test_functional.py`` to ``pylint.testutils`` to help testing for 3rd party pylint plugins. * Can read config from a setup.cfg or pyproject.toml file. * Fix exception-escape false positive with generators * ``inspect.getargvalues`` is no longer marked as deprecated. * A new check ``f-string-without-interpolation`` was added * Flag mutable ``collections.*`` utilities as dangerous defaults * ``docparams`` extension supports multiple types in raises sections. Multiple types can also be separated by commas in all valid sections. * Allow parallel linting when run under Prospector * Fixed false positives of ``method-hidden`` when a subclass defines the method that is being hidden. * Python 3 porting mode is 30-50% faster on most codebases * Python 3 porting mode no longer swallows syntax errors * Pass the actual PyLinter object to sub processes to allow using custom PyLinter classes. PyLinter object (and all its members except reporter) needs to support pickling so the PyLinter object can be passed to worker processes. * Clean up setup.py Make pytest-runner a requirement only if running tests, similar to McCabe. Clean up the setup.py file, resolving a number of warnings around it. * Handle SyntaxError in files passed via ``--from-stdin`` option Pylint no longer outputs a traceback, if a file, read from stdin, contains a syntaxerror. * Fix uppercase style to disallow 3+ uppercase followed by lowercase. * Fixed ``undefined-variable`` and ``unused-import`` false positives when using a metaclass via an attribute. * Emit ``unused-argument`` for functions that partially uses their argument list before raising an exception. * Fixed ``broad_try_clause`` extension to check try/finally statements and to check for nested statements (e.g., inside of an ``if`` statement). * Recognize classes explicitly inheriting from ``abc.ABC`` or having an ``abc.ABCMeta`` metaclass as abstract. This makes them not trigger W0223. * Fix overzealous `arguments-differ` when overridden function uses variadics No message is emitted if the overriding function provides positional or keyword variadics in its signature that can feasibly accept and pass on all parameters given by the overridden function. * Multiple types of string formatting are allowed in logging functions. The `logging-fstring-interpolation` message has been brought back to allow multiple types of string formatting to be used. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.17 2019/10/01 11:38:06 adam Exp $ d87 24 a110 3 ${PYSITELIB}/pylint/config.py ${PYSITELIB}/pylint/config.pyc ${PYSITELIB}/pylint/config.pyo @ 1.17 log @py-pylint: updated to 2.4.2 What's New in Pylint 2.4.2? * ``ignored-modules`` can skip submodules. * ``self-assigning-variable`` skips class level assignments. * ``consider-using-sys-exit`` is exempted when `exit()` is imported from `sys` * Exempt annotated assignments without variable from ``class-variable-slots-conflict`` * Fix ``utils.is_error`` to account for functions returning early. This fixes a false negative with ``unused-variable`` which was no longer triggered when a function raised an exception as the last instruction, but the body of the function still had unused variables. What's New in Pylint 2.4.1? * Exempt type checking definitions defined in both clauses of a type checking guard * Exempt type checking definitions inside the type check guard In a7f236528bb3758886b97285a56f3f9ce5b13a99 we added basic support for emitting `used-before-assignment` if a variable was only defined inside a type checking guard (using `TYPE_CHECKING` variable from `typing`) Unfortunately that missed the case of using those type checking imports inside the guard itself, which triggered spurious used-before-assignment errors. * Require astroid >= 2.3 to avoid any compatibility issues. What's New in Pylint 2.4.0? * New check: ``import-outside-toplevel`` This check warns when modules are imported from places other than a module toplevel, e.g. inside a function or a class. * Handle inference ambiguity for ``invalid-format-index`` * Removed Python 2 specific checks such as ``relative-import``, ``invalid-encoded-data``, ``missing-super-argument``. * Support forward references for ``function-redefined`` check. * Handle redefinitions in case of type checking imports. * Added a new check, ``consider-using-sys-exit`` This check is emitted when we detect that a quit() or exit() is invoked instead of sys.exit(), which is the preferred way of exiting in program. * ``useless-suppression`` check now ignores ``cyclic-import`` suppressions, which could lead to false postiives due to incomplete context at the time of the check. * Added new checks, ``no-else-break`` and ``no-else-continue`` These checks highlight unnecessary ``else`` and ``elif`` blocks after ``break`` and ``continue`` statements. * Don't emit ``protected-access`` when a single underscore prefixed attribute is used inside a special method * Fix the "statement" values in the PyLinter's stats reports by module. * Added a new check, ``invalid-overridden-method`` This check is emitted when we detect that a method is overridden as a property or a property is overridden as a method. This can indicate a bug in the application code that will trigger a runtime error. * Added a new check, ``arguments-out-of-order`` This check warns if you have arguments with names that match those in a function's signature but you are passing them in to the function in a different order. * Added a new check, ``redeclared-assigned-name`` This check is emitted when ``pylint`` detects that a name was assigned one or multiple times in the same assignment, which indicate a potential bug. * Ignore lambda calls with variadic arguments without a context. Inferring variadic positional arguments and keyword arguments will result into empty Tuples and Dicts, which can lead in some cases to false positives with regard to no-value-for-parameter. In order to avoid this, until we'll have support for call context propagation, we're ignoring such cases if detected. We already did that for function calls, but the previous fix was not taking in consideration ``lambdas`` * Added a new check, ``self-assigning-variable`` This check is emitted when we detect that a variable is assigned to itself, which might indicate a potential bug in the code application. * Added a new check, ``property-with-parameters``. This check is emitted when we detect that a defined property also has parameters, which are useless. * Excluded protocol classes from a couple of checks. * Add a check `unnecessary-comprehension` that detects unnecessary comprehensions. This check is emitted when ``pylint`` finds list-, set- or dict-comprehensions, that are unnecessary and can be rewritten with the list-, set- or dict-constructors. * Excluded PEP 526 instance and class variables from ``no-member``. * Excluded `attrs` from `too-few-public-methods` check. * ``unused-import`` emitted for the right import names in function scopes. * Dropped support for Python 3.4. * ``assignment-from-no-return`` not triggered for async methods. * Don't emit ``attribute-defined-outside-init`` for variables defined in setters. * Syntax errors report the column number. * Support fully qualified typing imports for type annotations. * Exclude ``__dict__`` from ``attribute-defined-outside-init`` * Fix pointer on spelling check when the error are more than one time in the same line. * Fix crash happening when parent of called object cannot be determined * Allow of in `GoogleDocstring.re_multiple_type` * Added `subprocess-run-check` to handle subrocess.run without explicitly set `check` keyword. * When we can't infer bare except handlers, skip ``try-except-raise`` * Handle more `unnecessary-lambda` cases when dealing with additional kwargs in wrapped calls * Better postponed evaluation of annotations handling * Support postponed evaluation of annotations for variable annotations. * ``epylint.py_run`` defaults to ``python`` in case the current executable is not a Python one. * Ignore raw docstrings when running Similarities checker with `ignore-docstrings=yes` option * Fix crash when calling ``inherit_from_std_ex`` on a class which is its own ancestor * Added a new check that warns the user if a function call is used inside a test but parentheses are missing. * ``len-as-condition`` now only fires when a ``len(x)`` call is made without an explicit comparison The message and description accompanying this checker has been changed reflect this new behavior, by explicitly asking to either rely on the fact that empty sequence are false or to compare the length with a scalar. * Add ``preferred-module`` checker that notify if an import has a replacement module that should be used. This check is emitted when ``pylint`` finds an imported module that has a preferred replacement listed in ``preferred-modules``. * ``assigning-non-slot`` not emitted for classes with unknown base classes. * ``old-division`` is not emitted for non-Const nodes. * Added method arguments to the dot writer for pyreverse. * Support for linting file from stdin. IDEs may benefit from the support for linting from an in-memory file. * Added a new check `class-variable-slots-conflict` This check is emitted when ``pylint`` finds a class variable that conflicts with a slot name, which would raise a ``ValueError`` at runtime. * Added new check: dict-iter-missing-items (E1141) * Fix issue with pylint name in output of python -m pylint --version * Relicense logo material under the CC BY-SA 4.0 license. * Skip `if` expressions from f-strings for the `check_elif` checker * C0412 (ungrouped-import) is now compatible with isort. * Added new extension to detect too much code in a try clause * ``signature-mutators`` option was added With this option, users can choose to ignore `too-many-function-args`, `unexpected-keyword-arg`, and `no-value-for-parameter` for functions decorated with decorators that change the signature of a decorated function. * Fixed a pragma comment on its own physical line being ignored when part of a logical line with the previous physical line. * Fixed false `undefined-loop-variable` for a function defined in the loop, that uses the variable defined in that loop. * Fixed `unused-argument` and `function-redefined` getting raised for functions decorated with `typing.overload`. * Fixed a false positive with ``consider-using-dict-comprehension`` for constructions that can't be converted to a comprehension * Added ``__post_init__`` to ``defining-attr-methods`` in order to avoid ``attribute-defined-outside-init`` in dataclasses. * Changed description of W0199 to use the term 2-item-tuple instead of 2-uple. * Allow a `.` as a prefix for Sphinx name resolution. * Checkers must now keep a 1 to 1 relationship between "msgid" (ie: C1234) and "symbol" (ie : human-readable-symbol) * In checkers, an old_names can now be used for multiple new messages and pylint is now a little faster * Allow the choice of f-strings as a valid way of formatting logging strings. * Added ``--list-msgs-enabled`` command to list all enabled and disabled messages given the current RC file and command line arguments. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.16 2019/03/02 14:12:28 adam Exp $ d144 18 a161 3 ${PYSITELIB}/pylint/lint.py ${PYSITELIB}/pylint/lint.pyc ${PYSITELIB}/pylint/lint.pyo d243 3 @ 1.16 log @py-pylint: updated to 2.3.1 What's New in Pylint 2.3.1? * Properly pass quote=False to html.escape in the JSON reporter @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.15 2019/02/28 09:20:07 adam Exp $ d30 3 d90 3 d108 3 d147 18 d192 12 a203 3 ${PYSITELIB}/pylint/reporters/json.py ${PYSITELIB}/pylint/reporters/json.pyc ${PYSITELIB}/pylint/reporters/json.pyo a215 1033 ${PYSITELIB}/pylint/test/acceptance/test_stdlib.py ${PYSITELIB}/pylint/test/conftest.py ${PYSITELIB}/pylint/test/data/__init__.py ${PYSITELIB}/pylint/test/data/ascript ${PYSITELIB}/pylint/test/data/classes_No_Name.dot ${PYSITELIB}/pylint/test/data/clientmodule_test.py ${PYSITELIB}/pylint/test/data/packages_No_Name.dot ${PYSITELIB}/pylint/test/data/suppliermodule_test.py ${PYSITELIB}/pylint/test/extensions/__init__.py ${PYSITELIB}/pylint/test/extensions/data/bad_builtin.py ${PYSITELIB}/pylint/test/extensions/data/compare_to_zero.py ${PYSITELIB}/pylint/test/extensions/data/docstring.py ${PYSITELIB}/pylint/test/extensions/data/elif.py ${PYSITELIB}/pylint/test/extensions/data/empty_string_comparison.py ${PYSITELIB}/pylint/test/extensions/data/mccabe.py ${PYSITELIB}/pylint/test/extensions/data/overlapping_exceptions.py ${PYSITELIB}/pylint/test/extensions/data/overlapping_exceptions_py33.py ${PYSITELIB}/pylint/test/extensions/data/redefined.py ${PYSITELIB}/pylint/test/extensions/test_bad_builtin.py ${PYSITELIB}/pylint/test/extensions/test_check_docs.py ${PYSITELIB}/pylint/test/extensions/test_check_docs_utils.py ${PYSITELIB}/pylint/test/extensions/test_check_mccabe.py ${PYSITELIB}/pylint/test/extensions/test_check_raise_docs.py ${PYSITELIB}/pylint/test/extensions/test_check_return_docs.py ${PYSITELIB}/pylint/test/extensions/test_check_yields_docs.py ${PYSITELIB}/pylint/test/extensions/test_comparetozero.py ${PYSITELIB}/pylint/test/extensions/test_docstyle.py ${PYSITELIB}/pylint/test/extensions/test_elseif_used.py ${PYSITELIB}/pylint/test/extensions/test_emptystring.py ${PYSITELIB}/pylint/test/extensions/test_overlapping_exceptions.py ${PYSITELIB}/pylint/test/extensions/test_redefined.py ${PYSITELIB}/pylint/test/functional/__init__.py ${PYSITELIB}/pylint/test/functional/abstract_abc_methods.py ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_in_class.py ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py2.py ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py2.rc ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py2.txt ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py3.py ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py3.rc ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py3.txt ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py34.py ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py34.rc ${PYSITELIB}/pylint/test/functional/abstract_class_instantiated_py34.txt ${PYSITELIB}/pylint/test/functional/abstract_method_py2.py ${PYSITELIB}/pylint/test/functional/abstract_method_py2.rc ${PYSITELIB}/pylint/test/functional/abstract_method_py2.txt ${PYSITELIB}/pylint/test/functional/abstract_method_py3.py ${PYSITELIB}/pylint/test/functional/abstract_method_py3.rc ${PYSITELIB}/pylint/test/functional/abstract_method_py3.txt ${PYSITELIB}/pylint/test/functional/access_member_before_definition.py ${PYSITELIB}/pylint/test/functional/access_member_before_definition.txt ${PYSITELIB}/pylint/test/functional/access_to__name__.py ${PYSITELIB}/pylint/test/functional/access_to__name__.txt ${PYSITELIB}/pylint/test/functional/access_to_protected_members.py ${PYSITELIB}/pylint/test/functional/access_to_protected_members.txt ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape_py2.py ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape_py2.rc ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape_py2.txt ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape_py3.py ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape_py3.rc ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape_py3.txt ${PYSITELIB}/pylint/test/functional/arguments.py ${PYSITELIB}/pylint/test/functional/arguments.txt ${PYSITELIB}/pylint/test/functional/arguments_differ.py ${PYSITELIB}/pylint/test/functional/arguments_differ.txt ${PYSITELIB}/pylint/test/functional/arguments_differ_py3.py ${PYSITELIB}/pylint/test/functional/arguments_differ_py3.rc ${PYSITELIB}/pylint/test/functional/arguments_differ_py3.txt ${PYSITELIB}/pylint/test/functional/assert_on_tuple.py ${PYSITELIB}/pylint/test/functional/assert_on_tuple.txt ${PYSITELIB}/pylint/test/functional/assigning_non_slot.py ${PYSITELIB}/pylint/test/functional/assigning_non_slot.txt ${PYSITELIB}/pylint/test/functional/assignment_from_no_return.py ${PYSITELIB}/pylint/test/functional/assignment_from_no_return.txt ${PYSITELIB}/pylint/test/functional/assignment_from_no_return_py3.py ${PYSITELIB}/pylint/test/functional/assignment_from_no_return_py3.rc ${PYSITELIB}/pylint/test/functional/assignment_from_no_return_py3.txt ${PYSITELIB}/pylint/test/functional/async_functions.py ${PYSITELIB}/pylint/test/functional/async_functions.rc ${PYSITELIB}/pylint/test/functional/async_functions.txt ${PYSITELIB}/pylint/test/functional/attribute_defined_outside_init.py ${PYSITELIB}/pylint/test/functional/attribute_defined_outside_init.txt ${PYSITELIB}/pylint/test/functional/bad_continuation.py ${PYSITELIB}/pylint/test/functional/bad_continuation.txt ${PYSITELIB}/pylint/test/functional/bad_continuation_py36.py ${PYSITELIB}/pylint/test/functional/bad_continuation_py36.rc ${PYSITELIB}/pylint/test/functional/bad_continuation_tabs.py ${PYSITELIB}/pylint/test/functional/bad_continuation_tabs.rc ${PYSITELIB}/pylint/test/functional/bad_continuation_tabs.txt ${PYSITELIB}/pylint/test/functional/bad_except_order.py ${PYSITELIB}/pylint/test/functional/bad_except_order.txt ${PYSITELIB}/pylint/test/functional/bad_exception_context.py ${PYSITELIB}/pylint/test/functional/bad_exception_context.rc ${PYSITELIB}/pylint/test/functional/bad_exception_context.txt ${PYSITELIB}/pylint/test/functional/bad_indentation.py ${PYSITELIB}/pylint/test/functional/bad_indentation.txt ${PYSITELIB}/pylint/test/functional/bad_inline_option.py ${PYSITELIB}/pylint/test/functional/bad_inline_option.rc ${PYSITELIB}/pylint/test/functional/bad_inline_option.txt ${PYSITELIB}/pylint/test/functional/bad_open_mode.py ${PYSITELIB}/pylint/test/functional/bad_open_mode.rc ${PYSITELIB}/pylint/test/functional/bad_open_mode.txt ${PYSITELIB}/pylint/test/functional/bad_open_mode_py3.py ${PYSITELIB}/pylint/test/functional/bad_open_mode_py3.rc ${PYSITELIB}/pylint/test/functional/bad_open_mode_py3.txt ${PYSITELIB}/pylint/test/functional/bad_reversed_sequence.py ${PYSITELIB}/pylint/test/functional/bad_reversed_sequence.txt ${PYSITELIB}/pylint/test/functional/bad_staticmethod_argument.py ${PYSITELIB}/pylint/test/functional/bad_staticmethod_argument.txt ${PYSITELIB}/pylint/test/functional/bad_thread_instantiation.py ${PYSITELIB}/pylint/test/functional/bad_thread_instantiation.txt ${PYSITELIB}/pylint/test/functional/bad_whitespace.py ${PYSITELIB}/pylint/test/functional/bad_whitespace.txt ${PYSITELIB}/pylint/test/functional/bare_except.py ${PYSITELIB}/pylint/test/functional/bare_except.txt ${PYSITELIB}/pylint/test/functional/blacklisted_name.py ${PYSITELIB}/pylint/test/functional/blacklisted_name.txt ${PYSITELIB}/pylint/test/functional/boolean_datetime.py ${PYSITELIB}/pylint/test/functional/boolean_datetime.rc ${PYSITELIB}/pylint/test/functional/boolean_datetime.txt ${PYSITELIB}/pylint/test/functional/broad_except.py ${PYSITELIB}/pylint/test/functional/broad_except.txt ${PYSITELIB}/pylint/test/functional/bugfix_local_scope_metaclass_1177.py ${PYSITELIB}/pylint/test/functional/bugfix_local_scope_metaclass_1177.rc ${PYSITELIB}/pylint/test/functional/cellvar_escaping_loop.py ${PYSITELIB}/pylint/test/functional/cellvar_escaping_loop.txt ${PYSITELIB}/pylint/test/functional/class_members_py27.py ${PYSITELIB}/pylint/test/functional/class_members_py27.rc ${PYSITELIB}/pylint/test/functional/class_members_py27.txt ${PYSITELIB}/pylint/test/functional/class_members_py30.py ${PYSITELIB}/pylint/test/functional/class_members_py30.rc ${PYSITELIB}/pylint/test/functional/class_members_py30.txt ${PYSITELIB}/pylint/test/functional/class_scope.py ${PYSITELIB}/pylint/test/functional/class_scope.txt ${PYSITELIB}/pylint/test/functional/comparison_with_callable.py ${PYSITELIB}/pylint/test/functional/comparison_with_callable.txt ${PYSITELIB}/pylint/test/functional/confidence_filter.py ${PYSITELIB}/pylint/test/functional/confidence_filter.rc ${PYSITELIB}/pylint/test/functional/confidence_filter.txt ${PYSITELIB}/pylint/test/functional/confusing_with_statement.py ${PYSITELIB}/pylint/test/functional/confusing_with_statement.txt ${PYSITELIB}/pylint/test/functional/consider_iterating_dictionary.py ${PYSITELIB}/pylint/test/functional/consider_iterating_dictionary.txt ${PYSITELIB}/pylint/test/functional/consider_join.py ${PYSITELIB}/pylint/test/functional/consider_join.txt ${PYSITELIB}/pylint/test/functional/consider_merging_isinstance.py ${PYSITELIB}/pylint/test/functional/consider_merging_isinstance.txt ${PYSITELIB}/pylint/test/functional/consider_swap_variables.py ${PYSITELIB}/pylint/test/functional/consider_swap_variables.txt ${PYSITELIB}/pylint/test/functional/consider_using_dict_comprehension.py ${PYSITELIB}/pylint/test/functional/consider_using_dict_comprehension.txt ${PYSITELIB}/pylint/test/functional/consider_using_enumerate.py ${PYSITELIB}/pylint/test/functional/consider_using_enumerate.txt ${PYSITELIB}/pylint/test/functional/consider_using_get.py ${PYSITELIB}/pylint/test/functional/consider_using_get.txt ${PYSITELIB}/pylint/test/functional/consider_using_in.py ${PYSITELIB}/pylint/test/functional/consider_using_in.txt ${PYSITELIB}/pylint/test/functional/consider_using_set_comprehension.py ${PYSITELIB}/pylint/test/functional/consider_using_set_comprehension.txt ${PYSITELIB}/pylint/test/functional/continue_in_finally.py ${PYSITELIB}/pylint/test/functional/continue_in_finally.txt ${PYSITELIB}/pylint/test/functional/control_pragmas.py ${PYSITELIB}/pylint/test/functional/control_pragmas.txt ${PYSITELIB}/pylint/test/functional/crash_missing_module_type.py ${PYSITELIB}/pylint/test/functional/crash_missing_module_type.txt ${PYSITELIB}/pylint/test/functional/ctor_arguments.py ${PYSITELIB}/pylint/test/functional/ctor_arguments.txt ${PYSITELIB}/pylint/test/functional/dangerous_default_value.py ${PYSITELIB}/pylint/test/functional/dangerous_default_value.rc ${PYSITELIB}/pylint/test/functional/dangerous_default_value.txt ${PYSITELIB}/pylint/test/functional/dangerous_default_value_py30.py ${PYSITELIB}/pylint/test/functional/dangerous_default_value_py30.rc ${PYSITELIB}/pylint/test/functional/dangerous_default_value_py30.txt ${PYSITELIB}/pylint/test/functional/defined_and_used_on_same_line.py ${PYSITELIB}/pylint/test/functional/deprecated_lambda.py ${PYSITELIB}/pylint/test/functional/deprecated_lambda.rc ${PYSITELIB}/pylint/test/functional/deprecated_lambda.txt ${PYSITELIB}/pylint/test/functional/deprecated_method_getmoduleinfo.py ${PYSITELIB}/pylint/test/functional/deprecated_method_getmoduleinfo.rc ${PYSITELIB}/pylint/test/functional/deprecated_method_getmoduleinfo.txt ${PYSITELIB}/pylint/test/functional/deprecated_methods_py2.py ${PYSITELIB}/pylint/test/functional/deprecated_methods_py2.rc ${PYSITELIB}/pylint/test/functional/deprecated_methods_py2.txt ${PYSITELIB}/pylint/test/functional/deprecated_methods_py3.py ${PYSITELIB}/pylint/test/functional/deprecated_methods_py3.rc ${PYSITELIB}/pylint/test/functional/deprecated_methods_py3.txt ${PYSITELIB}/pylint/test/functional/deprecated_methods_py36.py ${PYSITELIB}/pylint/test/functional/deprecated_methods_py36.rc ${PYSITELIB}/pylint/test/functional/deprecated_methods_py36.txt ${PYSITELIB}/pylint/test/functional/deprecated_module_py2.py ${PYSITELIB}/pylint/test/functional/deprecated_module_py2.rc ${PYSITELIB}/pylint/test/functional/deprecated_module_py2.txt ${PYSITELIB}/pylint/test/functional/deprecated_module_py3.py ${PYSITELIB}/pylint/test/functional/deprecated_module_py3.rc ${PYSITELIB}/pylint/test/functional/deprecated_module_py3.txt ${PYSITELIB}/pylint/test/functional/deprecated_module_py36.py ${PYSITELIB}/pylint/test/functional/deprecated_module_py36.rc ${PYSITELIB}/pylint/test/functional/deprecated_module_py36.txt ${PYSITELIB}/pylint/test/functional/deprecated_module_py4.py ${PYSITELIB}/pylint/test/functional/deprecated_module_py4.rc ${PYSITELIB}/pylint/test/functional/deprecated_module_py4.txt ${PYSITELIB}/pylint/test/functional/deprecated_module_uninstalled.py ${PYSITELIB}/pylint/test/functional/deprecated_module_uninstalled.rc ${PYSITELIB}/pylint/test/functional/deprecated_module_uninstalled.txt ${PYSITELIB}/pylint/test/functional/disable_msg_github_issue_1389.py ${PYSITELIB}/pylint/test/functional/disable_msg_github_issue_1389.rc ${PYSITELIB}/pylint/test/functional/disable_ungrouped_imports.py ${PYSITELIB}/pylint/test/functional/disable_ungrouped_imports.txt ${PYSITELIB}/pylint/test/functional/disable_wrong_import_order.py ${PYSITELIB}/pylint/test/functional/disable_wrong_import_order.txt ${PYSITELIB}/pylint/test/functional/disable_wrong_import_position.py ${PYSITELIB}/pylint/test/functional/docstrings.py ${PYSITELIB}/pylint/test/functional/docstrings.txt ${PYSITELIB}/pylint/test/functional/duplicate_argument_name.py ${PYSITELIB}/pylint/test/functional/duplicate_argument_name.txt ${PYSITELIB}/pylint/test/functional/duplicate_argument_name_py3.py ${PYSITELIB}/pylint/test/functional/duplicate_argument_name_py3.rc ${PYSITELIB}/pylint/test/functional/duplicate_argument_name_py3.txt ${PYSITELIB}/pylint/test/functional/duplicate_bases.py ${PYSITELIB}/pylint/test/functional/duplicate_bases.txt ${PYSITELIB}/pylint/test/functional/duplicate_dict_literal_key.py ${PYSITELIB}/pylint/test/functional/duplicate_dict_literal_key.txt ${PYSITELIB}/pylint/test/functional/duplicate_except.py ${PYSITELIB}/pylint/test/functional/duplicate_except.txt ${PYSITELIB}/pylint/test/functional/duplicate_string_formatting_argument.py ${PYSITELIB}/pylint/test/functional/duplicate_string_formatting_argument.txt ${PYSITELIB}/pylint/test/functional/eval_used.py ${PYSITELIB}/pylint/test/functional/eval_used.txt ${PYSITELIB}/pylint/test/functional/exception_is_binary_op.py ${PYSITELIB}/pylint/test/functional/exception_is_binary_op.txt ${PYSITELIB}/pylint/test/functional/exception_message.py ${PYSITELIB}/pylint/test/functional/exception_message.rc ${PYSITELIB}/pylint/test/functional/exception_message.txt ${PYSITELIB}/pylint/test/functional/exec_used_py2.py ${PYSITELIB}/pylint/test/functional/exec_used_py2.rc ${PYSITELIB}/pylint/test/functional/exec_used_py2.txt ${PYSITELIB}/pylint/test/functional/exec_used_py3.py ${PYSITELIB}/pylint/test/functional/exec_used_py3.rc ${PYSITELIB}/pylint/test/functional/exec_used_py3.txt ${PYSITELIB}/pylint/test/functional/fallback_import_disabled.py ${PYSITELIB}/pylint/test/functional/fallback_import_disabled.txt ${PYSITELIB}/pylint/test/functional/fallback_import_enabled.py ${PYSITELIB}/pylint/test/functional/fallback_import_enabled.rc ${PYSITELIB}/pylint/test/functional/fallback_import_enabled.txt ${PYSITELIB}/pylint/test/functional/fixme.py ${PYSITELIB}/pylint/test/functional/fixme.txt ${PYSITELIB}/pylint/test/functional/fixme_bad_formatting_1139.py ${PYSITELIB}/pylint/test/functional/fixme_bad_formatting_1139.rc ${PYSITELIB}/pylint/test/functional/fixme_bad_formatting_1139.txt ${PYSITELIB}/pylint/test/functional/formatted_string_literal_with_if_py36.py ${PYSITELIB}/pylint/test/functional/formatted_string_literal_with_if_py36.rc ${PYSITELIB}/pylint/test/functional/formatting.txt ${PYSITELIB}/pylint/test/functional/function_redefined.py ${PYSITELIB}/pylint/test/functional/function_redefined.txt ${PYSITELIB}/pylint/test/functional/future_import.py ${PYSITELIB}/pylint/test/functional/future_unicode_literals.py ${PYSITELIB}/pylint/test/functional/future_unicode_literals.rc ${PYSITELIB}/pylint/test/functional/future_unicode_literals.txt ${PYSITELIB}/pylint/test/functional/generated_members.py ${PYSITELIB}/pylint/test/functional/generated_members.rc ${PYSITELIB}/pylint/test/functional/genexp_in_class_scope.py ${PYSITELIB}/pylint/test/functional/genexp_in_class_scope.txt ${PYSITELIB}/pylint/test/functional/genexpr_variable_scope.py ${PYSITELIB}/pylint/test/functional/genexpr_variable_scope.txt ${PYSITELIB}/pylint/test/functional/globals.py ${PYSITELIB}/pylint/test/functional/globals.txt ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence.py ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence.txt ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_latin1.py ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_latin1.txt ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_multiline.py ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_multiline.rc ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_multiline.txt ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_utf8.py ${PYSITELIB}/pylint/test/functional/implicit_str_concat_in_sequence_utf8.txt ${PYSITELIB}/pylint/test/functional/import_error.py ${PYSITELIB}/pylint/test/functional/import_error.rc ${PYSITELIB}/pylint/test/functional/import_error.txt ${PYSITELIB}/pylint/test/functional/inconsistent_mro.py ${PYSITELIB}/pylint/test/functional/inconsistent_mro.txt ${PYSITELIB}/pylint/test/functional/inconsistent_returns.py ${PYSITELIB}/pylint/test/functional/inconsistent_returns.rc ${PYSITELIB}/pylint/test/functional/inconsistent_returns.txt ${PYSITELIB}/pylint/test/functional/indexing_exception.py ${PYSITELIB}/pylint/test/functional/indexing_exception.rc ${PYSITELIB}/pylint/test/functional/indexing_exception.txt ${PYSITELIB}/pylint/test/functional/inherit_non_class.py ${PYSITELIB}/pylint/test/functional/inherit_non_class.txt ${PYSITELIB}/pylint/test/functional/init_is_generator.py ${PYSITELIB}/pylint/test/functional/init_is_generator.txt ${PYSITELIB}/pylint/test/functional/init_not_called.py ${PYSITELIB}/pylint/test/functional/init_not_called.txt ${PYSITELIB}/pylint/test/functional/init_subclass_classmethod_py36.py ${PYSITELIB}/pylint/test/functional/init_subclass_classmethod_py36.rc ${PYSITELIB}/pylint/test/functional/invalid_all_object.py ${PYSITELIB}/pylint/test/functional/invalid_all_object.txt ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/invalid_encoded_data.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/invalid_encoded_data.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/invalid_encoded_data.txt ${PYSITELIB}/pylint/test/functional/invalid_encoding_py27.py ${PYSITELIB}/pylint/test/functional/invalid_encoding_py27.rc ${PYSITELIB}/pylint/test/functional/invalid_encoding_py27.txt ${PYSITELIB}/pylint/test/functional/invalid_envvar_value.py ${PYSITELIB}/pylint/test/functional/invalid_envvar_value.txt ${PYSITELIB}/pylint/test/functional/invalid_exceptions_caught.py ${PYSITELIB}/pylint/test/functional/invalid_exceptions_caught.txt ${PYSITELIB}/pylint/test/functional/invalid_exceptions_raised.py ${PYSITELIB}/pylint/test/functional/invalid_exceptions_raised.txt ${PYSITELIB}/pylint/test/functional/invalid_length_returned.py ${PYSITELIB}/pylint/test/functional/invalid_length_returned.txt ${PYSITELIB}/pylint/test/functional/invalid_metaclass.py ${PYSITELIB}/pylint/test/functional/invalid_metaclass.txt ${PYSITELIB}/pylint/test/functional/invalid_metaclass_py3.py ${PYSITELIB}/pylint/test/functional/invalid_metaclass_py3.rc ${PYSITELIB}/pylint/test/functional/invalid_metaclass_py3.txt ${PYSITELIB}/pylint/test/functional/invalid_name.py ${PYSITELIB}/pylint/test/functional/invalid_name.txt ${PYSITELIB}/pylint/test/functional/invalid_sequence_index.py ${PYSITELIB}/pylint/test/functional/invalid_sequence_index.txt ${PYSITELIB}/pylint/test/functional/invalid_slice_index.py ${PYSITELIB}/pylint/test/functional/invalid_slice_index.txt ${PYSITELIB}/pylint/test/functional/invalid_star_assignment_target.py ${PYSITELIB}/pylint/test/functional/invalid_star_assignment_target.rc ${PYSITELIB}/pylint/test/functional/invalid_star_assignment_target.txt ${PYSITELIB}/pylint/test/functional/invalid_unary_operand_type.py ${PYSITELIB}/pylint/test/functional/invalid_unary_operand_type.txt ${PYSITELIB}/pylint/test/functional/iterable_context.py ${PYSITELIB}/pylint/test/functional/iterable_context.txt ${PYSITELIB}/pylint/test/functional/iterable_context_py2.py ${PYSITELIB}/pylint/test/functional/iterable_context_py2.rc ${PYSITELIB}/pylint/test/functional/iterable_context_py2.txt ${PYSITELIB}/pylint/test/functional/iterable_context_py3.py ${PYSITELIB}/pylint/test/functional/iterable_context_py3.rc ${PYSITELIB}/pylint/test/functional/iterable_context_py3.txt ${PYSITELIB}/pylint/test/functional/iterable_context_py36.py ${PYSITELIB}/pylint/test/functional/iterable_context_py36.rc ${PYSITELIB}/pylint/test/functional/iterable_context_py36.txt ${PYSITELIB}/pylint/test/functional/keyword_arg_before_vararg.py ${PYSITELIB}/pylint/test/functional/keyword_arg_before_vararg.txt ${PYSITELIB}/pylint/test/functional/len_checks.py ${PYSITELIB}/pylint/test/functional/len_checks.txt ${PYSITELIB}/pylint/test/functional/line_endings.py ${PYSITELIB}/pylint/test/functional/line_endings.rc ${PYSITELIB}/pylint/test/functional/line_endings.txt ${PYSITELIB}/pylint/test/functional/line_too_long.py ${PYSITELIB}/pylint/test/functional/line_too_long.txt ${PYSITELIB}/pylint/test/functional/line_too_long_end_of_module.py ${PYSITELIB}/pylint/test/functional/literal_comparison.py ${PYSITELIB}/pylint/test/functional/literal_comparison.txt ${PYSITELIB}/pylint/test/functional/logging_format_interpolation.py ${PYSITELIB}/pylint/test/functional/logging_format_interpolation.txt ${PYSITELIB}/pylint/test/functional/logging_format_interpolation_py36.py ${PYSITELIB}/pylint/test/functional/logging_format_interpolation_py36.rc ${PYSITELIB}/pylint/test/functional/logging_format_interpolation_py36.txt ${PYSITELIB}/pylint/test/functional/logging_fstring_interpolation_py36.py ${PYSITELIB}/pylint/test/functional/logging_fstring_interpolation_py36.rc ${PYSITELIB}/pylint/test/functional/logging_fstring_interpolation_py36.txt ${PYSITELIB}/pylint/test/functional/logging_not_lazy.py ${PYSITELIB}/pylint/test/functional/logging_not_lazy.txt ${PYSITELIB}/pylint/test/functional/logical_tautology.py ${PYSITELIB}/pylint/test/functional/logical_tautology.txt ${PYSITELIB}/pylint/test/functional/long_lines_with_utf8.py ${PYSITELIB}/pylint/test/functional/long_lines_with_utf8.txt ${PYSITELIB}/pylint/test/functional/long_utf8_lines.py ${PYSITELIB}/pylint/test/functional/long_utf8_lines.txt ${PYSITELIB}/pylint/test/functional/lost_exception.py ${PYSITELIB}/pylint/test/functional/lost_exception.txt ${PYSITELIB}/pylint/test/functional/mapping_context.py ${PYSITELIB}/pylint/test/functional/mapping_context.txt ${PYSITELIB}/pylint/test/functional/mapping_context_py2.py ${PYSITELIB}/pylint/test/functional/mapping_context_py2.rc ${PYSITELIB}/pylint/test/functional/mapping_context_py2.txt ${PYSITELIB}/pylint/test/functional/mapping_context_py3.py ${PYSITELIB}/pylint/test/functional/mapping_context_py3.rc ${PYSITELIB}/pylint/test/functional/mapping_context_py3.txt ${PYSITELIB}/pylint/test/functional/member_checks.py ${PYSITELIB}/pylint/test/functional/member_checks.txt ${PYSITELIB}/pylint/test/functional/member_checks_hints.py ${PYSITELIB}/pylint/test/functional/member_checks_hints.rc ${PYSITELIB}/pylint/test/functional/member_checks_hints.txt ${PYSITELIB}/pylint/test/functional/member_checks_ignore_none.py ${PYSITELIB}/pylint/test/functional/member_checks_ignore_none.rc ${PYSITELIB}/pylint/test/functional/member_checks_ignore_none.txt ${PYSITELIB}/pylint/test/functional/member_checks_inference_improvements.py ${PYSITELIB}/pylint/test/functional/member_checks_no_hints.py ${PYSITELIB}/pylint/test/functional/member_checks_no_hints.rc ${PYSITELIB}/pylint/test/functional/member_checks_no_hints.txt ${PYSITELIB}/pylint/test/functional/member_checks_opaque.py ${PYSITELIB}/pylint/test/functional/member_checks_opaque.rc ${PYSITELIB}/pylint/test/functional/member_checks_opaque.txt ${PYSITELIB}/pylint/test/functional/member_checks_py37.py ${PYSITELIB}/pylint/test/functional/member_checks_py37.rc ${PYSITELIB}/pylint/test/functional/member_checks_py37.txt ${PYSITELIB}/pylint/test/functional/membership_protocol.py ${PYSITELIB}/pylint/test/functional/membership_protocol.txt ${PYSITELIB}/pylint/test/functional/membership_protocol_py2.py ${PYSITELIB}/pylint/test/functional/membership_protocol_py2.rc ${PYSITELIB}/pylint/test/functional/membership_protocol_py2.txt ${PYSITELIB}/pylint/test/functional/membership_protocol_py3.py ${PYSITELIB}/pylint/test/functional/membership_protocol_py3.rc ${PYSITELIB}/pylint/test/functional/membership_protocol_py3.txt ${PYSITELIB}/pylint/test/functional/messages_managed_by_id.py ${PYSITELIB}/pylint/test/functional/messages_managed_by_id.txt ${PYSITELIB}/pylint/test/functional/method_hidden.py ${PYSITELIB}/pylint/test/functional/method_hidden.txt ${PYSITELIB}/pylint/test/functional/misplaced_bare_raise.py ${PYSITELIB}/pylint/test/functional/misplaced_bare_raise.txt ${PYSITELIB}/pylint/test/functional/misplaced_comparison_constant.py ${PYSITELIB}/pylint/test/functional/misplaced_comparison_constant.txt ${PYSITELIB}/pylint/test/functional/misplaced_format_function.py ${PYSITELIB}/pylint/test/functional/misplaced_format_function.txt ${PYSITELIB}/pylint/test/functional/misplaced_future.py ${PYSITELIB}/pylint/test/functional/misplaced_future.txt ${PYSITELIB}/pylint/test/functional/missing_docstring.py ${PYSITELIB}/pylint/test/functional/missing_docstring.txt ${PYSITELIB}/pylint/test/functional/missing_final_newline.py ${PYSITELIB}/pylint/test/functional/missing_final_newline.txt ${PYSITELIB}/pylint/test/functional/missing_kwoa_py3.py ${PYSITELIB}/pylint/test/functional/missing_kwoa_py3.rc ${PYSITELIB}/pylint/test/functional/missing_kwoa_py3.txt ${PYSITELIB}/pylint/test/functional/missing_self_argument.py ${PYSITELIB}/pylint/test/functional/missing_self_argument.txt ${PYSITELIB}/pylint/test/functional/mixed_indentation.py ${PYSITELIB}/pylint/test/functional/mixed_indentation.txt ${PYSITELIB}/pylint/test/functional/monkeypatch_method.py ${PYSITELIB}/pylint/test/functional/monkeypatch_method.txt ${PYSITELIB}/pylint/test/functional/multiple_imports.py ${PYSITELIB}/pylint/test/functional/multiple_imports.txt ${PYSITELIB}/pylint/test/functional/namePresetCamelCase.py ${PYSITELIB}/pylint/test/functional/namePresetCamelCase.rc ${PYSITELIB}/pylint/test/functional/namePresetCamelCase.txt ${PYSITELIB}/pylint/test/functional/name_preset_snake_case.py ${PYSITELIB}/pylint/test/functional/name_preset_snake_case.rc ${PYSITELIB}/pylint/test/functional/name_preset_snake_case.txt ${PYSITELIB}/pylint/test/functional/name_styles.py ${PYSITELIB}/pylint/test/functional/name_styles.rc ${PYSITELIB}/pylint/test/functional/name_styles.txt ${PYSITELIB}/pylint/test/functional/namedtuple_member_inference.py ${PYSITELIB}/pylint/test/functional/namedtuple_member_inference.txt ${PYSITELIB}/pylint/test/functional/names_in__all__.py ${PYSITELIB}/pylint/test/functional/names_in__all__.txt ${PYSITELIB}/pylint/test/functional/nested_blocks_issue1088.py ${PYSITELIB}/pylint/test/functional/nested_blocks_issue1088.txt ${PYSITELIB}/pylint/test/functional/no_classmethod_decorator.py ${PYSITELIB}/pylint/test/functional/no_classmethod_decorator.txt ${PYSITELIB}/pylint/test/functional/no_else_raise.py ${PYSITELIB}/pylint/test/functional/no_else_raise.txt ${PYSITELIB}/pylint/test/functional/no_else_return.py ${PYSITELIB}/pylint/test/functional/no_else_return.txt ${PYSITELIB}/pylint/test/functional/no_name_in_module.py ${PYSITELIB}/pylint/test/functional/no_name_in_module.txt ${PYSITELIB}/pylint/test/functional/no_self_argument_py37.py ${PYSITELIB}/pylint/test/functional/no_self_argument_py37.rc ${PYSITELIB}/pylint/test/functional/no_self_argument_py37.txt ${PYSITELIB}/pylint/test/functional/no_self_use.py ${PYSITELIB}/pylint/test/functional/no_self_use.txt ${PYSITELIB}/pylint/test/functional/no_self_use_py3.py ${PYSITELIB}/pylint/test/functional/no_self_use_py3.rc ${PYSITELIB}/pylint/test/functional/no_self_use_py3.txt ${PYSITELIB}/pylint/test/functional/no_staticmethod_decorator.py ${PYSITELIB}/pylint/test/functional/no_staticmethod_decorator.txt ${PYSITELIB}/pylint/test/functional/non_iterator_returned.py ${PYSITELIB}/pylint/test/functional/non_iterator_returned.txt ${PYSITELIB}/pylint/test/functional/none_dunder_protocols_py36.py ${PYSITELIB}/pylint/test/functional/none_dunder_protocols_py36.rc ${PYSITELIB}/pylint/test/functional/none_dunder_protocols_py36.txt ${PYSITELIB}/pylint/test/functional/nonexistent_operator.py ${PYSITELIB}/pylint/test/functional/nonexistent_operator.txt ${PYSITELIB}/pylint/test/functional/nonlocal_and_global.py ${PYSITELIB}/pylint/test/functional/nonlocal_and_global.rc ${PYSITELIB}/pylint/test/functional/nonlocal_and_global.txt ${PYSITELIB}/pylint/test/functional/nonlocal_without_binding.py ${PYSITELIB}/pylint/test/functional/nonlocal_without_binding.rc ${PYSITELIB}/pylint/test/functional/nonlocal_without_binding.txt ${PYSITELIB}/pylint/test/functional/not_async_context_manager.py ${PYSITELIB}/pylint/test/functional/not_async_context_manager.rc ${PYSITELIB}/pylint/test/functional/not_async_context_manager.txt ${PYSITELIB}/pylint/test/functional/not_async_context_manager_py37.py ${PYSITELIB}/pylint/test/functional/not_async_context_manager_py37.rc ${PYSITELIB}/pylint/test/functional/not_async_context_manager_py37.txt ${PYSITELIB}/pylint/test/functional/not_callable.py ${PYSITELIB}/pylint/test/functional/not_callable.txt ${PYSITELIB}/pylint/test/functional/not_context_manager.py ${PYSITELIB}/pylint/test/functional/not_context_manager.txt ${PYSITELIB}/pylint/test/functional/not_in_loop.py ${PYSITELIB}/pylint/test/functional/not_in_loop.txt ${PYSITELIB}/pylint/test/functional/old_division_manually.py ${PYSITELIB}/pylint/test/functional/old_division_manually.rc ${PYSITELIB}/pylint/test/functional/postponed_evaluation_activated.py ${PYSITELIB}/pylint/test/functional/postponed_evaluation_activated.rc ${PYSITELIB}/pylint/test/functional/postponed_evaluation_activated.txt ${PYSITELIB}/pylint/test/functional/postponed_evaluation_not_activated.py ${PYSITELIB}/pylint/test/functional/postponed_evaluation_not_activated.rc ${PYSITELIB}/pylint/test/functional/postponed_evaluation_not_activated.txt ${PYSITELIB}/pylint/test/functional/print_always_warns.py ${PYSITELIB}/pylint/test/functional/print_always_warns.rc ${PYSITELIB}/pylint/test/functional/print_always_warns.txt ${PYSITELIB}/pylint/test/functional/protected_access_access_different_scopes.py ${PYSITELIB}/pylint/test/functional/protected_access_access_different_scopes.rc ${PYSITELIB}/pylint/test/functional/protected_access_access_different_scopes.txt ${PYSITELIB}/pylint/test/functional/raising_format_tuple.py ${PYSITELIB}/pylint/test/functional/raising_format_tuple.txt ${PYSITELIB}/pylint/test/functional/raising_non_exception_py3.py ${PYSITELIB}/pylint/test/functional/raising_non_exception_py3.rc ${PYSITELIB}/pylint/test/functional/raising_non_exception_py3.txt ${PYSITELIB}/pylint/test/functional/raising_self.py ${PYSITELIB}/pylint/test/functional/raising_self.txt ${PYSITELIB}/pylint/test/functional/recursion_error_2667.py ${PYSITELIB}/pylint/test/functional/recursion_error_2667.txt ${PYSITELIB}/pylint/test/functional/recursion_error_940.py ${PYSITELIB}/pylint/test/functional/recursion_error_crash.py ${PYSITELIB}/pylint/test/functional/recursion_error_crash.txt ${PYSITELIB}/pylint/test/functional/recursion_error_crash_2683.py ${PYSITELIB}/pylint/test/functional/recursion_error_crash_2683.txt ${PYSITELIB}/pylint/test/functional/recursion_error_crash_astroid_623.py ${PYSITELIB}/pylint/test/functional/recursion_error_crash_astroid_623.txt ${PYSITELIB}/pylint/test/functional/redefine_in_handler.py ${PYSITELIB}/pylint/test/functional/redefine_in_handler.rc ${PYSITELIB}/pylint/test/functional/redefine_in_handler.txt ${PYSITELIB}/pylint/test/functional/redefined_argument_from_local.py ${PYSITELIB}/pylint/test/functional/redefined_argument_from_local.txt ${PYSITELIB}/pylint/test/functional/redefined_builtin.py ${PYSITELIB}/pylint/test/functional/redefined_builtin.txt ${PYSITELIB}/pylint/test/functional/redundant_unittest_assert.py ${PYSITELIB}/pylint/test/functional/redundant_unittest_assert.txt ${PYSITELIB}/pylint/test/functional/regression_1326_crash_uninferable.py ${PYSITELIB}/pylint/test/functional/regression_no_value_for_parameter.py ${PYSITELIB}/pylint/test/functional/regression_no_value_for_parameter.txt ${PYSITELIB}/pylint/test/functional/reimported.py ${PYSITELIB}/pylint/test/functional/reimported.txt ${PYSITELIB}/pylint/test/functional/repeated_keyword.py ${PYSITELIB}/pylint/test/functional/repeated_keyword.txt ${PYSITELIB}/pylint/test/functional/return_in_init.py ${PYSITELIB}/pylint/test/functional/return_in_init.txt ${PYSITELIB}/pylint/test/functional/return_outside_function.py ${PYSITELIB}/pylint/test/functional/return_outside_function.txt ${PYSITELIB}/pylint/test/functional/reused_outer_loop_variable.py ${PYSITELIB}/pylint/test/functional/reused_outer_loop_variable.txt ${PYSITELIB}/pylint/test/functional/reused_outer_loop_variable_py3.py ${PYSITELIB}/pylint/test/functional/reused_outer_loop_variable_py3.rc ${PYSITELIB}/pylint/test/functional/reused_outer_loop_variable_py3.txt ${PYSITELIB}/pylint/test/functional/self_cls_assignment.py ${PYSITELIB}/pylint/test/functional/self_cls_assignment.txt ${PYSITELIB}/pylint/test/functional/signature_differs.py ${PYSITELIB}/pylint/test/functional/signature_differs.txt ${PYSITELIB}/pylint/test/functional/simplifiable_if_expression.py ${PYSITELIB}/pylint/test/functional/simplifiable_if_expression.txt ${PYSITELIB}/pylint/test/functional/simplifiable_if_statement.py ${PYSITELIB}/pylint/test/functional/simplifiable_if_statement.txt ${PYSITELIB}/pylint/test/functional/simplify_chained_comparison.py ${PYSITELIB}/pylint/test/functional/simplify_chained_comparison.txt ${PYSITELIB}/pylint/test/functional/singledispatch_functions.py ${PYSITELIB}/pylint/test/functional/singledispatch_functions.rc ${PYSITELIB}/pylint/test/functional/singledispatch_functions.txt ${PYSITELIB}/pylint/test/functional/singledispatch_functions_py3.py ${PYSITELIB}/pylint/test/functional/singledispatch_functions_py3.rc ${PYSITELIB}/pylint/test/functional/singledispatch_functions_py3.txt ${PYSITELIB}/pylint/test/functional/singleton_comparison.py ${PYSITELIB}/pylint/test/functional/singleton_comparison.txt ${PYSITELIB}/pylint/test/functional/slots_checks.py ${PYSITELIB}/pylint/test/functional/slots_checks.txt ${PYSITELIB}/pylint/test/functional/socketerror_import.py ${PYSITELIB}/pylint/test/functional/star_needs_assignment_target.py ${PYSITELIB}/pylint/test/functional/star_needs_assignment_target.rc ${PYSITELIB}/pylint/test/functional/star_needs_assignment_target.txt ${PYSITELIB}/pylint/test/functional/star_needs_assignment_target_py35.py ${PYSITELIB}/pylint/test/functional/star_needs_assignment_target_py35.rc ${PYSITELIB}/pylint/test/functional/star_needs_assignment_target_py35.txt ${PYSITELIB}/pylint/test/functional/statement_without_effect.py ${PYSITELIB}/pylint/test/functional/statement_without_effect.txt ${PYSITELIB}/pylint/test/functional/statement_without_effect_py36.py ${PYSITELIB}/pylint/test/functional/statement_without_effect_py36.rc ${PYSITELIB}/pylint/test/functional/statement_without_effect_py36.txt ${PYSITELIB}/pylint/test/functional/stop_iteration_inside_generator.py ${PYSITELIB}/pylint/test/functional/stop_iteration_inside_generator.rc ${PYSITELIB}/pylint/test/functional/stop_iteration_inside_generator.txt ${PYSITELIB}/pylint/test/functional/string_formatting.py ${PYSITELIB}/pylint/test/functional/string_formatting.txt ${PYSITELIB}/pylint/test/functional/string_formatting_disable.py ${PYSITELIB}/pylint/test/functional/string_formatting_disable.rc ${PYSITELIB}/pylint/test/functional/string_formatting_disable.txt ${PYSITELIB}/pylint/test/functional/string_formatting_failed_inference.py ${PYSITELIB}/pylint/test/functional/string_formatting_failed_inference_py35.py ${PYSITELIB}/pylint/test/functional/string_formatting_failed_inference_py35.rc ${PYSITELIB}/pylint/test/functional/string_formatting_py27.py ${PYSITELIB}/pylint/test/functional/string_formatting_py27.rc ${PYSITELIB}/pylint/test/functional/string_formatting_py27.txt ${PYSITELIB}/pylint/test/functional/string_formatting_py3.py ${PYSITELIB}/pylint/test/functional/string_formatting_py3.rc ${PYSITELIB}/pylint/test/functional/string_formatting_py3.txt ${PYSITELIB}/pylint/test/functional/subprocess_popen_preexec_fn.py ${PYSITELIB}/pylint/test/functional/subprocess_popen_preexec_fn.txt ${PYSITELIB}/pylint/test/functional/super_checks.py ${PYSITELIB}/pylint/test/functional/super_checks.txt ${PYSITELIB}/pylint/test/functional/superfluous_parens.py ${PYSITELIB}/pylint/test/functional/superfluous_parens.txt ${PYSITELIB}/pylint/test/functional/suspicious_str_strip_call.py ${PYSITELIB}/pylint/test/functional/suspicious_str_strip_call.rc ${PYSITELIB}/pylint/test/functional/suspicious_str_strip_call.txt ${PYSITELIB}/pylint/test/functional/suspicious_str_strip_call_py3.py ${PYSITELIB}/pylint/test/functional/suspicious_str_strip_call_py3.rc ${PYSITELIB}/pylint/test/functional/suspicious_str_strip_call_py3.txt ${PYSITELIB}/pylint/test/functional/syntax_error.py ${PYSITELIB}/pylint/test/functional/syntax_error.rc ${PYSITELIB}/pylint/test/functional/syntax_error.txt ${PYSITELIB}/pylint/test/functional/syntax_error_jython.py ${PYSITELIB}/pylint/test/functional/syntax_error_jython.rc ${PYSITELIB}/pylint/test/functional/syntax_error_jython.txt ${PYSITELIB}/pylint/test/functional/sys_stream_regression_1004.py ${PYSITELIB}/pylint/test/functional/sys_stream_regression_1004.rc ${PYSITELIB}/pylint/test/functional/sys_stream_regression_1004.txt ${PYSITELIB}/pylint/test/functional/ternary.py ${PYSITELIB}/pylint/test/functional/ternary.txt ${PYSITELIB}/pylint/test/functional/test_compile.py ${PYSITELIB}/pylint/test/functional/tokenize_error.py ${PYSITELIB}/pylint/test/functional/tokenize_error.rc ${PYSITELIB}/pylint/test/functional/tokenize_error.txt ${PYSITELIB}/pylint/test/functional/tokenize_error_jython.py ${PYSITELIB}/pylint/test/functional/tokenize_error_jython.rc ${PYSITELIB}/pylint/test/functional/tokenize_error_jython.txt ${PYSITELIB}/pylint/test/functional/too_few_public_methods.py ${PYSITELIB}/pylint/test/functional/too_few_public_methods.txt ${PYSITELIB}/pylint/test/functional/too_few_public_methods_37.py ${PYSITELIB}/pylint/test/functional/too_few_public_methods_37.rc ${PYSITELIB}/pylint/test/functional/too_few_public_methods_37.txt ${PYSITELIB}/pylint/test/functional/too_many_ancestors.py ${PYSITELIB}/pylint/test/functional/too_many_ancestors.txt ${PYSITELIB}/pylint/test/functional/too_many_arguments.py ${PYSITELIB}/pylint/test/functional/too_many_arguments.txt ${PYSITELIB}/pylint/test/functional/too_many_arguments_issue_1045.py ${PYSITELIB}/pylint/test/functional/too_many_arguments_issue_1045.rc ${PYSITELIB}/pylint/test/functional/too_many_arguments_issue_1045.txt ${PYSITELIB}/pylint/test/functional/too_many_boolean_expressions.py ${PYSITELIB}/pylint/test/functional/too_many_boolean_expressions.txt ${PYSITELIB}/pylint/test/functional/too_many_branches.py ${PYSITELIB}/pylint/test/functional/too_many_branches.txt ${PYSITELIB}/pylint/test/functional/too_many_instance_attributes.py ${PYSITELIB}/pylint/test/functional/too_many_instance_attributes.txt ${PYSITELIB}/pylint/test/functional/too_many_lines.py ${PYSITELIB}/pylint/test/functional/too_many_lines.txt ${PYSITELIB}/pylint/test/functional/too_many_lines_disabled.py ${PYSITELIB}/pylint/test/functional/too_many_locals.py ${PYSITELIB}/pylint/test/functional/too_many_locals.txt ${PYSITELIB}/pylint/test/functional/too_many_nested_blocks.py ${PYSITELIB}/pylint/test/functional/too_many_nested_blocks.txt ${PYSITELIB}/pylint/test/functional/too_many_public_methods.py ${PYSITELIB}/pylint/test/functional/too_many_public_methods.txt ${PYSITELIB}/pylint/test/functional/too_many_return_statements.py ${PYSITELIB}/pylint/test/functional/too_many_return_statements.txt ${PYSITELIB}/pylint/test/functional/too_many_star_expressions.py ${PYSITELIB}/pylint/test/functional/too_many_star_expressions.rc ${PYSITELIB}/pylint/test/functional/too_many_star_expressions.txt ${PYSITELIB}/pylint/test/functional/too_many_statements.py ${PYSITELIB}/pylint/test/functional/too_many_statements.txt ${PYSITELIB}/pylint/test/functional/trailing_comma_tuple.py ${PYSITELIB}/pylint/test/functional/trailing_comma_tuple.rc ${PYSITELIB}/pylint/test/functional/trailing_comma_tuple.txt ${PYSITELIB}/pylint/test/functional/trailing_newlines.py ${PYSITELIB}/pylint/test/functional/trailing_newlines.txt ${PYSITELIB}/pylint/test/functional/trailing_whitespaces.py ${PYSITELIB}/pylint/test/functional/trailing_whitespaces.txt ${PYSITELIB}/pylint/test/functional/try_except_raise.py ${PYSITELIB}/pylint/test/functional/try_except_raise.txt ${PYSITELIB}/pylint/test/functional/try_except_raise_crash.py ${PYSITELIB}/pylint/test/functional/try_except_raise_crash.txt ${PYSITELIB}/pylint/test/functional/unbalanced_tuple_unpacking.py ${PYSITELIB}/pylint/test/functional/unbalanced_tuple_unpacking.txt ${PYSITELIB}/pylint/test/functional/unbalanced_tuple_unpacking_py30.py ${PYSITELIB}/pylint/test/functional/unbalanced_tuple_unpacking_py30.rc ${PYSITELIB}/pylint/test/functional/undefined_loop_variable.py ${PYSITELIB}/pylint/test/functional/undefined_loop_variable.txt ${PYSITELIB}/pylint/test/functional/undefined_variable.py ${PYSITELIB}/pylint/test/functional/undefined_variable.txt ${PYSITELIB}/pylint/test/functional/undefined_variable_py30.py ${PYSITELIB}/pylint/test/functional/undefined_variable_py30.rc ${PYSITELIB}/pylint/test/functional/undefined_variable_py30.txt ${PYSITELIB}/pylint/test/functional/unexpected_special_method_signature.py ${PYSITELIB}/pylint/test/functional/unexpected_special_method_signature.txt ${PYSITELIB}/pylint/test/functional/ungrouped_imports.py ${PYSITELIB}/pylint/test/functional/ungrouped_imports.txt ${PYSITELIB}/pylint/test/functional/unhashable_dict_key.py ${PYSITELIB}/pylint/test/functional/unhashable_dict_key.txt ${PYSITELIB}/pylint/test/functional/unidiomatic_typecheck.py ${PYSITELIB}/pylint/test/functional/unidiomatic_typecheck.txt ${PYSITELIB}/pylint/test/functional/uninferable_all_object.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.txt ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.txt ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.txt ${PYSITELIB}/pylint/test/functional/unnecessary_lambda.py ${PYSITELIB}/pylint/test/functional/unnecessary_lambda.txt ${PYSITELIB}/pylint/test/functional/unnecessary_pass.py ${PYSITELIB}/pylint/test/functional/unnecessary_pass.txt ${PYSITELIB}/pylint/test/functional/unneeded_not.py ${PYSITELIB}/pylint/test/functional/unneeded_not.txt ${PYSITELIB}/pylint/test/functional/unpacked_exceptions.py ${PYSITELIB}/pylint/test/functional/unpacked_exceptions.rc ${PYSITELIB}/pylint/test/functional/unpacked_exceptions.txt ${PYSITELIB}/pylint/test/functional/unpacking.py ${PYSITELIB}/pylint/test/functional/unpacking_generalizations.py ${PYSITELIB}/pylint/test/functional/unpacking_generalizations.rc ${PYSITELIB}/pylint/test/functional/unpacking_generalizations.txt ${PYSITELIB}/pylint/test/functional/unpacking_non_sequence.py ${PYSITELIB}/pylint/test/functional/unpacking_non_sequence.txt ${PYSITELIB}/pylint/test/functional/unreachable.py ${PYSITELIB}/pylint/test/functional/unreachable.txt ${PYSITELIB}/pylint/test/functional/unrecognized_inline_option.py ${PYSITELIB}/pylint/test/functional/unrecognized_inline_option.txt ${PYSITELIB}/pylint/test/functional/unsubscriptable_value.py ${PYSITELIB}/pylint/test/functional/unsubscriptable_value.txt ${PYSITELIB}/pylint/test/functional/unsubscriptable_value_py37.py ${PYSITELIB}/pylint/test/functional/unsubscriptable_value_py37.rc ${PYSITELIB}/pylint/test/functional/unsubscriptable_value_py37.txt ${PYSITELIB}/pylint/test/functional/unsupported_assignment_operation.py ${PYSITELIB}/pylint/test/functional/unsupported_assignment_operation.txt ${PYSITELIB}/pylint/test/functional/unsupported_binary_operation.py ${PYSITELIB}/pylint/test/functional/unsupported_binary_operation.rc ${PYSITELIB}/pylint/test/functional/unsupported_binary_operation.txt ${PYSITELIB}/pylint/test/functional/unsupported_delete_operation.py ${PYSITELIB}/pylint/test/functional/unsupported_delete_operation.txt ${PYSITELIB}/pylint/test/functional/unused_argument.py ${PYSITELIB}/pylint/test/functional/unused_argument.txt ${PYSITELIB}/pylint/test/functional/unused_argument_py3.py ${PYSITELIB}/pylint/test/functional/unused_argument_py3.rc ${PYSITELIB}/pylint/test/functional/unused_argument_py3.txt ${PYSITELIB}/pylint/test/functional/unused_global_variable1.py ${PYSITELIB}/pylint/test/functional/unused_global_variable2.py ${PYSITELIB}/pylint/test/functional/unused_global_variable2.rc ${PYSITELIB}/pylint/test/functional/unused_global_variable2.txt ${PYSITELIB}/pylint/test/functional/unused_global_variable3.py ${PYSITELIB}/pylint/test/functional/unused_global_variable4.py ${PYSITELIB}/pylint/test/functional/unused_global_variable4.rc ${PYSITELIB}/pylint/test/functional/unused_global_variable4.txt ${PYSITELIB}/pylint/test/functional/unused_import.py ${PYSITELIB}/pylint/test/functional/unused_import.txt ${PYSITELIB}/pylint/test/functional/unused_import_assigned_to.py ${PYSITELIB}/pylint/test/functional/unused_typing_imports.py ${PYSITELIB}/pylint/test/functional/unused_typing_imports.rc ${PYSITELIB}/pylint/test/functional/unused_variable.py ${PYSITELIB}/pylint/test/functional/unused_variable.txt ${PYSITELIB}/pylint/test/functional/unused_variable_py36.py ${PYSITELIB}/pylint/test/functional/unused_variable_py36.rc ${PYSITELIB}/pylint/test/functional/unused_variable_py36.txt ${PYSITELIB}/pylint/test/functional/used_before_assignment_488.py ${PYSITELIB}/pylint/test/functional/used_before_assignment_issue1081.py ${PYSITELIB}/pylint/test/functional/used_before_assignment_issue1081.txt ${PYSITELIB}/pylint/test/functional/used_before_assignment_issue853.py ${PYSITELIB}/pylint/test/functional/used_before_assignment_nonlocal.py ${PYSITELIB}/pylint/test/functional/used_before_assignment_nonlocal.rc ${PYSITELIB}/pylint/test/functional/used_before_assignment_nonlocal.txt ${PYSITELIB}/pylint/test/functional/used_prior_global_declaration.py ${PYSITELIB}/pylint/test/functional/used_prior_global_declaration.rc ${PYSITELIB}/pylint/test/functional/used_prior_global_declaration.txt ${PYSITELIB}/pylint/test/functional/useless-import-alias.py ${PYSITELIB}/pylint/test/functional/useless-import-alias.txt ${PYSITELIB}/pylint/test/functional/useless_else_on_loop.py ${PYSITELIB}/pylint/test/functional/useless_else_on_loop.txt ${PYSITELIB}/pylint/test/functional/useless_object_inheritance.py ${PYSITELIB}/pylint/test/functional/useless_object_inheritance.txt ${PYSITELIB}/pylint/test/functional/useless_return.py ${PYSITELIB}/pylint/test/functional/useless_return.txt ${PYSITELIB}/pylint/test/functional/useless_super_delegation.py ${PYSITELIB}/pylint/test/functional/useless_super_delegation.txt ${PYSITELIB}/pylint/test/functional/useless_super_delegation_py3.py ${PYSITELIB}/pylint/test/functional/useless_super_delegation_py3.rc ${PYSITELIB}/pylint/test/functional/useless_super_delegation_py3.txt ${PYSITELIB}/pylint/test/functional/useless_super_delegation_py35.py ${PYSITELIB}/pylint/test/functional/useless_super_delegation_py35.rc ${PYSITELIB}/pylint/test/functional/useless_super_delegation_py35.txt ${PYSITELIB}/pylint/test/functional/using_constant_test.py ${PYSITELIB}/pylint/test/functional/using_constant_test.txt ${PYSITELIB}/pylint/test/functional/wildcard_import.py ${PYSITELIB}/pylint/test/functional/wildcard_import.txt ${PYSITELIB}/pylint/test/functional/wildcard_import_allowed.py ${PYSITELIB}/pylint/test/functional/wildcard_import_allowed.rc ${PYSITELIB}/pylint/test/functional/wildcard_import_allowed.txt ${PYSITELIB}/pylint/test/functional/with_used_before_assign.py ${PYSITELIB}/pylint/test/functional/with_used_before_assign.txt ${PYSITELIB}/pylint/test/functional/with_using_generator.py ${PYSITELIB}/pylint/test/functional/with_using_generator.txt ${PYSITELIB}/pylint/test/functional/wrong_exception_operation.py ${PYSITELIB}/pylint/test/functional/wrong_exception_operation.txt ${PYSITELIB}/pylint/test/functional/wrong_import_order.py ${PYSITELIB}/pylint/test/functional/wrong_import_order.txt ${PYSITELIB}/pylint/test/functional/wrong_import_order2.py ${PYSITELIB}/pylint/test/functional/wrong_import_position.py ${PYSITELIB}/pylint/test/functional/wrong_import_position.txt ${PYSITELIB}/pylint/test/functional/wrong_import_position10.py ${PYSITELIB}/pylint/test/functional/wrong_import_position11.py ${PYSITELIB}/pylint/test/functional/wrong_import_position11.txt ${PYSITELIB}/pylint/test/functional/wrong_import_position12.py ${PYSITELIB}/pylint/test/functional/wrong_import_position12.txt ${PYSITELIB}/pylint/test/functional/wrong_import_position13.py ${PYSITELIB}/pylint/test/functional/wrong_import_position13.txt ${PYSITELIB}/pylint/test/functional/wrong_import_position14.py ${PYSITELIB}/pylint/test/functional/wrong_import_position14.txt ${PYSITELIB}/pylint/test/functional/wrong_import_position15.py ${PYSITELIB}/pylint/test/functional/wrong_import_position2.py ${PYSITELIB}/pylint/test/functional/wrong_import_position3.py ${PYSITELIB}/pylint/test/functional/wrong_import_position4.py ${PYSITELIB}/pylint/test/functional/wrong_import_position5.py ${PYSITELIB}/pylint/test/functional/wrong_import_position6.py ${PYSITELIB}/pylint/test/functional/wrong_import_position7.py ${PYSITELIB}/pylint/test/functional/wrong_import_position8.py ${PYSITELIB}/pylint/test/functional/wrong_import_position9.py ${PYSITELIB}/pylint/test/functional/wrong_import_position_exclude_dunder_main.py ${PYSITELIB}/pylint/test/functional/wrong_import_position_exclude_dunder_main.txt ${PYSITELIB}/pylint/test/functional/yield_from_iterable_py33.py ${PYSITELIB}/pylint/test/functional/yield_from_iterable_py33.rc ${PYSITELIB}/pylint/test/functional/yield_from_iterable_py33.txt ${PYSITELIB}/pylint/test/functional/yield_from_outside_func.py ${PYSITELIB}/pylint/test/functional/yield_from_outside_func.rc ${PYSITELIB}/pylint/test/functional/yield_from_outside_func.txt ${PYSITELIB}/pylint/test/functional/yield_inside_async_function.py ${PYSITELIB}/pylint/test/functional/yield_inside_async_function.rc ${PYSITELIB}/pylint/test/functional/yield_inside_async_function.txt ${PYSITELIB}/pylint/test/functional/yield_inside_async_function_py36.py ${PYSITELIB}/pylint/test/functional/yield_inside_async_function_py36.rc ${PYSITELIB}/pylint/test/functional/yield_inside_async_function_py36.txt ${PYSITELIB}/pylint/test/functional/yield_outside_func.py ${PYSITELIB}/pylint/test/functional/yield_outside_func.txt ${PYSITELIB}/pylint/test/input/__init__.py ${PYSITELIB}/pylint/test/input/func_3k_removed_stuff_py_30.py ${PYSITELIB}/pylint/test/input/func_bad_cont_dictcomp_py27.py ${PYSITELIB}/pylint/test/input/func_bug113231.py ${PYSITELIB}/pylint/test/input/func_disable_linebased.py ${PYSITELIB}/pylint/test/input/func_dotted_ancestor.py ${PYSITELIB}/pylint/test/input/func_e0012.py ${PYSITELIB}/pylint/test/input/func_e0204.py ${PYSITELIB}/pylint/test/input/func_e12xx.py ${PYSITELIB}/pylint/test/input/func_e13xx.py ${PYSITELIB}/pylint/test/input/func_excess_escapes.py ${PYSITELIB}/pylint/test/input/func_first_arg.py ${PYSITELIB}/pylint/test/input/func_i0011.py ${PYSITELIB}/pylint/test/input/func_i0012.py ${PYSITELIB}/pylint/test/input/func_i0013.py ${PYSITELIB}/pylint/test/input/func_i0014.py ${PYSITELIB}/pylint/test/input/func_i0020.py ${PYSITELIB}/pylint/test/input/func_i0022.py ${PYSITELIB}/pylint/test/input/func_logging_not_lazy_with_logger.py ${PYSITELIB}/pylint/test/input/func_loopvar_in_dict_comp_py27.py ${PYSITELIB}/pylint/test/input/func_module___dict__.py ${PYSITELIB}/pylint/test/input/func_nameerror_on_string_substitution.py ${PYSITELIB}/pylint/test/input/func_no_dummy_redefined.py ${PYSITELIB}/pylint/test/input/func_noerror___init___return_from_inner_function.py ${PYSITELIB}/pylint/test/input/func_noerror_access_attr_before_def_false_positive.py ${PYSITELIB}/pylint/test/input/func_noerror_base_init_vars.py ${PYSITELIB}/pylint/test/input/func_noerror_builtin_module_test.py ${PYSITELIB}/pylint/test/input/func_noerror_class_attributes.py ${PYSITELIB}/pylint/test/input/func_noerror_classes_meth_could_be_a_function.py ${PYSITELIB}/pylint/test/input/func_noerror_classes_protected_member_access.py ${PYSITELIB}/pylint/test/input/func_noerror_decorator_scope.py ${PYSITELIB}/pylint/test/input/func_noerror_e1101_9588_base_attr_aug_assign.py ${PYSITELIB}/pylint/test/input/func_noerror_external_classmethod_crash.py ${PYSITELIB}/pylint/test/input/func_noerror_inner_classes.py ${PYSITELIB}/pylint/test/input/func_noerror_lambda_use_before_assign.py ${PYSITELIB}/pylint/test/input/func_noerror_mcs_attr_access.py ${PYSITELIB}/pylint/test/input/func_noerror_new_style_class_py_30.py ${PYSITELIB}/pylint/test/input/func_noerror_no_warning_docstring.py ${PYSITELIB}/pylint/test/input/func_noerror_object_as_class_attribute.py ${PYSITELIB}/pylint/test/input/func_noerror_overloaded_operator.py ${PYSITELIB}/pylint/test/input/func_noerror_property_affectation_py26.py ${PYSITELIB}/pylint/test/input/func_noerror_yield_assign_py25.py ${PYSITELIB}/pylint/test/input/func_noerror_yield_return_mix.py ${PYSITELIB}/pylint/test/input/func_nonregr___file___global.py ${PYSITELIB}/pylint/test/input/func_return_yield_mix_py_33.py ${PYSITELIB}/pylint/test/input/func_typecheck_callfunc_assigment.py ${PYSITELIB}/pylint/test/input/func_unused_import_py30.py ${PYSITELIB}/pylint/test/input/func_variables_unused_name_from_wilcard_import.py ${PYSITELIB}/pylint/test/input/func_w0122_py_30.py ${PYSITELIB}/pylint/test/input/func_w0233.py ${PYSITELIB}/pylint/test/input/func_w0332_py_30.py ${PYSITELIB}/pylint/test/input/func_w0401.py ${PYSITELIB}/pylint/test/input/func_w0401_disabled.py ${PYSITELIB}/pylint/test/input/func_w0401_disabled_in_func.py ${PYSITELIB}/pylint/test/input/func_w0401_package/__init__.py ${PYSITELIB}/pylint/test/input/func_w0401_package/all_the_things.py ${PYSITELIB}/pylint/test/input/func_w0401_package/thing1.py ${PYSITELIB}/pylint/test/input/func_w0401_package/thing2.py ${PYSITELIB}/pylint/test/input/func_w0404.py ${PYSITELIB}/pylint/test/input/func_w0405.py ${PYSITELIB}/pylint/test/input/func_w0406.py ${PYSITELIB}/pylint/test/input/func_w0611.py ${PYSITELIB}/pylint/test/input/func_w0612.py ${PYSITELIB}/pylint/test/input/func_w0613.py ${PYSITELIB}/pylint/test/input/func_w0623_py30.py ${PYSITELIB}/pylint/test/input/func_w0801.py ${PYSITELIB}/pylint/test/input/hide_code_with_imports.py ${PYSITELIB}/pylint/test/input/ignore_except_pass_by_default.py ${PYSITELIB}/pylint/test/input/multiline-import ${PYSITELIB}/pylint/test/input/noext ${PYSITELIB}/pylint/test/input/not__init__.py ${PYSITELIB}/pylint/test/input/similar1 ${PYSITELIB}/pylint/test/input/similar2 ${PYSITELIB}/pylint/test/input/w0401_cycle.py ${PYSITELIB}/pylint/test/input/w0801_same.py ${PYSITELIB}/pylint/test/messages/builtin_module.txt ${PYSITELIB}/pylint/test/messages/func_3k_removed_stuff_py_30.txt ${PYSITELIB}/pylint/test/messages/func_bad_cont_dictcomp_py27.txt ${PYSITELIB}/pylint/test/messages/func_bug113231.txt ${PYSITELIB}/pylint/test/messages/func_disable_linebased.txt ${PYSITELIB}/pylint/test/messages/func_disable_linebased_py30.txt ${PYSITELIB}/pylint/test/messages/func_dotted_ancestor.txt ${PYSITELIB}/pylint/test/messages/func_e0012.txt ${PYSITELIB}/pylint/test/messages/func_e0204.txt ${PYSITELIB}/pylint/test/messages/func_e12xx.txt ${PYSITELIB}/pylint/test/messages/func_e13xx.txt ${PYSITELIB}/pylint/test/messages/func_e13xx_py30.txt ${PYSITELIB}/pylint/test/messages/func_excess_escapes.txt ${PYSITELIB}/pylint/test/messages/func_first_arg.txt ${PYSITELIB}/pylint/test/messages/func_i0011.txt ${PYSITELIB}/pylint/test/messages/func_i0012.txt ${PYSITELIB}/pylint/test/messages/func_i0013.txt ${PYSITELIB}/pylint/test/messages/func_i0014.txt ${PYSITELIB}/pylint/test/messages/func_i0020.txt ${PYSITELIB}/pylint/test/messages/func_i0022.txt ${PYSITELIB}/pylint/test/messages/func_logging_not_lazy_with_logger.txt ${PYSITELIB}/pylint/test/messages/func_loopvar_in_dict_comp_py27.txt ${PYSITELIB}/pylint/test/messages/func_module___dict__.txt ${PYSITELIB}/pylint/test/messages/func_nameerror_on_string_substitution.txt ${PYSITELIB}/pylint/test/messages/func_no_dummy_redefined.txt ${PYSITELIB}/pylint/test/messages/func_nonregr___file___global.txt ${PYSITELIB}/pylint/test/messages/func_raw_escapes.txt ${PYSITELIB}/pylint/test/messages/func_return_yield_mix_py_33.txt ${PYSITELIB}/pylint/test/messages/func_toolonglines_py30.txt ${PYSITELIB}/pylint/test/messages/func_typecheck_callfunc_assigment.txt ${PYSITELIB}/pylint/test/messages/func_typecheck_getattr_py30.txt ${PYSITELIB}/pylint/test/messages/func_typecheck_non_callable_call.txt ${PYSITELIB}/pylint/test/messages/func_unicode_literal_py26.txt ${PYSITELIB}/pylint/test/messages/func_unicode_literal_py274.txt ${PYSITELIB}/pylint/test/messages/func_unused_import_py30.txt ${PYSITELIB}/pylint/test/messages/func_use_for_or_listcomp_var_py29.txt ${PYSITELIB}/pylint/test/messages/func_use_for_or_listcomp_var_py30.txt ${PYSITELIB}/pylint/test/messages/func_variables_unused_name_from_wilcard_import.txt ${PYSITELIB}/pylint/test/messages/func_w0122_py_30.txt ${PYSITELIB}/pylint/test/messages/func_w0233.txt ${PYSITELIB}/pylint/test/messages/func_w0312.txt ${PYSITELIB}/pylint/test/messages/func_w0332_py_30.txt ${PYSITELIB}/pylint/test/messages/func_w0401.txt ${PYSITELIB}/pylint/test/messages/func_w0401_disabled.txt ${PYSITELIB}/pylint/test/messages/func_w0401_disabled_in_func.txt ${PYSITELIB}/pylint/test/messages/func_w0401_package.txt ${PYSITELIB}/pylint/test/messages/func_w0404.txt ${PYSITELIB}/pylint/test/messages/func_w0405.txt ${PYSITELIB}/pylint/test/messages/func_w0406.txt ${PYSITELIB}/pylint/test/messages/func_w0611.txt ${PYSITELIB}/pylint/test/messages/func_w0612.txt ${PYSITELIB}/pylint/test/messages/func_w0613.txt ${PYSITELIB}/pylint/test/messages/func_w0622.txt ${PYSITELIB}/pylint/test/messages/func_w0623.txt ${PYSITELIB}/pylint/test/messages/func_w0623_py30.txt ${PYSITELIB}/pylint/test/messages/func_w0623_py_30.txt ${PYSITELIB}/pylint/test/messages/func_w0801.txt ${PYSITELIB}/pylint/test/messages/func_with_without_as_py25.txt ${PYSITELIB}/pylint/test/regrtest_data/.pylintrc ${PYSITELIB}/pylint/test/regrtest_data/absimp/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/absimp/string.py ${PYSITELIB}/pylint/test/regrtest_data/application_crash.py ${PYSITELIB}/pylint/test/regrtest_data/bad_package/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/bad_package/wrong.py ${PYSITELIB}/pylint/test/regrtest_data/beyond_top/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/beyond_top/data.py ${PYSITELIB}/pylint/test/regrtest_data/classdoc_usage.py ${PYSITELIB}/pylint/test/regrtest_data/comments_pylintrc ${PYSITELIB}/pylint/test/regrtest_data/decimal_inference.py ${PYSITELIB}/pylint/test/regrtest_data/descriptor_crash.py ${PYSITELIB}/pylint/test/regrtest_data/dummy/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/dummy/another.py ${PYSITELIB}/pylint/test/regrtest_data/dummy/dummy.py ${PYSITELIB}/pylint/test/regrtest_data/dummy_plugin.rc ${PYSITELIB}/pylint/test/regrtest_data/dummy_plugin/dummy_conf_plugin.py ${PYSITELIB}/pylint/test/regrtest_data/dummy_plugin/dummy_plugin.py ${PYSITELIB}/pylint/test/regrtest_data/empty.py ${PYSITELIB}/pylint/test/regrtest_data/func_block_disable_msg.py ${PYSITELIB}/pylint/test/regrtest_data/import_assign.py ${PYSITELIB}/pylint/test/regrtest_data/import_package_subpackage_module.py ${PYSITELIB}/pylint/test/regrtest_data/import_something.py ${PYSITELIB}/pylint/test/regrtest_data/init_wildcard/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/meta.py ${PYSITELIB}/pylint/test/regrtest_data/module_global.py ${PYSITELIB}/pylint/test/regrtest_data/no_stdout_encoding.py ${PYSITELIB}/pylint/test/regrtest_data/numarray_import.py ${PYSITELIB}/pylint/test/regrtest_data/numarray_inf.py ${PYSITELIB}/pylint/test/regrtest_data/package/AudioTime.py ${PYSITELIB}/pylint/test/regrtest_data/package/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/package/subpackage/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/package/subpackage/module.py ${PYSITELIB}/pylint/test/regrtest_data/package_all/__init__.py ${PYSITELIB}/pylint/test/regrtest_data/package_all/notmissing.py ${PYSITELIB}/pylint/test/regrtest_data/precedence_test.py ${PYSITELIB}/pylint/test/regrtest_data/py3k-disabled.rc ${PYSITELIB}/pylint/test/regrtest_data/py3k_error_flag.py ${PYSITELIB}/pylint/test/regrtest_data/py3k_errors_and_warnings.py ${PYSITELIB}/pylint/test/regrtest_data/special_attr_scope_lookup_crash.py ${PYSITELIB}/pylint/test/regrtest_data/syntax_error.py ${PYSITELIB}/pylint/test/regrtest_data/test_pylintrc_comments.py ${PYSITELIB}/pylint/test/regrtest_data/try_finally_disable_msg_crash.py ${PYSITELIB}/pylint/test/regrtest_data/unused_variable.py ${PYSITELIB}/pylint/test/regrtest_data/wildcard.py ${PYSITELIB}/pylint/test/regrtest_data/wrong_import_position.py ${PYSITELIB}/pylint/test/test_func.py ${PYSITELIB}/pylint/test/test_functional.py ${PYSITELIB}/pylint/test/test_import_graph.py ${PYSITELIB}/pylint/test/test_regr.py ${PYSITELIB}/pylint/test/test_self.py ${PYSITELIB}/pylint/test/unittest_checker_base.py ${PYSITELIB}/pylint/test/unittest_checker_classes.py ${PYSITELIB}/pylint/test/unittest_checker_exceptions.py ${PYSITELIB}/pylint/test/unittest_checker_format.py ${PYSITELIB}/pylint/test/unittest_checker_imports.py ${PYSITELIB}/pylint/test/unittest_checker_logging.py ${PYSITELIB}/pylint/test/unittest_checker_misc.py ${PYSITELIB}/pylint/test/unittest_checker_python3.py ${PYSITELIB}/pylint/test/unittest_checker_similar.py ${PYSITELIB}/pylint/test/unittest_checker_spelling.py ${PYSITELIB}/pylint/test/unittest_checker_stdlib.py ${PYSITELIB}/pylint/test/unittest_checker_strings.py ${PYSITELIB}/pylint/test/unittest_checker_typecheck.py ${PYSITELIB}/pylint/test/unittest_checker_variables.py ${PYSITELIB}/pylint/test/unittest_checkers_utils.py ${PYSITELIB}/pylint/test/unittest_config.py ${PYSITELIB}/pylint/test/unittest_lint.py ${PYSITELIB}/pylint/test/unittest_pyreverse_diadefs.py ${PYSITELIB}/pylint/test/unittest_pyreverse_inspector.py ${PYSITELIB}/pylint/test/unittest_pyreverse_writer.py ${PYSITELIB}/pylint/test/unittest_reporters_json.py ${PYSITELIB}/pylint/test/unittest_reporting.py ${PYSITELIB}/pylint/test/unittest_utils.py d217 14 a230 3 ${PYSITELIB}/pylint/utils.py ${PYSITELIB}/pylint/utils.pyc ${PYSITELIB}/pylint/utils.pyo @ 1.15 log @py-pylint: updated to 2.3.0 What's New in Pylint 2.3.0? * Protect against NonDeducibleTypeHierarchy when calling semi-private is_subtype astroid.helpers.is_subtype raises NonDeducibleTypeHierarchy when it cannot infer the base classes of the given types, but that makes sense in its context given that the method is mostly used to inform the inference process about the hierarchy of classes. Doesn't make that much sense for pylint itself, which is why we're handling the exception here, rather than in astroid * Added a new command line option list-groups for listing all the check groups pylint knows about. * Allow BaseException for emitting broad-except, just like Exception. * Fixed a crash that occurred for bad-str-strip-call when strip() received None * Don't emit *-not-iterating checks for builtins consumed by itertools * Fix a crash caused by iterating over Uninferable in a string formatting check. * Fixed false positives for no-self-argument and unsubscriptable-object when using __class_getitem__ (new in Python 3.7) * Support Ellipsis as a synonym for pass statements. * fixme gets triggered only on comments. * Fixed a false positive for unused-variable and nonlocal assignments * Added load_configuration() hook for plugins New optional hook for plugins is added: load_configuration(). This hook is executed after configuration is loaded to prevent overwriting plugin specific configuration via user-based configuration. * Fix missing-raises-doc false positive (W9006) * Exempt starred unpacking from *-not-iterating Python 3 checks * Make compare-to-zero less zealous by checking against equality and identity * Add no-else-raise warning (R1720) * Exempt yield from from *-not-iterating Python 3 checks. * Fix incorrect generation of no-else-return warnings (R1705) Fixed issue where if statements with nested if statements were incorrectly being flagged as no-else-return in some cases and not being flagged as no-else-return in other cases. Added tests for verification and updated pylint source files to eliminate newly exposed warnings. * Fix false positive with not-async-context-manager caused by not understanding contextlib.asynccontextmanager * Refactor bad-reversed-sequence to account for more objects that can define __reversed__ One such object would be an enum class, for which __reversed__ yields each individual enum. As such, the check for bad-reversed-sequence needs to not differentiate between classes and instances when it comes for checking of __reversed__ presence. * Added wrong-exception-operation Used when an operation is done against an exception, but the operation is not valid for the exception in question. Usually emitted when having binary operations between exceptions in except handlers. * no-member is emitted for enums when they lack a member Previously we weren't doing this because we detected a __getattr__ implementation on the Enum class (and this check is skipped for classes with __getattr__), but that is fine for Enums, given that they are inferred in a customised way in astroid. * Generalize chained-comparison Previous version incorrectly detects a < b < c and b < d and fails to detect a < b < c and c < d. * Avoid popping __main__ when using multiple jobs * Add a new option 'check-str-concat-over-line-jumps' to check 'implicit-str-concat-in-sequence' * Fixes for the new style logging format linter. The number of arguments was not handled properly, leading to an always successful check. * Fix false positive not-callable for uninferable properties. * Fix false positive useless-else-on-loop if the break is deep in the else of an inner loop. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.14 2018/11/27 16:16:55 adam Exp $ d1182 1 @ 1.14 log @py-pylint: updated to 2.2.1 2.2.1: Unknown changes @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.13 2018/11/26 09:09:34 adam Exp $ d450 3 d563 1 d625 2 d631 3 d657 3 d687 2 d690 6 d762 2 d843 2 d895 3 d925 3 d965 2 d1155 1 @ 1.13 log @py-pylint: updated to 2.2.0 What's New in Pylint 2.2? * Consider range() objects for undefined-loop-variable leaking from iteration. * deprecated-method can use the attribute name for identifying a deprecated method Previously we were using the fully qualified name, which we still do, but the fully qualified name for some unittest deprecated aliases leads to a generic deprecation function. Instead on relying on that, we now also rely on the attribute name, which should solve some false positives. * Fix compatibility with changes to stdlib tokenizer. * pylint is less eager to consume the whole line for pragmas * Obtain the correct number of CPUs for virtualized or containerized environments. * Change unbalanced-tuple-unpacking back to a warning. It used to be a warning until a couple of years ago, after it was promoted to an error. But the check might be suggesting the wrong thing in some cases, for instance when checking against sys.argv which cannot be known at static analysis time. Given it might rely on potential unknown data, it's best to have it as a warning. * Remove enumerate usage suggestion when defining __iter__ (C0200) * Emit too-many-starred-assignment only when the number of Starred nodes is per assignment elements * try-except-raise checker now handles multilevel inheritance hirerachy for exceptions correctly. * Add a new check, simplifiable-if-expression for expressions like True if cond else False. * too-few-public-methods is not reported for typing.NamedTuple * too-few-public-methods is not reported for dataclasses created with options. * Remove wrong modules from 'bad-python3-import'. * The json reporter prints an empty list when no messages are emitted * Add a new check, duplicate-string-formatting-argument This new check is emitted whenever a duplicate string formatting argument is found. * assignment-from-no-return is not emitted for coroutines. * Report format string type mismatches. * consider-using-ternary and simplified-boolean-expression no longer emit for sequence based checks * Handle AstroidSyntaxError when trying to import a module. * Allow __module__ to be redefined at a class level. * pylint used to emit a unused-variable error if unused import was found in the function. Now instead of unused-variable, unused-import is emitted. * Handle asyncio.coroutine when looking for not-an-iterable check. * The locally-enabled check is gone. * Infer decorated methods when looking for method-hidden * Pick the latest value from the inferred values when looking for raising-non-exception * Extend the TYPE_CHECKING guard to TYPE_CHECKING name as well, not just the attribute * Ignore import x.y.z as z cases for checker useless-import-alias. * Fix false positive undefined-variable and used-before-assignment with nonlocal keyword usage. * Stop protected-access exception for missing class attributes * Don't emit assignment-from-no-return for decorated function nodes * unnecessary-pass is now also emitted when a function or class contains only docstring and pass statement. In Python, stubbed functions often have a body that contains just a single pass statement, indicating that the function doesn't do anything. However, a stubbed function can also have just a docstring, and function with a docstring and no body also does nothing. * duplicate-argument-name is emitted for more than one duplicate argument per function * Allow double indentation levels for more distinguishable indentations * Consider tuples in exception handler for try-except-raise. * Fix astroid.ClassDef check in checkers.utils.is_subclass_of * Fix wildcard imports being ignored by the import checker * Fix external/internal distinction being broken in the import graph * Fix wildcard import check not skipping __init__.py * Fix --ignore-imports to understand multi-line imports * Add a new check 'implicit-str-concat-in-sequence' to spot string concatenation inside lists, sets & tuples. * literal-comparison is now emitted for 0 and 1 literals. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.12 2018/08/02 15:19:23 adam Exp $ d448 4 @ 1.12 log @py-pylint: updated to 2.1.0 What's New in Pylint 2.1? * trailing-comma-tuple gets emitted for yield statements as well. * Get only the arguments of the scope function for redefined-argument-from-local * Add a check misplaced-format-function which is emitted if format function is used on non str object. * chain.from_iterable no longer emits dict-{}-not-iterating when dealing with dict values and keys * Demote the try-except-raise message from an error to a warning (E0705 -> W0706) * Correctly handle the new name of the Python implementation of the abc module. * Modules with __getattr__ are exempted by default from no-member There's no easy way to figure out if a module has a particular member when the said module uses __getattr__, which is a new addition to Python 3.7. Instead we assume the safe thing to do, in the same way we do for classes, and skip those modules from checking. * Fix a false positive invalid name message when method or attribute name is longer then 30 characters. * Include the type of the next branch in no-else-return * Fix inconsistent behaviour for bad-continuation on first line of file * Fix not being able to disable certain messages on the last line through the global disable option * Don't emit useless-return when we have a single statement that is the return itself We still want to be explicit when a function is supposed to return an optional value; even though pass could still work, it's not explicit enough and the function might look like it's missing an implementation. * Fix false-positive undefined-variable for self referential class name in lamdbas * Don't crash when pylint is unable to infer the value of an argument to next() * Don't emit not-an-iterable when dealing with async iterators. But do emit it when using the usual iteration protocol against async iterators. * Can specify a default docstring type for when the check cannot guess the type @ text @d1 5 a5 5 @@comment $NetBSD: PLIST,v 1.11 2018/07/17 10:08:42 adam Exp $ bin/epylint${PYVERSSUFFIX} bin/pylint${PYVERSSUFFIX} bin/pyreverse${PYVERSSUFFIX} bin/symilar${PYVERSSUFFIX} a179 1 ${PYSITELIB}/pylint/test/a.py d254 3 d341 2 d395 3 d404 2 d446 2 a614 4 ${PYSITELIB}/pylint/test/functional/newstyle__slots__.py ${PYSITELIB}/pylint/test/functional/newstyle__slots__.txt ${PYSITELIB}/pylint/test/functional/newstyle_properties.py ${PYSITELIB}/pylint/test/functional/newstyle_properties.txt a651 3 ${PYSITELIB}/pylint/test/functional/old_style_class_py27.py ${PYSITELIB}/pylint/test/functional/old_style_class_py27.rc ${PYSITELIB}/pylint/test/functional/old_style_class_py27.txt d701 2 a972 1 ${PYSITELIB}/pylint/test/input/func_block_disable_msg.py d1036 1 d1038 1 a1047 1 ${PYSITELIB}/pylint/test/messages/func_block_disable_msg.txt a1106 1 ${PYSITELIB}/pylint/test/regrtest_data/awesome_module.py d1120 2 d1145 1 d1179 4 a1182 4 man/man1/epylint${PYVERSSUFFIX}.1 man/man1/pylint${PYVERSSUFFIX}.1 man/man1/pyreverse${PYVERSSUFFIX}.1 man/man1/symilar${PYVERSSUFFIX}.1 @ 1.11 log @py-pylint: updated to 2.0.0 Pylint 2.0: * trailing-comma-tuple can be emitted for return statements as well. * Fix a false positive inconsistent-return-statements message when exception is raised inside an else statement. * ImportFrom nodes correctly use the full name for the import sorting checks. * [].extend and similar builtin operations don't emit dict-*-not-iterating with the Python 3 porting checker * Add a check consider-using-dict-comprehension which is emitted if for dict initialization the old style with list comprehensions is used. * Add a check consider-using-set-comprehension which is emitted if for set initialization the old style with list comprehensions is used. * logging-not-lazy is emitted whenever pylint infers that a string is built with addition * Add a check chained-comparison which is emitted if a boolean operation can be simplified by chaining some of its operations. e.g "a < b and b < c", can be simplified as "a < b < c". * Add a check consider-using-in for comparisons of a variable against multiple values with "==" and "or"s instead of checking if the variable is contained "in" a tuple of those values. * in is considered iterating context for some of the Python 3 porting checkers * Add --ignore-none flag to control if pylint should warn about no-member where the owner is None * Fix a false positive related to too-many-arguments and bounded __get__ methods * mcs as the first parameter of metaclass's __new__ method was replaced by cls * assignment-from-no-return considers methods as well. * Support typing.TYPE_CHECKING for *unused-import* errors * Inferred classes at a function level no longer emit invalid-name when they don't respect the variable regular expression * Added basic support for postponed evaluation of function annotations. * Fix a bug with missing-kwoa and variadics parameters * simplifiable-if-statement takes in account only when assigning to same targets * Make len-as-condition test more cases, such as len() < 1 or len <= 0' * Fix false-positive line-too-long message emission for commented line at the end of a module * Fix false-positive bad-continuation for with statements * Don't warn about stop-iteration-return when using next() over itertools.count * Add a check consider-using-get for unidiomatic usage of value/default-retrieval for a key from a dictionary * invalid-slice-index is not emitted when the slice is used as index for a complex object. We only use a handful of known objects (list, set and friends) to figure out if we should emit invalid-slice-index when the slice is used to subscript an object. * Don't emit unused-import anymore for typing imports used in type comments. * Add a new check 'useless-import-alias'. * Add comparison-with-callable to warn for comparison with bare callable, without calling it. * Don't warn for missing-type-doc and/or missing-return-type-doc, if type annotations exist on the function signature for a parameter and/or return type. * Add --exit-zero option for continuous integration scripts to more easily call Pylint in environments that abort when a program returns a non-zero (error) status code. * Warn if the first argument of an instance/ class method gets assigned * New check comparison-with-itself to check comparison between same value. * Add a new warning, 'logging-fstring-interpolation', emitted when f-string is used within logging function calls. * Don't show 'useless-super-delegation' if the subclass method has different type annotations. * Add unhashable-dict-key check. * Don't warn that a global variable is unused if it is defined by an import * Skip wildcard import check for __init__.py. * The Python 3 porting mode can now run with Python 3 as well. * too-few-public-methods is not emitted for dataclasses. * New verbose mode option, enabled with --verbose command line flag, to display of extra non-checker-related output. It is disabled by default. * undefined-loop-variable takes in consideration non-empty iterred objects before emitting * Add support for numpydoc optional return value names. * singleton-comparison accounts for negative checks * Add a check consider-using-in for comparisons of a variable against multiple values with "==" and "or"s instead of checking if the variable is contained "in" a tuple of those values. * defaultdict and subclasses of dict are now handled for dict-iter-* checks * logging-format-interpolation also emits when f-strings are used instead of % syntax. * Don't trigger misplaced-bare-raise when the raise is in a finally clause * Add a new check, possibly-unused-variable. This is similar to unused-variable, the only difference is that it is emitted when we detect a locals() call in the scope of the unused variable. The locals() call could potentially use the said variable, by consuming all values that are present up to the point of the call. This new check allows to disable this error when the user intentionally uses locals() to consume everything. * no-else-return accounts for multiple cases The check was a bit overrestrictive because we were checking for return nodes in the .orelse node. At that point though the if statement can be refactored to not have the orelse. This improves the detection of other cases, for instance it now detects TryExcept nodes that are part of the .else branch. * Added two new checks, invalid-envvar-value and invalid-envvar-default. The former is trigger whenever pylint detects that environment variable manipulation functions uses a different type than strings, while the latter is emitted whenever the said functions are using a default variable of different type than expected. * Add a check consider-using-join for concatenation of strings using str.join(sequence) * Add a check consider-swap-variables for swapping variables with tuple unpacking * Add new checker try-except-raise that warns the user if an except handler block has a raise statement as its first operator. The warning is shown when there is a bare raise statement, effectively re-raising the exception that was caught or the type of the exception being raised is the same as the one being handled. * Don't crash on invalid strings when checking for logging-format-interpolation * Exempt __doc__ from triggering a redefined-builtin __doc__ can be used to specify a docstring for a module without passing it as a first-statement string. * Fix false positive bad-whitespace from function arguments with default values and annotations * Fix stop-iteration-return false positive when next builtin has a default value in a generator * Fix emission of false positive no-member message for class with "private" attributes whose name is mangled. * Fixed a crash which occurred when Uninferable wasn't properly handled in stop-iteration-return * Use the proper node to get the name for redefined functions * Don't crash when encountering bare raises while checking inconsistent returns * Fix a false positive inconsistent-return-statements message when if statement is inside try/except. * Fix a false positive inconsistent-return-statements message when while loop are used. * Correct column number for whitespace conventions. Previously the column was stuck at 0 * Fix unused-argument false positives with overshadowed variable in dictionary comprehension. * Fix false positive inconsistent-return-statements message when never returning functions are used (i.e sys.exit for example). * Fix error when checking if function is exception, as in bad-exception-context. * Fix false positive inconsistent-return-statements message when a function is defined under an if statement. * New useless-return message when function or method ends with a "return" or "return None" statement and this is the only return statement in the body. * Fix false positive inconsistent-return-statements message by avoiding useless exception inference if the exception is not handled. * Fix bad thread instantiation check when target function is provided in args. * Fixed false positive when a numpy Attributes section follows a Parameters section * Fix incorrect file path when file absolute path contains multiple path_strip_prefix strings. * Fix false positive undefined-variable for lambda argument in class definitions * Add of a new checker that warns the user if some messages are enabled or disabled by id instead of symbol. * Suppress false-positive not-callable messages from certain staticmethod descriptors * Fix indentation handling with tabs * Fix false-positive bad-continuation error * Fix false positive unused-variable in lambda default arguments * Updated the default report format to include paths that can be clicked on in some terminals (e.g. iTerm). * Fix inline def behavior with too-many-statements checker * Fix KeyError raised when using docparams and NotImplementedError is documented. * Fix 'method-hidden' raised when assigning to a property or data descriptor. * Fix emitting useless-super-delegation when changing the default value of keyword arguments. * Expand ignored-argument-names include starred arguments and keyword arguments * Fix false-postive undefined-variable in nested lambda * Fix false-positive bad-whitespace message for typing annoatations with ellipses in them @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.10 2018/01/24 08:37:46 adam Exp $ d496 3 d551 3 d570 2 @ 1.10 log @py-pylint: updated to 1.8.2 What's New in Pylint 1.8.2? * Fixed a crash which occurred when Uninferable wasn't properly handled in stop-iteration-return * Use the proper node to get the name for redefined functions * Don't crash when encountering bare raises while checking inconsistent returns * Fix a false positive inconsistent-return-statements message when if statement is inside try/except. * Fix a false positive inconsistent-return-statements message when while loop are used. * Fix unused-argument false positives with overshadowed variable in dictionary comprehension. * Fix false positive inconsistent-return-statements message when never returning functions are used (i.e sys.exit for example). * Fix error when checking if function is exception, as in bad-exception-context. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.9 2017/12/17 16:32:57 adam Exp $ d253 2 d264 3 d312 2 d321 2 d325 4 d331 6 d464 2 d505 1 d510 6 d518 2 d539 3 d556 2 d640 6 d685 2 d691 2 d712 3 d730 2 d762 3 d801 2 d818 2 d890 2 d894 4 d1093 1 a1106 1 ${PYSITELIB}/pylint/test/regrtest_data/huge.py d1110 1 @ 1.9 log @py-pylint: updated to 1.8.1 What's New in Pylint 1.8.1 * Wrong version number in __pkginfo__. What's New in Pylint 1.8 * Respect disable=... in config file when running with --py3k. * New warning shallow-copy-environ added Shallow copy of os.environ doesn't work as people may expect. os.environ is not a dict object but rather a proxy object, so any changes made on copy may have unexpected effects on os.environ Instead of copy.copy(os.environ) method os.environ.copy() should be used. * Do not display no-absolute-import warning multiple times per file. * trailing-comma-tuple refactor check now extends to assignment with more than one element (such as lists) * Fixing u'' string in superfluous-parens message * abstract-class-instantiated is now emitted for all inference paths. * Add set of predefined naming style to ease configuration of checking naming conventions. * Added a new check, keyword-arg-before-vararg This is emitted for function definitions in which keyword arguments are placed before variable positional arguments (*args). This may lead to args list getting modified if keyword argument's value is not provided in the function call assuming it will take default value provided in the definition. * The invalid-name check contains the name of the template that caused the failure * Using the -j flag won't start more child linters than needed. * Fix a false positive with bad-python3-import on relative imports * Added a new Python 3 check, non-ascii-bytes-literals * Added a couple of new Python 3 checks for accessing dict methods in non-iterable context * Protocol checks (not-a-mapping, not-an-iterable and co.) aren't emitted on classes with dynamic getattr * Added a new warning, 'bad-thread-instantiation' This message is emitted when the threading.Thread class does not receive the target argument, but receives just one argument, which is by default the group parameter. * In non-quiet mode, absolute path of used config file is logged to standard error. * Raise meaningful exception for invalid reporter class being selected When unknown reporter class will be selected as Pylint reporter, meaningful error message would be raised instead of bare ImportError or AttribueError related to module or reporter class being not found. * Added a new Python 3 check for accessing removed functions from itertools like izip or ifilterfalse * Added a new Python 3 check for accessing removed fields from the types module like UnicodeType or XRangeType * Added a new Python 3 check for declaring a method next that would have been treated as an iterator in Python 2 but a normal function in Python 3. * Added a new key-value pair in json output. The key is message-id and the value is the message id. * Added a new Python 3.0 check for raising a StopIteration inside a generator. The check about raising a StopIteration inside a generator is also valid if the exception raised inherit from StopIteration. * Added a new warning, raising-format-tuple, to detect multi-argument exception construction instead of message string formatting. * Added a new check for method of logging module that concatenate string via + operator * Added parameter for limiting number of suggestions in spellchecking checkers * Fix a corner-case in consider-using-ternary checker. When object A used in X and A or B was falsy in boolean context, Pylint incorrectly emitted non-equivalent ternary-based suggestion. After a change message is correctly not emitted for this case. * Added suggestion-mode configuration flag. When flag is enabled, informational message is emitted instead of cryptic error message for attributes accessed on c-extensions. * Fix a false positive useless-super-delegation message when parameters default values are different from those used in the base class. * Disabling 'wrong-import-order', 'wrong-import-position', or 'ungrouped-imports' for a single line now prevents that line from triggering violations on subsequent lines. * Added a new Python check for inconsistent return statements inside method or function. * Fix superfluous-parens false positive related to handling logical statements involving in operator. * function-redefined message is no longer emitted for functions and methods which names matches dummy variable name regular expression. * Fix missing-param-doc and missing-type-doc false positives when mixing Args and Keyword Args in Google docstring. * Fix missing-docstring false negatives when modules, classes, or methods consist of compound statements that exceed the docstring-min-length * Fix useless-else-on-loop false positives when break statements are deeply nested inside loop. * Fix no wrong-import-order message emitted on ordering of first and third party libraries. With this fix, pylint distinguishes third and first party modules when checking import order. * Fix pylint disable=fixme directives ignored for comments following the last statement in a file. * Fix line-too-long message deactivated by wrong disable directive. The directive disable=fixme doesn't deactivate anymore the emission of line-too-long message for long commented lines. * If the rcfile specified on the command line doesn't exist, then an IOError exception is raised. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.8 2017/12/12 08:38:18 adam Exp $ d424 1 @ 1.8 log @py-pylint: updated to 1.7.5 Pylint 1.7.5: * Removed `stat` from the list of moved Python 3 modules. * Backported `trailing-comma-tuple` Previously this check was only emitted on Python 3. Now it is also emitted on Python 2. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.7 2017/07/16 20:33:32 adam Exp $ d181 1 d282 2 d363 5 d401 2 d419 1 d423 2 d441 3 d474 2 d545 6 d610 2 d666 3 d741 1 d946 1 d961 1 d1011 1 d1058 1 d1060 1 @ 1.7 log @Pylint 1.7.2: * enum34 dependency is forced to be at least version 1.1.3. Fixes spurious bug related to enum classes being falsy in boolean context, which caused _Inconsistent Hierarchy_ `RuntimeError` in `singledispatch` module. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.6 2017/03/01 13:08:43 fhajny Exp $ a711 1 ${PYSITELIB}/pylint/test/functional/trailing_comma_tuple.rc @ 1.6 log @Update devel/py-pylint to 1.6.5. - Change to use ALTERNATIVES to avoid conflicts between Python versions. Pylint 1.6.5 - Copyright and doc changes only Pylint 1.6.4 - Recurse into all the ancestors when checking if an object is an exception Pylint 1.6.3 - Do not crash when inferring uninferable exception types for docparams extension Pylint 1.6.2 - Do not crash when printing the help of options with default regular expressions - More granular versions for deprecated modules. - Do not crash in docparams when we can't infer the exception types. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.1 2017/02/28 20:56:33 fhajny Exp $ a2 1 bin/pylint-gui${PYVERSSUFFIX} d60 3 d90 3 d108 3 d117 3 d123 6 a131 3 ${PYSITELIB}/pylint/gui.py ${PYSITELIB}/pylint/gui.pyc ${PYSITELIB}/pylint/gui.pyo a164 6 ${PYSITELIB}/pylint/reporters/guireporter.py ${PYSITELIB}/pylint/reporters/guireporter.pyc ${PYSITELIB}/pylint/reporters/guireporter.pyo ${PYSITELIB}/pylint/reporters/html.py ${PYSITELIB}/pylint/reporters/html.pyc ${PYSITELIB}/pylint/reporters/html.pyo a173 3 ${PYSITELIB}/pylint/reporters/ureports/html_writer.py ${PYSITELIB}/pylint/reporters/ureports/html_writer.pyc ${PYSITELIB}/pylint/reporters/ureports/html_writer.pyo d180 2 d190 1 d193 1 d195 3 d204 2 d208 3 d245 3 d259 4 d290 4 d311 2 d331 3 d340 3 d349 3 d358 2 d374 3 d390 3 d402 2 d421 2 d434 5 a448 1 ${PYSITELIB}/pylint/test/functional/invalid_unary_operand_type.rc d458 2 d465 2 d473 4 d487 9 d516 3 d523 2 d534 2 d542 2 d555 3 d580 6 a585 4 ${PYSITELIB}/pylint/test/functional/pygtk_enum_crash.py ${PYSITELIB}/pylint/test/functional/pygtk_enum_crash.rc ${PYSITELIB}/pylint/test/functional/pygtk_import.py ${PYSITELIB}/pylint/test/functional/pygtk_import.rc d589 8 a598 2 ${PYSITELIB}/pylint/test/functional/redefined_variable_type.py ${PYSITELIB}/pylint/test/functional/redefined_variable_type.txt d601 1 d612 7 d621 6 d649 3 d668 6 d686 3 d711 3 d722 2 d766 2 a767 2 ${PYSITELIB}/pylint/test/functional/unsubscriptable_value_35.py ${PYSITELIB}/pylint/test/functional/unsubscriptable_value_35.rc d771 15 d788 3 d793 4 d800 3 d805 8 d817 3 d847 2 d858 3 a864 1 ${PYSITELIB}/pylint/test/input/func_bad_assigment_to_exception_var.py a866 1 ${PYSITELIB}/pylint/test/input/func_break_or_return_in_try_finally.py a870 1 ${PYSITELIB}/pylint/test/input/func_e0203.py a871 2 ${PYSITELIB}/pylint/test/input/func_e0601.py ${PYSITELIB}/pylint/test/input/func_e0604.py a881 2 ${PYSITELIB}/pylint/test/input/func_init_vars.py ${PYSITELIB}/pylint/test/input/func_kwoa_py30.py a893 1 ${PYSITELIB}/pylint/test/input/func_noerror_crash_127416.py a895 3 ${PYSITELIB}/pylint/test/input/func_noerror_encoding.py ${PYSITELIB}/pylint/test/input/func_noerror_except_pass.py ${PYSITELIB}/pylint/test/input/func_noerror_exception.py a896 2 ${PYSITELIB}/pylint/test/input/func_noerror_function_as_method.py ${PYSITELIB}/pylint/test/input/func_noerror_genexp_in_class_scope.py a898 1 ${PYSITELIB}/pylint/test/input/func_noerror_long_utf8_line.py a901 1 ${PYSITELIB}/pylint/test/input/func_noerror_nonregr.py a903 1 ${PYSITELIB}/pylint/test/input/func_noerror_overriden_method_varargs.py a904 2 ${PYSITELIB}/pylint/test/input/func_noerror_raise_return_self.py ${PYSITELIB}/pylint/test/input/func_noerror_static_method.py a908 1 ${PYSITELIB}/pylint/test/input/func_too_many_returns_yields.py a910 2 ${PYSITELIB}/pylint/test/input/func_unused_overridden_argument.py ${PYSITELIB}/pylint/test/input/func_use_for_or_listcomp_var.py a912 1 ${PYSITELIB}/pylint/test/input/func_w0205.py d916 1 a927 4 ${PYSITELIB}/pylint/test/input/func_w0623_py_30.py ${PYSITELIB}/pylint/test/input/func_w0631.py ${PYSITELIB}/pylint/test/input/func_w0703.py ${PYSITELIB}/pylint/test/input/func_w0705.py a928 1 ${PYSITELIB}/pylint/test/input/func_with_without_as_py25.py a932 1 ${PYSITELIB}/pylint/test/input/syntax_error.py a936 1 ${PYSITELIB}/pylint/test/messages/func_bad_assigment_to_exception_var.txt a938 1 ${PYSITELIB}/pylint/test/messages/func_break_or_return_in_try_finally.txt a943 1 ${PYSITELIB}/pylint/test/messages/func_e0203.txt a944 2 ${PYSITELIB}/pylint/test/messages/func_e0601.txt ${PYSITELIB}/pylint/test/messages/func_e0604.txt a955 2 ${PYSITELIB}/pylint/test/messages/func_init_vars.txt ${PYSITELIB}/pylint/test/messages/func_kwoa_py30.txt a963 1 ${PYSITELIB}/pylint/test/messages/func_too_many_returns_yields.txt a970 1 ${PYSITELIB}/pylint/test/messages/func_unused_overridden_argument.txt a974 1 ${PYSITELIB}/pylint/test/messages/func_w0205.txt d979 1 a990 3 ${PYSITELIB}/pylint/test/messages/func_w0631.txt ${PYSITELIB}/pylint/test/messages/func_w0703.txt ${PYSITELIB}/pylint/test/messages/func_w0705.txt d999 2 d1002 1 d1008 2 a1009 1 ${PYSITELIB}/pylint/test/regrtest_data/html_crash_420.py d1029 1 a1064 1 man/man1/pylint-gui${PYVERSSUFFIX}.1 @ 1.5 log @Sort, and add python-2.x only files. @ text @d1 6 a6 6 @@comment $NetBSD: PLIST,v 1.4 2016/08/29 15:58:58 darcy Exp $ bin/epylint-${PYVERSSUFFIX} bin/pylint-${PYVERSSUFFIX} bin/pylint-gui-${PYVERSSUFFIX} bin/pyreverse-${PYVERSSUFFIX} bin/symilar-${PYVERSSUFFIX} d374 3 d613 9 d934 5 a938 17 man/man1/epylint.1 man/man1/pylint-gui.1 man/man1/pylint.1 man/man1/pyreverse.1 man/man1/symilar.1 ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/invalid_encoded_data.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/invalid_encoded_data.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/invalid_encoded_data.txt ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.txt ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.txt ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.py ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.rc ${PLIST.py2x}${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.txt @ 1.4 log @Make PLIST match installed files. @ text @d1 1 a1 1 @@comment $NetBSD$ d14 2 d17 2 d20 1 a20 4 ${PYSITELIB}/pylint/__init__.pyo ${PYSITELIB}/pylint/__init__.pyc ${PYSITELIB}/pylint/__main__.pyo ${PYSITELIB}/pylint/__main__.pyc a21 15 ${PYSITELIB}/pylint/__pkginfo__.pyc ${PYSITELIB}/pylint/config.pyo ${PYSITELIB}/pylint/config.pyc ${PYSITELIB}/pylint/epylint.pyo ${PYSITELIB}/pylint/epylint.pyc ${PYSITELIB}/pylint/graph.pyo ${PYSITELIB}/pylint/graph.pyc ${PYSITELIB}/pylint/gui.pyo ${PYSITELIB}/pylint/gui.pyc ${PYSITELIB}/pylint/interfaces.pyo ${PYSITELIB}/pylint/interfaces.pyc ${PYSITELIB}/pylint/lint.pyo ${PYSITELIB}/pylint/lint.pyc ${PYSITELIB}/pylint/utils.pyo ${PYSITELIB}/pylint/utils.pyc d23 1 d25 2 a26 1 ${PYSITELIB}/pylint/checkers/__init__.pyc d28 2 a29 1 ${PYSITELIB}/pylint/checkers/async.pyc d31 2 a32 1 ${PYSITELIB}/pylint/checkers/base.pyc d34 2 a35 1 ${PYSITELIB}/pylint/checkers/classes.pyc d37 2 a38 1 ${PYSITELIB}/pylint/checkers/design_analysis.pyc d40 2 a41 1 ${PYSITELIB}/pylint/checkers/exceptions.pyc d43 2 a44 1 ${PYSITELIB}/pylint/checkers/format.pyc d46 2 a47 1 ${PYSITELIB}/pylint/checkers/imports.pyc d49 2 a50 1 ${PYSITELIB}/pylint/checkers/logging.pyc d52 2 a53 1 ${PYSITELIB}/pylint/checkers/misc.pyc d55 2 a56 1 ${PYSITELIB}/pylint/checkers/newstyle.pyc d58 2 a59 1 ${PYSITELIB}/pylint/checkers/python3.pyc d61 2 a62 1 ${PYSITELIB}/pylint/checkers/raw_metrics.pyc d64 2 a65 1 ${PYSITELIB}/pylint/checkers/similar.pyc d67 2 a68 1 ${PYSITELIB}/pylint/checkers/spelling.pyc d70 2 a71 1 ${PYSITELIB}/pylint/checkers/stdlib.pyc d73 2 a74 1 ${PYSITELIB}/pylint/checkers/strings.pyc d76 2 a77 1 ${PYSITELIB}/pylint/checkers/typecheck.pyc d79 2 a80 1 ${PYSITELIB}/pylint/checkers/utils.pyc a81 20 ${PYSITELIB}/pylint/checkers/variables.pyc ${PYSITELIB}/pylint/checkers/async.py ${PYSITELIB}/pylint/checkers/base.py ${PYSITELIB}/pylint/checkers/classes.py ${PYSITELIB}/pylint/checkers/design_analysis.py ${PYSITELIB}/pylint/checkers/exceptions.py ${PYSITELIB}/pylint/checkers/format.py ${PYSITELIB}/pylint/checkers/imports.py ${PYSITELIB}/pylint/checkers/logging.py ${PYSITELIB}/pylint/checkers/misc.py ${PYSITELIB}/pylint/checkers/newstyle.py ${PYSITELIB}/pylint/checkers/python3.py ${PYSITELIB}/pylint/checkers/raw_metrics.py ${PYSITELIB}/pylint/checkers/similar.py ${PYSITELIB}/pylint/checkers/spelling.py ${PYSITELIB}/pylint/checkers/stdlib.py ${PYSITELIB}/pylint/checkers/strings.py ${PYSITELIB}/pylint/checkers/typecheck.py ${PYSITELIB}/pylint/checkers/utils.py ${PYSITELIB}/pylint/checkers/variables.py d83 2 d86 2 d89 1 d91 2 a92 1 ${PYSITELIB}/pylint/extensions/__init__.pyc d94 2 a95 1 ${PYSITELIB}/pylint/extensions/_check_docs_utils.pyc d97 2 a98 1 ${PYSITELIB}/pylint/extensions/bad_builtin.pyc d100 2 a101 1 ${PYSITELIB}/pylint/extensions/check_docs.pyc d103 2 a104 1 ${PYSITELIB}/pylint/extensions/check_elif.pyc d106 2 a107 1 ${PYSITELIB}/pylint/extensions/docparams.pyc d109 2 a110 1 ${PYSITELIB}/pylint/extensions/docstyle.pyc a111 8 ${PYSITELIB}/pylint/extensions/mccabe.pyc ${PYSITELIB}/pylint/extensions/_check_docs_utils.py ${PYSITELIB}/pylint/extensions/bad_builtin.py ${PYSITELIB}/pylint/extensions/check_docs.py ${PYSITELIB}/pylint/extensions/check_elif.py ${PYSITELIB}/pylint/extensions/docparams.py ${PYSITELIB}/pylint/extensions/docstyle.py ${PYSITELIB}/pylint/extensions/mccabe.py d113 2 d116 2 d119 2 d122 2 d125 1 d127 2 a128 1 ${PYSITELIB}/pylint/pyreverse/__init__.pyc d130 2 a131 1 ${PYSITELIB}/pylint/pyreverse/diadefslib.pyc d133 2 a134 1 ${PYSITELIB}/pylint/pyreverse/diagrams.pyc d136 2 a137 1 ${PYSITELIB}/pylint/pyreverse/inspector.pyc d139 2 a140 1 ${PYSITELIB}/pylint/pyreverse/main.pyc d142 2 a143 1 ${PYSITELIB}/pylint/pyreverse/utils.pyc d145 2 a146 1 ${PYSITELIB}/pylint/pyreverse/vcgutils.pyc a147 8 ${PYSITELIB}/pylint/pyreverse/writer.pyc ${PYSITELIB}/pylint/pyreverse/diadefslib.py ${PYSITELIB}/pylint/pyreverse/diagrams.py ${PYSITELIB}/pylint/pyreverse/inspector.py ${PYSITELIB}/pylint/pyreverse/main.py ${PYSITELIB}/pylint/pyreverse/utils.py ${PYSITELIB}/pylint/pyreverse/vcgutils.py ${PYSITELIB}/pylint/pyreverse/writer.py d149 1 d151 2 a152 1 ${PYSITELIB}/pylint/reporters/__init__.pyc d154 2 a155 1 ${PYSITELIB}/pylint/reporters/guireporter.pyc d157 2 a158 1 ${PYSITELIB}/pylint/reporters/html.pyc d160 2 a161 1 ${PYSITELIB}/pylint/reporters/json.pyc a162 5 ${PYSITELIB}/pylint/reporters/text.pyc ${PYSITELIB}/pylint/reporters/guireporter.py ${PYSITELIB}/pylint/reporters/html.py ${PYSITELIB}/pylint/reporters/json.py ${PYSITELIB}/pylint/reporters/text.py d164 1 d166 2 a167 1 ${PYSITELIB}/pylint/reporters/ureports/__init__.pyc d169 2 a170 1 ${PYSITELIB}/pylint/reporters/ureports/html_writer.pyc d172 2 a173 1 ${PYSITELIB}/pylint/reporters/ureports/nodes.pyc a174 4 ${PYSITELIB}/pylint/reporters/ureports/text_writer.pyc ${PYSITELIB}/pylint/reporters/ureports/html_writer.py ${PYSITELIB}/pylint/reporters/ureports/nodes.py ${PYSITELIB}/pylint/reporters/ureports/text_writer.py d920 2 d927 12 a938 1 @@pkgdir share/doc/pylint @ 1.3 log @Updated py-pylint to 1.6.1. What's new in Pylint 1.6.1? =========================== Release date: 2016-07-07 * Use environment markers for supporting conditional dependencies. What's New in Pylint 1.6.0? =========================== Release date: 2016-07-07 * Added a new extension, `pylint.extensions.mccabe`, for warning about complexity in code. * Deprecate support for --optimize-ast. Part of #975. * Deprecate support for the HTML output. Part of #975. * Deprecate support for --output-files. Part of #975. * Fixed a documentation error for the check_docs extension. Fixes #735. * Made the list of property-defining decorators configurable. * Fix a bug where the top name of a qualified import was detected as unused variable. Close #923. * bad-builtin is now an extension check. * generated-members support qualified name through regular expressions. For instance, one can specify a regular expression as --generated-members=astroid.node_classes.* for ignoring every no-member error that is accessed as in `astroid.node_classes.missing.object`. * Add the ability to ignore files based on regex matching, with the new ``--ignore-patterns`` option. This addresses issue #156 by allowing for multiple ignore patterns to be specified. Rather than clobber the existing ignore option, we introduced a new one called ignore-patterns. * Added a new error, 'trailing-newlines', which is emitted when a file has trailing new lines. Closes issue #682. * Add a new option, 'redefining-builtins-modules', for controlling the modules which can redefine builtins, such as six.moves and future.builtins. Close #464. * 'reimported' is emitted when the same name is imported from different module. Close #162. * Add a new recommendation checker, 'consider-iterating-dictionary', which is emitted which is emitted when a dictionary is iterated through .keys(). Close #699 * Use the configparser backport for Python 2 This fixes a problem we were having with comments inside values, which is fixed in Python 3's configparser. Close #828 * A new error was added, 'invalid-length-returned', when the `__len__` special method returned something else than a non-negative number. Close issue #557 * Switch to using isort internally for wrong-import-order. Closes #879. * check_docs extension can find constructor parameters in __init__. Closes #887. * Don't warn about invalid-sequence-index if the indexed object has unknown base classes. Closes #867 * Don't crash when checking, for super-init-not-called, a method defined in an if block. * Do not emit import-error or no-name-in-module for fallback import blocks by default. Until now, we warned with these errors when a fallback import block (a TryExcept block that contained imports for Python 2 and 3) was found, but this gets cumbersome when trying to write compatible code. As such, we don't check these blocks by default, but the analysis can be enforced by using the new ``--analyse-fallback-block`` flag. Close #769. What's New in Pylint 1.5.6? =========================== Release date: 2016-06-06 * config files with BOM markers can now be read. Close #864. * epylint.py_run does not crash on big files, using .communicate() instead of .wait() Close #599 What's New in Pylint 1.5.5? =========================== Release date: 2016-03-21 * Let visit_importfrom from Python 3 porting checker be called when everything is disabled Because the visit method was filtering the patterns it was expecting to be activated, it didn't run when everything but one pattern was disabled, leading to spurious false positives Close #852 * Don't emit unsubscriptable-value for classes with unknown base classes. Close #776. * Use an OrderedDict for storing the configuration elements This fixes an issue related to impredictible order of the disable / enable elements from a config file. In certain cases, the disable was coming before the enable which resulted in classes of errors to be enabled, even though the intention was to disable them. The best example for this was in the context of running multiple processes, each one of it having different enables / disables that affected the output. Close #815 * Don't consider bare and broad except handlers as ignoring NameError, AttributeError and similar exceptions, in the context of checkers for these issues. Closes issue #826 What's New in Pylint 1.5.4? =========================== Release date: 2016-01-15 * Merge StringMethodChecker with StringFormatChecker. This fixes a bug where disabling all the messages and enabling only a handful of messages from the StringFormatChecker would have resulted in no messages at all. * Don't apply unneeded-not over sets. What's New in Pylint 1.5.3? =========================== Release date: 2016-01-11 * Handle the import fallback idiom with regard to wrong-import-order. Closes issue #750. * Decouple the displaying of reports from the displaying of messages Some reporters are aggregating the messages instead of displaying them when they are available. The actual displaying was conflatted in the generate_reports. Unfortunately this behaviour was flaky and in the case of the JSON reporter, the messages weren't shown at all if a file had syntax errors or if it was missing. In order to fix this, the aggregated messages can now be displayed with Reporter.display_message, while the reports are displayed with display_reports. Closes issues #766 and #765. * Ignore function calls with variadic arguments without a context. Inferring variadic positional arguments and keyword arguments will result into empty Tuples and Dicts, which can lead in some cases to false positives with regard to no-value-for-parameter. In order to avoid this, until we'll have support for call context propagation, we're ignoring such cases if detected. Closes issue #722. * Treat AsyncFunctionDef just like FunctionDef nodes, by implementing visit_asyncfunctiondef in terms of visit_functiondef. Closes issue #767. * Take in account kwonlyargs when verifying that arguments are defined with the check_docs extension. Closes issue #745. * Suppress reporting 'unneeded-not' inside `__ne__` methods Closes issue #749. What's New in Pylint 1.5.2? =========================== Release date: 2015-12-21 * Don't crash if graphviz is not installed, instead emit a warning letting the user to know. Closes issue #168. * Accept only functions and methods for the deprecated-method checker. This prevents a crash which can occur when an object doesn't have .qname() method after the inference. * Don't emit super-on-old-class on classes with unknown bases. Closes issue #721. * Allow statements in `if` or `try` blocks containing imports. Closes issue #714. What's New in Pylint 1.5.1? =========================== Release date: 2015-12-02 * Don't emit unsubscriptable-object if the node is found inside an abstract class. Closes issue #685. * Add wrong-import-position to check_messages's decorator arguments for ImportChecker.leave_module This fixes an esoteric bug which occurs when ungrouped-imports and wrong-import-order are disabled and pylint is executed on multiple files. What happens is that without wrong-import-position in check_messages, leave_module will never be called, which means that the first non-import node from other files might leak into the current file, leading to wrong-import-position being emitted by pylint. * Fix a crash which occurred when old visit methods are encountered in plugin modules. Closes issue #711. * Don't emit import-self and cyclic-import for relative imports of modules with the same name as the package itself. Closes issues #708 and #706. What's New in Pylint 1.5.0? =========================== Release date: 2015-11-29 * Added multiple warnings related to imports. 'wrong-import-order' is emitted when PEP 8 recommendations regarding imports are not respected (that is, standard imports should be followed by third-party imports and then by local imports). 'ungrouped-imports' is emitted when imports from the same package or module are not placed together, but scattered around in the code. 'wrong-import-position' is emitted when code is mixed with imports, being recommended for the latter to be at the top of the file, in order to figure out easier by a human reader what dependencies a module has. Closes issue #692. * Added a new refactoring warning, 'unneeded-not', emitted when an expression with the not operator could be simplified. Closes issue #670. * Added a new refactoring warning, 'simplifiable-if-statement', used when an if statement could be reduced to a boolean evaluation of its test. Closes issue #698. * Added a new refactoring warning, 'too-many-boolean-expressions', used when a if statement contains too many boolean expressions, which makes the code less maintainable and harder to understand. Closes issue #677. * Property methods are shown as attributes instead of functions in pyreverse class diagrams. Closes Issue #284 * Add a new refactoring error, 'too-many-nested-blocks', which is emitted when a function or a method has too many nested blocks, which makes the code less readable and harder to understand. Closes issue #668. * Add a new error, 'unsubscriptable-object', that is emitted when value used in subscription expression doesn't support subscription (i.e. doesn't define __getitem__ method). * Don't warn about abstract classes instantiated in their own body. Closes issue #627. * Obsolete options are not present by default in the generated configuration file. Closes issue #632. * non-iterator-returned can detect classes with iterator-metaclasses. Closes issue #679. * Add a new error, 'unsupported-membership-test', emitted when value to the right of the 'in' operator doesn't support membership test protocol (i.e. doesn't define __contains__/__iter__/__getitem__) * Add new errors, 'not-an-iterable', emitted when non-iterable value is used in an iterating context (starargs, for-statement, comprehensions, etc), and 'not-a-mapping', emitted when non-mapping value is used in a mapping context. Closes issue #563. * Make 'no-self-use' checker not emit a warning if there is a 'super()' call inside the method. Closes issue #667. * Add checker to identify multiple imports on one line. Closes issue #598. * Fix unused-argument false positive when the "+=" operator is used. Closes issue #518. * Don't emit import-error for ignored modules. PyLint will not emit import errors for any import which is, or is a subpackage of, a module in the ignored-modules list. Closes issue #223. * Fix unused-import false positive when the import is used in a class assignment. Closes issue #475 * Add a new error, 'not-context-manager', emitted when something that doesn't implement __enter__ and __exit__ is used in a with statement. * Add a new warning, 'confusing-with-statement', emitted by the base checker, when an ambiguous looking with statement is used. For example `with open() as first, second` which looks like a tuple assignment but is actually 2 context managers. * Add a new warning, 'duplicate-except', emitted when there is an exception handler which handles an exception type that was handled before. Closes issue #485. * A couple of warnings got promoted to errors, since they could uncover potential bugs in the code. These warnings are: assignment-from-none, unbalanced-tuple-unpacking, unpacking-non-sequence, non-iterator-returned. Closes issue #388. * Allow ending a pragma control with a semicolon. In this way, users can continue a pragma control with a reason for why it is used, as in `# pylint: disable=old-style-class;reason=...`. Closes issue #449. * --jobs can be used with --load-plugins now. Closes issue #456. * Improve the performance of --jobs when dealing only with a package name. Closes issue #479. * Don't emit an unused-wildcard-import when the imported name comes from another module and it is in fact a __future__ name. * The colorized reporter now works on Windows. Closes issue #96. * Remove pointless-except warning. It was previously disabled by default and it wasn't very useful. Closes issue #506. * Fix a crash on Python 3 related to the string checker, which crashed when it encountered a bytes string with a .format method called. * Don't warn about no-self-use for builtin properties. * Fix a false positive for bad-reversed-sequence, when a subclass of a `dict` provides a __reversed__ method. * Change the default no-docstring-rgx so missing-docstring isn't emitted for private functions. * Don't emit redefined-outer-name for __future__ directives. Closes issue #520. * Provide some hints for the bad-builtin message. Closes issue #522. * When checking for invalid arguments to a callable, in typecheck.py, look up for the __init__ in case the found __new__ comes from builtins. Since the __new__ comes from builtins, it will not have attached any information regarding what parameters it expects, so the check will be useless. Retrieving __init__ in that case will at least detect a couple of false negatives. Closes issue #429. * Don't emit no-member for classes with unknown bases. Since we don't know what those bases might add, we simply ignore the error in this case. * Lookup in the implicit metaclass when checking for no-member, if the class in question has an implicit metaclass, which is True for new style classes. Closes issue #438. * Add two new warnings, duplicate-bases and inconsistent-mro. duplicate-bases is emitted when a class has the same bases listed more than once in its bases definition, while inconsistent-mro is emitted when no sane mro hierarchy can be determined. Closes issue #526. * Remove interface-not-implemented warning. Closes issue #532. * Remove the rest of interface checks: interface-is-not-class, missing-interface-method, unresolved-interface. The reason is that its better to start recommending ABCs instead of the old Zope era of interfaces. One side effect of this change is that ignore-iface-methods becomes a noop, it's deprecated and it will be removed at some time. * Emit a proper deprecation warning for reporters.BaseReporter.add_message. The alternative way is to use handle_message. add_message will be removed in Pylint 1.6. * Added new module 'extensions' for optional checkers with the test directory 'test/extensions' and documentation file 'doc/extensions.rst'. * Added new checker 'extensions.check_docs' that verifies parameter documention in Sphinx, Google, and Numpy style. * Detect undefined variable cases, where the "definition" of an undefined variable was in del statement. Instead of emitting used-before-assignment, which is totally misleading, it now emits undefined-variable. Closes issue #528. * Don't emit attribute-defined-outside-init and access-member-before-definition for mixin classes. Actual errors can occur in mixin classes, but this is controlled by the ignore-mixin-members option. Closes issue #412. * Improve the detection of undefined variables and variables used before assignment for variables used as default arguments to function, where the variable was first defined in the class scope. Closes issue #342 and issue #404. * Add a new warning, 'unexpected-special-method-signature', which is emitted when a special method (dunder method) doesn't have the expected signature, which can lead to actual errors in the application code. Closes issue #253. * Remove 'bad-context-manager' due to the inclusion of 'unexpected-special-method-signature'. * Don't emit no-name-in-module if the import is guarded by an ImportError, Exception or a bare except clause. * Don't emit no-member if the attribute access node is protected by an except handler, which handles AttributeError, Exception or it is a bare except. * Don't emit import-error if the import is guarded by an ImportError, Exception or a bare except clause. * Don't emit undefined-variable if the node is guarded by a NameError, Exception or bare except clause. * Add a new warning, 'using-constant-test', which is emitted when a conditional statement (If, IfExp) uses a test which is always constant, such as numbers, classes, functions etc. This is most likely an error from the user's part. Closes issue #524. * Don't emit 'raising-non-exception' when the exception has unknown bases. We don't know what those bases actually are and it's better to assume that the user knows what he is doing rather than emitting a message which can be considered a false positive. * Look for a .pylintrc configuration file in the current folder, if pylintrc is not found. Dotted pylintrc files will not be searched in the parents of the current folder, as it is done for pylintrc. * Add a new error, 'invalid-unary-type-operand', emitted when an unary operand is used on something which doesn't support that operation (for instance, using the unary bitwise inversion operator on an instance which doesn't implement __invert__). * Take in consideration differences between arguments of various type of functions (classmethods, staticmethods, properties) when checking for `arguments-differ`. Closes issue #548. * astroid.inspector was moved to pylint.pyreverse, since it belongs there and it doesn't need to be in astroid. * astroid.utils.LocalsVisitor was moved to pylint.pyreverse.LocalsVisitor. * pylint.checkers.utils.excepts_import_error was removed. Use pylint.chekcers.utils.error_of_type instead. * Don't emit undefined-all-variables for nodes which can't be inferred (YES nodes). * yield-outside-func is also emitted for `yield from`. * Add a new error, 'too-many-star-expressions', emitted when there are more than one starred expression (`*x`) in an assignment. The warning is emitted only on Python 3. * Add a new error, 'invalid-star-assignment-target', emitted when a starred expression (`*x`) is used as the lhs side of an assignment, as in `*x = [1, 2]`. This is not a SyntaxError on Python 3 though. * Detect a couple of objects which can't be base classes (bool, slice, range and memoryview, which weren't detected until now). * Add a new error for the Python 3 porting checker, `import-star-module-level`, which is used when a star import is detected in another scope than the module level, which is an error on Python 3. Using this will emit a SyntaxWarning on Python 2. * Add a new error, 'star-needs-assignment-target', emitted on Python 3 when a Starred expression (`*x`) is not used in an assignment target. This is not caught when parsing the AST on Python 3, so it needs to be a separate check. * Add a new error, 'unsupported-binary-operation', emitted when two a binary arithmetic operation is executed between two objects which don't support it (a number plus a string for instance). This is currently disabled, since the it exhibits way too many false positives, but it will be reenabled as soon as possible. * New imported features from astroid into pyreverse: pyreverse.inspector.Project, pyreverse.inspector.project_from_files and pyreverse.inspector.interfaces. These were moved since they didn't belong in astroid. * Enable misplaced-future for Python 3. Closes issue #580. * Add a new error, 'nonlocal-and-global', which is emitted when a name is found to be both nonlocal and global in the same scope. Closes issue #581. * ignored-classes option can work with qualified names (ignored-classes=optparse.Values) Closes issue #297. * ignored-modules can work with qualified names as well as with Unix pattern matching for recursive ignoring. Closes issues #244. * Improve detection of relative imports in non-packages, as well as importing missing modules with a relative import from a package. * Don't emit no-init if not all the bases from a class are known. Closes issue #604. * --no-space-check option accepts `empty-line` as a possible option. Closes issue #541. * --generate-rcfile generates by default human readable symbols for the --disable option. Closes issue #608. * Improved the not-in-loop checker to properly detect more cases. * Add a new error, 'continue-in-finally', which is emitted when the `continue` keyword is found inside a `finally` clause, which is a SyntaxError. * The --zope flag is deprecated and it is slated for removal in Pylint 1.6. The reason behind this removal is the fact that it's a specialized flag and there are solutions for the original problem: use --generated-members with the members that causes problems when using Zope or add AST transforms tailored to the zope project. At the same time, --include-ids and --symbols will also be removed in Pylint 1.6. Closes issue #570. * missing-module-attribute was removed and the corresponding CLI option, required-attributes, which is slated for removal in Pylint 1.6. * missing-reversed-argument was removed. The reason behind this is that this kind of errors should be detected by the type checker for *all* the builtins and not as a special case for the reversed builtin. This will happen shortly in the future. * --comment flag is obsolete and it will be removed in Pylint 1.6. * --profile flag is obsolete and it will be removed in Pylint 1.6. * Add a new error, 'misplaced-bare-raise'. The error is used when a bare raise is not used inside an except clause. This can generate a RuntimeError in Python, if there are no active exceptions to be reraised. While it works in Python 2 due to the fact that the exception leaks outside of the except block, it's nevertheless a behaviour that an user shouldn't depend upon, since it's not obvious to the reader of the code what exception will be raised and it will not be compatible with Python 3 anyhow. Closes issue #633. * Bring logilab-common's ureports into pylint.reporters. With this change, we moved away from depending on logilab-common, having in Pylint all the components that were used from logilab-common. The API should be considered an implementation detail and can change at some point in the future. Closes issue #621. * `reimported` is emitted for reimported objects on the same line. Closes issue #639. * Abbreviations of command line options are not supported anymore. Using abbreviations for CLI options was never considered to be a feature of pylint, this fact being only a side effect of using optparse. As this was the case, using --load-plugin or other abbreviation for --load-plugins never actually worked, while it also didn't raise an error. Closes issue #424. * Add a new error, 'nonlocal-without-binding' The error is emitted on Python 3 when a nonlocal name is not bound to any variable in the parents scopes. Closes issue #582. * 'deprecated-module' can be shown for modules which aren't available. Closes issue #362. * Don't consider a class abstract if its members can't be properly inferred. This fixes a false positive related to abstract-class-instantiated. Closes issue #648. * Add a new checker for the async features added by PEP 492. * Add a new error, 'yield-inside-async-function', emitted on Python 3.5 and upwards when the `yield` statement is found inside a new coroutine function (PEP 492). * Add a new error, 'not-async-context-manager', emitted when an async context manager block is used with an object which doesn't support this protocol (PEP 492). * Add a new convention warning, 'singleton-comparison', emitted when comparison to True, False or None is found. * Don't emit 'assigning-non-slot' for descriptors. Closes issue #652. * Add a new error, 'repeated-keyword', when a keyword argument is passed multiple times into a function call. This is similar with redundant-keyword-arg, but it's mildly different that it needs to be a separate error. * --enable=all can now be used. Closes issue #142. * Add a new convention message, 'misplaced-comparison-constant', emitted when a constant is placed in the left hand side of a comparison, as in '5 == func()'. This is also called Yoda condition, since the flow of code reminds of the Star Wars green character, conditions usually encountered in languages with variabile assignments in conditional statements. * Add a new convention message, 'consider-using-enumerate', which is emitted when code that uses `range` and `len` for iterating is encountered. Closes issue #684. * Added two new refactoring messages, 'no-classmethod-decorator' and 'no-staticmethod-decorator', which are emitted when a static method or a class method is declared without using decorators syntax. Closes issue #675. @ text @d3 1 a4 1 bin/pylint-${PYVERSSUFFIX} d14 3 d18 1 a18 2 ${PYSITELIB}/pylint/__init__.pyo ${PYSITELIB}/pylint/__main__.py d20 1 a20 2 ${PYSITELIB}/pylint/__main__.pyo ${PYSITELIB}/pylint/__pkginfo__.py d22 14 a35 1 ${PYSITELIB}/pylint/__pkginfo__.pyo d37 1 d39 38 a76 1 ${PYSITELIB}/pylint/checkers/__init__.pyo a77 2 ${PYSITELIB}/pylint/checkers/async.pyc ${PYSITELIB}/pylint/checkers/async.pyo a78 2 ${PYSITELIB}/pylint/checkers/base.pyc ${PYSITELIB}/pylint/checkers/base.pyo a79 2 ${PYSITELIB}/pylint/checkers/classes.pyc ${PYSITELIB}/pylint/checkers/classes.pyo a80 2 ${PYSITELIB}/pylint/checkers/design_analysis.pyc ${PYSITELIB}/pylint/checkers/design_analysis.pyo a81 2 ${PYSITELIB}/pylint/checkers/exceptions.pyc ${PYSITELIB}/pylint/checkers/exceptions.pyo a82 2 ${PYSITELIB}/pylint/checkers/format.pyc ${PYSITELIB}/pylint/checkers/format.pyo a83 2 ${PYSITELIB}/pylint/checkers/imports.pyc ${PYSITELIB}/pylint/checkers/imports.pyo a84 2 ${PYSITELIB}/pylint/checkers/logging.pyc ${PYSITELIB}/pylint/checkers/logging.pyo a85 2 ${PYSITELIB}/pylint/checkers/misc.pyc ${PYSITELIB}/pylint/checkers/misc.pyo a86 2 ${PYSITELIB}/pylint/checkers/newstyle.pyc ${PYSITELIB}/pylint/checkers/newstyle.pyo a87 2 ${PYSITELIB}/pylint/checkers/python3.pyc ${PYSITELIB}/pylint/checkers/python3.pyo a88 2 ${PYSITELIB}/pylint/checkers/raw_metrics.pyc ${PYSITELIB}/pylint/checkers/raw_metrics.pyo a89 2 ${PYSITELIB}/pylint/checkers/similar.pyc ${PYSITELIB}/pylint/checkers/similar.pyo a90 2 ${PYSITELIB}/pylint/checkers/spelling.pyc ${PYSITELIB}/pylint/checkers/spelling.pyo a91 2 ${PYSITELIB}/pylint/checkers/stdlib.pyc ${PYSITELIB}/pylint/checkers/stdlib.pyo a92 2 ${PYSITELIB}/pylint/checkers/strings.pyc ${PYSITELIB}/pylint/checkers/strings.pyo a93 2 ${PYSITELIB}/pylint/checkers/typecheck.pyc ${PYSITELIB}/pylint/checkers/typecheck.pyo a94 2 ${PYSITELIB}/pylint/checkers/utils.pyc ${PYSITELIB}/pylint/checkers/utils.pyo a95 2 ${PYSITELIB}/pylint/checkers/variables.pyc ${PYSITELIB}/pylint/checkers/variables.pyo a96 2 ${PYSITELIB}/pylint/config.pyc ${PYSITELIB}/pylint/config.pyo a97 2 ${PYSITELIB}/pylint/epylint.pyc ${PYSITELIB}/pylint/epylint.pyo d99 1 d101 14 a114 1 ${PYSITELIB}/pylint/extensions/__init__.pyo a115 2 ${PYSITELIB}/pylint/extensions/_check_docs_utils.pyc ${PYSITELIB}/pylint/extensions/_check_docs_utils.pyo a116 2 ${PYSITELIB}/pylint/extensions/bad_builtin.pyc ${PYSITELIB}/pylint/extensions/bad_builtin.pyo a117 2 ${PYSITELIB}/pylint/extensions/check_docs.pyc ${PYSITELIB}/pylint/extensions/check_docs.pyo a118 2 ${PYSITELIB}/pylint/extensions/check_elif.pyc ${PYSITELIB}/pylint/extensions/check_elif.pyo a119 2 ${PYSITELIB}/pylint/extensions/docparams.pyc ${PYSITELIB}/pylint/extensions/docparams.pyo a120 2 ${PYSITELIB}/pylint/extensions/docstyle.pyc ${PYSITELIB}/pylint/extensions/docstyle.pyo a121 2 ${PYSITELIB}/pylint/extensions/mccabe.pyc ${PYSITELIB}/pylint/extensions/mccabe.pyo a122 2 ${PYSITELIB}/pylint/graph.pyc ${PYSITELIB}/pylint/graph.pyo a123 2 ${PYSITELIB}/pylint/gui.pyc ${PYSITELIB}/pylint/gui.pyo a124 2 ${PYSITELIB}/pylint/interfaces.pyc ${PYSITELIB}/pylint/interfaces.pyo a125 2 ${PYSITELIB}/pylint/lint.pyc ${PYSITELIB}/pylint/lint.pyo d127 1 d129 14 a142 1 ${PYSITELIB}/pylint/pyreverse/__init__.pyo a143 2 ${PYSITELIB}/pylint/pyreverse/diadefslib.pyc ${PYSITELIB}/pylint/pyreverse/diadefslib.pyo a144 2 ${PYSITELIB}/pylint/pyreverse/diagrams.pyc ${PYSITELIB}/pylint/pyreverse/diagrams.pyo a145 2 ${PYSITELIB}/pylint/pyreverse/inspector.pyc ${PYSITELIB}/pylint/pyreverse/inspector.pyo a146 2 ${PYSITELIB}/pylint/pyreverse/main.pyc ${PYSITELIB}/pylint/pyreverse/main.pyo a147 2 ${PYSITELIB}/pylint/pyreverse/utils.pyc ${PYSITELIB}/pylint/pyreverse/utils.pyo a148 2 ${PYSITELIB}/pylint/pyreverse/vcgutils.pyc ${PYSITELIB}/pylint/pyreverse/vcgutils.pyo a149 2 ${PYSITELIB}/pylint/pyreverse/writer.pyc ${PYSITELIB}/pylint/pyreverse/writer.pyo d151 1 d153 8 a160 1 ${PYSITELIB}/pylint/reporters/__init__.pyo a161 2 ${PYSITELIB}/pylint/reporters/guireporter.pyc ${PYSITELIB}/pylint/reporters/guireporter.pyo a162 2 ${PYSITELIB}/pylint/reporters/html.pyc ${PYSITELIB}/pylint/reporters/html.pyo a163 2 ${PYSITELIB}/pylint/reporters/json.pyc ${PYSITELIB}/pylint/reporters/json.pyo a164 2 ${PYSITELIB}/pylint/reporters/text.pyc ${PYSITELIB}/pylint/reporters/text.pyo d166 1 d168 6 a173 1 ${PYSITELIB}/pylint/reporters/ureports/__init__.pyo a174 2 ${PYSITELIB}/pylint/reporters/ureports/html_writer.pyc ${PYSITELIB}/pylint/reporters/ureports/html_writer.pyo a175 2 ${PYSITELIB}/pylint/reporters/ureports/nodes.pyc ${PYSITELIB}/pylint/reporters/ureports/nodes.pyo a176 2 ${PYSITELIB}/pylint/reporters/ureports/text_writer.pyc ${PYSITELIB}/pylint/reporters/ureports/text_writer.pyo a375 3 ${PYSITELIB}/pylint/test/functional/invalid_encoded_data.py ${PYSITELIB}/pylint/test/functional/invalid_encoded_data.rc ${PYSITELIB}/pylint/test/functional/invalid_encoded_data.txt a611 9 ${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.py ${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.rc ${PYSITELIB}/pylint/test/functional/unknown_encoding_jython.txt ${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.py ${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.rc ${PYSITELIB}/pylint/test/functional/unknown_encoding_py29.txt ${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.py ${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.rc ${PYSITELIB}/pylint/test/functional/unknown_encoding_pypy.txt a921 2 ${PYSITELIB}/pylint/utils.pyc ${PYSITELIB}/pylint/utils.pyo @ 1.2 log @Update to 1.4.3 Update DEPENDS Add test target Upstream changes: 2015-03-14 -- 1.4.3 * Remove three warnings: star-args, abstract-class-little-used, abstract-class-not-used. These warnings don't add any real value and they don't imply errors or problems in the code. * Added a new option for controlling the peephole optimizer in astroid. The option ``--optimize-ast`` will control the peephole optimizer, which is used to optimize a couple of AST subtrees. The current problem solved by the peephole optimizer is when multiple joined strings, with the addition operator, are encountered. If the numbers of such strings is high enough, Pylint will then fail with a maximum recursion depth exceeded error, due to its visitor architecture. The peephole just transforms such calls, if it can, into the final resulting string and this exhibit a problem, because the visit_binop method stops being called (in the optimized AST it will be a Const node). 2015-03-11 -- 1.4.2 * Don't require a docstring for empty modules. Closes issue #261. * Fix a false positive with `too-few-format-args` string warning, emitted when the string format contained a normal positional argument ('{0}'), mixed with a positional argument which did an attribute access ('{0.__class__}'). Closes issue #463. * Take in account all the methods from the ancestors when checking for too-few-public-methods. Closes issue #471. * Catch enchant errors and emit 'invalid-characters-in-docstring' when checking for spelling errors. Closes issue #469. * Use all the inferred statements for the super-init-not-called check. Closes issue #389. * Add a new warning, 'unichr-builtin', emitted by the Python 3 porting checker, when the unichr builtin is found. Closes issue #472. * Add a new warning, 'intern-builtin', emitted by the Python 3 porting checker, when the intern builtin is found. Closes issue #473. * Add support for editable installations. * The HTML output accepts the `--msg-template` option. Patch by Dan Goldsmith. * Add 'map-builtin-not-iterating' (replacing 'implicit-map-evaluation'), 'zip-builtin-not-iterating', 'range-builtin-not-iterating', and 'filter-builtin-not-iterating' which are emitted by `--py3k` when the appropriate built-in is not used in an iterating context (semantics taken from 2to3). * Add a new warning, 'unidiomatic-typecheck', emitted when an explicit typecheck uses type() instead of isinstance(). For example, `type(x) == Y` instead of `isinstance(x, Y)`. Patch by Chris Rebert. Closes issue #299. * Add support for combining the Python 3 checker mode with the --jobs flag (--py3k and --jobs). Closes issue #467. * Add a new warning for the Python 3 porting checker, 'using-cmp-argument', emitted when the `cmp` argument for the `list.sort` or `sorted builtin` is encountered. * Make the --py3k flag commutative with the -E flag. Also, this patch fixes the leaks of error messages from the Python 3 checker when the errors mode was activated. Closes issue #437. 2015-01-16 -- 1.4.1 * Look only in the current function's scope for bad-super-call. Closes issue #403. * Check the return of properties when checking for not-callable. Closes issue #406. * Warn about using the input() or round() built-ins for Python 3. Closes issue #411. * Proper abstract method lookup while checking for abstract-class-instantiated. Closes issue #401. * Use a mro traversal for finding abstract methods. Closes issue #415. * Fix a false positive with catching-non-exception and tuples of exceptions. * Fix a false negative with raising-non-exception, when the raise used an uninferrable exception context. * Fix a false positive on Python 2 for raising-bad-type, when raising tuples in the form 'raise (ZeroDivisionError, None)'. * Fix a false positive with invalid-slots-objects, where the slot entry was an unicode string on Python 2. Closes issue #421. * Add a new warning, 'redundant-unittest-assert', emitted when using unittest's methods assertTrue and assertFalse with constant value as argument. Patch by Vlad Temian. * Add a new JSON reporter, usable through -f flag. * Add the method names for the 'signature-differs' and 'argument-differs' warnings. Closes issue #433. * Don't compile test files when installing. * Fix a crash which occurred when using multiple jobs and the files given as argument didn't exist at all. 2014-11-23 -- 1.4.0 * Added new options for controlling the loading of C extensions. By default, only C extensions from the stdlib will be loaded into the active Python interpreter for inspection, because they can run arbitrary code on import. The option `--extension-pkg-whitelist` can be used to specify modules or packages that are safe to load. * Change default max-line-length to 100 rather than 80 * Drop BaseRawChecker class which were only there for backward compat for a while now * Don't try to analyze string formatting with objects coming from function arguments. Closes issue #373. * Port source code to be Python 2/3 compatible. This drops the need for 2to3, but does drop support for Python 2.5. * Each message now comes with a confidence level attached, and can be filtered base on this level. This allows to filter out all messages that were emitted even though an inference failure happened during checking. * Improved presenting unused-import message. Closes issue #293. * Add new checker for finding spelling errors. New messages: wrong-spelling-in-comment, wrong-spelling-in-docstring. New options: spelling-dict, spelling-ignore-words. * Add new '-j' option for running checks in sub-processes. * Added new checks for line endings if they are mixed (LF vs CRLF) or if they are not as expected. New messages: mixed-line-endings, unexpected-line-ending-format. New option: expected-line-ending-format. * 'dangerous-default-value' no longer evaluates the value of the arguments, which could result in long error messages or sensitive data being leaked. Closes issue #282 * Fix a false positive with string formatting checker, when encountering a string which uses only position-based arguments. Closes issue #285. * Fix a false positive with string formatting checker, when using keyword argument packing. Closes issue #288. * Proper handle class level scope for lambdas. * Handle 'too-few-format-args' or 'too-many-format-args' for format strings with both named and positional fields. Closes issue #286. * Analyze only strings by the string format checker. Closes issue #287. * Properly handle nested format string fields. Closes issue #294. * Don't emit 'attribute-defined-outside-init' if the attribute was set by a function call in a defining method. Closes issue #192. * Properly handle unicode format strings for Python 2. Closes issue #296. * Don't emit 'import-error' if an import was protected by a try-except, which excepted ImportError. * Fix an 'unused-import' false positive, when the error was emitted for all the members imported with 'from import' form. Closes issue #304. * Don't emit 'invalid-name' when assigning a name in an ImportError handler. Closes issue #302. * Don't count branches from nested functions. * Fix a false positive with 'too-few-format-args', when the format strings contains duplicate manual position arguments. Closes issue #310. * fixme regex handles comments without spaces after the hash. Closes issue #311. * Don't emit 'unused-import' when a special object is imported (__all__, __doc__ etc.). Closes issue #309. * Look in the metaclass, if defined, for members not found in the current class. Closes issue #306. * Don't emit 'protected-access' if the attribute is accessed using a property defined at the class level. * Detect calls of the parent's __init__, through a binded super() call. * Check that a class has an explicitly defined metaclass before emitting 'old-style-class' for Python 2. * Emit 'catching-non-exception' for non-class nodes. Closes issue #303. * Order of reporting is consistent. * Add a new warning, 'boolean-datetime', emitted when an instance of 'datetime.time' is used in a boolean context. Closes issue #239. * Fix a crash which ocurred while checking for 'method-hidden', when the parent frame was something different than a function. * Generate html output for missing files. Closes issue #320. * Fix a false positive with 'too-many-format-args', when the format string contains mixed attribute access arguments and manual fields. Closes issue #322. * Extend the cases where 'undefined-variable' and 'used-before-assignment' can be detected. Closes issue #291. * Add support for customising callback identifiers, by adding a new '--callbacks' command line option. Closes issue #326. * Add a new warning, 'logging-format-interpolation', emitted when .format() string interpolation is used within logging function calls. * Don't emit 'unbalanced-tuple-unpacking' when the rhs of the assignment is a variable length argument. Closes issue #329. * Add a new warning, 'inherit-non-class', emitted when a class inherits from something which is not a class. Closes issue #331. * Fix another false positives with 'undefined-variable', where the variable can be found as a class assignment and used in a function annotation. Closes issue #342. * Handle assignment of the string format method to a variable. Closes issue #351. * Support wheel packaging format for PyPi. Closes issue #334. * Check that various built-ins that do not exist in Python 3 are not used: apply, basestring, buffer, cmp, coerce, execfile, file, long raw_input, reduce, StandardError, unicode, reload and xrange. * Warn for magic methods which are not used in any way in Python 3: __coerce__, __delslice__, __getslice__, __setslice__, __cmp__, __oct__, __nonzero__ and __hex__. * Don't emit 'assigning-non-slot' when the assignment is for a property. Closes issue #359. * Fix for regression: '{path}' was no longer accepted in '--msg-template'. * Report the percentage of all messages, not just for errors and warnings. Closes issue #319. * 'too-many-public-methods' is reported only for methods defined in a class, not in its ancestors. Closes issue #248. * 'too-many-lines' disable pragma can be located on any line, not only the first. Closes issue #321. * Warn in Python 2 when an import statement is found without a corresponding `from __future__ import absolute_import`. * Warn in Python 2 when a non-floor division operation is found without a corresponding `from __future__ import division`. * Add a new option, 'exclude-protected', for excluding members from the protected-access warning. Closes issue #48. * Warn in Python 2 when using dict.iter*(), dict.view*(); none of these methods are available in Python 3. * Warn in Python 2 when calling an object's next() method; Python 3 uses __next__() instead. * Warn when assigning to __metaclass__ at a class scope; in Python 3 a metaclass is specified as an argument to the 'class' statement. * Warn when performing parameter tuple unpacking; it is not supported in Python 3. * 'abstract-class-instantiated' is also emitted for Python 2. It was previously disabled. * Add 'long-suffix' error, emitted when encountering the long suffix on numbers. * Add support for disabling a checker, by specifying an 'enabled' attribute on the checker class. * Add a new CLI option, --py3k, for enabling Python 3 porting mode. This mode will disable all other checkers and will emit warnings and errors for constructs which are invalid or removed in Python 3. * Add 'old-octal-literal' to Python 3 porting checker, emitted when encountering octals with the old syntax. * Add 'implicit-map-evaluation' to Python 3 porting checker, emitted when encountering the use of map builtin, without explicit evaluation. 2014-07-26 -- 1.3.0 * Allow hanging continued indentation for implicitly concatenated strings. Closes issue #232. * Pylint works under Python 2.5 again, and its test suite passes. * Fix some false positives for the cellvar-from-loop warnings. Closes issue #233. * Return new astroid class nodes when the inferencer can detect that that result of a function invocation on a type (like `type` or `abc.ABCMeta`) is requested. Closes #205. * Emit 'undefined-variable' for undefined names when using the Python 3 `metaclass=` argument. * Checkers respect priority now. Close issue #229. * Fix a false positive regarding W0511. Closes issue #149. * Fix unused-import false positive with Python 3 metaclasses (#143). * Don't warn with 'bad-format-character' when encountering the 'a' format on Python 3. * Add multiple checks for PEP 3101 advanced string formatting: 'bad-format-string', 'missing-format-argument-key', 'unused-format-string-argument', 'format-combined-specification', 'missing-format-attribute' and 'invalid-format-index'. * Issue broad-except and bare-except even if the number of except handlers is different than 1. Fixes issue #113. * Issue attribute-defined-outside-init for all cases, not just for the last assignment. Closes issue #262. * Emit 'not-callable' when calling properties. Closes issue #268. * Fix a false positive with unbalanced iterable unpacking, when encountering starred nodes. Closes issue #273. * Add new checks, 'invalid-slice-index' and 'invalid-sequence-index' for invalid sequence and slice indices. * Add 'assigning-non-slot' warning, which detects assignments to attributes not defined in slots. * Don't emit 'no-name-in-module' for ignored modules. Closes issue #223. * Fix an 'unused-variable' false positive, where the variable is assigned through an import. Closes issue #196. * Definition order is considered for classes, function arguments and annotations. Closes issue #257. * Don't emit 'unused-variable' when assigning to a nonlocal. Closes issue #275. * Do not let ImportError propagate from the import checker, leading to crash in some namespace package related cases. Closes issue #203. * Don't emit 'pointless-string-statement' for attribute docstrings. Closes issue #193. * Use the proper mode for pickle when opening and writing the stats file. Closes issue #148. * Don't emit hidden-method message when the attribute has been monkey-patched, you're on your own when you do that. * Only emit attribute-defined-outside-init for definition within the same module as the offended class, avoiding to mangle the output in some cases. * Don't emit 'unnecessary-lambda' if the body of the lambda call contains call chaining. Closes issue #243. * Don't emit 'missing-docstring' when the actual docstring uses `.format`. Closes issue #281. 2014-04-30 -- 1.2.1 * Restore the ability to specify the init-hook option via the configuration file, which was accidentally broken in 1.2.0. * Add a new warning [bad-continuation] for badly indentend continued lines. * Emit [assignment-from-none] when the function contains bare returns. Fixes BitBucket issue #191. * Added a new warning for closing over variables that are defined in loops. Fixes Bitbucket issue #176. * Do not warn about \u escapes in string literals when Unicode literals are used for Python 2.*. Fixes BitBucket issue #151. * Extend the checking for unbalanced-tuple-unpacking and unpacking-non-sequence to instance attribute unpacking as well. * Fix explicit checking of python script (1.2 regression, #219) * Restore --init-hook, renamed accidentally into --init-hooks in 1.2.0 (#211) * Add 'indexing-exception' warning, which detects that indexing an exception occurs in Python 2 (behaviour removed in Python 3). 2014-04-18 -- 1.2.0 * Pass the current python paths to pylint process when invoked via epylint. Fixes BitBucket issue #133. * Add -i / --include-ids and -s / --symbols back as completely ignored options. Fixes BitBucket issue #180. * Extend the number of cases in which logging calls are detected. Fixes bitbucket issue #182. * Improve pragma handling to not detect pylint:* strings in non-comments. Fixes BitBucket issue #79. * Do not crash with UnknownMessage if an unknown message ID/name appears in disable or enable in the configuration. Patch by Cole Robinson. Fixes bitbucket issue #170. * Add new warning 'eval-used', checking that the builtin function `eval` was used. * Make it possible to show a naming hint for invalid name by setting include-naming-hint. Also make the naming hints configurable. Fixes BitBucket issue #138. * Added support for enforcing multiple, but consistent name styles for different name types inside a single module; based on a patch written by morbo@@google.com. * Also warn about empty docstrings on overridden methods; contributed by sebastianu@@google.com. * Also inspect arguments to constructor calls, and emit relevant warnings; contributed by sebastianu@@google.com. * Added a new configuration option logging-modules to make the list of module names that can be checked for 'logging-not-lazy' et. al. configurable; contributed by morbo@@google.com. * ensure init-hooks is evaluated before other options, notably load-plugins (#166) * Python 2.5 support restored: fixed small issues preventing pylint to run on python 2.5. Bitbucket issues #50 and #62. * bitbucket #128: pylint doesn't crash when looking for used-before-assignment in context manager assignments. * Add new warning, 'bad-reversed-sequence', for checking that the reversed() builtin receive a sequence (implements __getitem__ and __len__, without being a dict or a dict subclass) or an instance which implements __reversed__. * Mark `file` as a bad function when using python2 (closes #8). * Add new warning 'bad-exception-context', checking that `raise ... from ...` uses a proper exception context (None or an exception). * Enhance the check for 'used-before-assignment' to look for 'nonlocal' uses. * Emit 'undefined-all-variable' if a package's __all__ variable contains a missing submodule (closes #126). * Add a new warning 'abstract-class-instantiated' for checking that abstract classes created with `abc` module and with abstract methods are instantied. * Do not warn about 'return-arg-in-generator' in Python 3.3+. * Do not warn about 'abstract-method' when the abstract method is implemented through assignment (#155). * Improve cyclic import detection in the case of packages, patch by Buck Golemon * Add new warnings for checking proper class __slots__: `invalid-slots-object` and `invalid-slots`. * Search for rc file in `~/.config/pylintrc` if `~/.pylintrc` doesn't exists (#121) * Don't register the newstyle checker w/ python >= 3 * Fix unused-import false positive w/ augment assignment (#78) * Fix access-member-before-definition false negative wrt aug assign (#164) * Do not attempt to analyze non python file, eg .so file (#122) @ text @d2 5 a6 5 bin/epylint${PYVERSSUFFIX} bin/pylint-gui${PYVERSSUFFIX} bin/pylint${PYVERSSUFFIX} bin/pyreverse${PYVERSSUFFIX} bin/symilar${PYVERSSUFFIX} d25 3 d88 27 d133 3 d142 3 d163 12 d181 13 d196 1 d212 2 d218 6 a223 2 ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape.py ${PYSITELIB}/pylint/test/functional/anomalous_unicode_escape.txt d226 4 d232 5 a236 2 ${PYSITELIB}/pylint/test/functional/bad_context_manager.py ${PYSITELIB}/pylint/test/functional/bad_context_manager.txt d239 5 d255 8 d264 1 d279 8 d291 6 d298 21 d321 4 d327 4 d333 13 d347 2 d351 1 d361 2 d368 2 d372 2 a373 2 ${PYSITELIB}/pylint/test/functional/invalid__all__object.py ${PYSITELIB}/pylint/test/functional/invalid__all__object.txt d375 1 d381 2 d385 2 d389 14 d406 6 d414 8 d424 8 d434 8 d446 4 d461 2 d465 28 d505 2 d509 14 d526 6 d536 4 d553 20 d575 4 d580 17 d606 4 d613 3 a618 3 ${PYSITELIB}/pylint/test/functional/unknown_encoding_py30.py ${PYSITELIB}/pylint/test/functional/unknown_encoding_py30.rc ${PYSITELIB}/pylint/test/functional/unknown_encoding_py30.txt d624 4 d632 3 d637 11 d650 5 d657 4 d663 34 a700 2 ${PYSITELIB}/pylint/test/input/func_assert_2uple.py ${PYSITELIB}/pylint/test/input/func_attrs_definition_order.py a702 2 ${PYSITELIB}/pylint/test/input/func_bad_exception_context_py30.py ${PYSITELIB}/pylint/test/input/func_base_useless_pass.py a705 6 ${PYSITELIB}/pylint/test/input/func_continue_not_in_loop.py ${PYSITELIB}/pylint/test/input/func_dangerous_default.py ${PYSITELIB}/pylint/test/input/func_defining-attr-methods_order.py ${PYSITELIB}/pylint/test/input/func_deprecated_lambda_py_30.py ${PYSITELIB}/pylint/test/input/func_deprecated_module_py30.py ${PYSITELIB}/pylint/test/input/func_deprecated_module_py_30.py a707 2 ${PYSITELIB}/pylint/test/input/func_e0001_py30.py ${PYSITELIB}/pylint/test/input/func_e0011.py a708 2 ${PYSITELIB}/pylint/test/input/func_e0101.py ${PYSITELIB}/pylint/test/input/func_e0108.py a710 1 ${PYSITELIB}/pylint/test/input/func_e0206.py a714 2 ${PYSITELIB}/pylint/test/input/func_empty_module.py ${PYSITELIB}/pylint/test/input/func_eval_used.py a715 2 ${PYSITELIB}/pylint/test/input/func_exec_used_py30.py ${PYSITELIB}/pylint/test/input/func_f0401.py a716 1 ${PYSITELIB}/pylint/test/input/func_fixme.py a722 2 ${PYSITELIB}/pylint/test/input/func_import_syntax_error.py ${PYSITELIB}/pylint/test/input/func_indent.py a723 3 ${PYSITELIB}/pylint/test/input/func_interfaces.py ${PYSITELIB}/pylint/test/input/func_invalid_sequence_index.py ${PYSITELIB}/pylint/test/input/func_keyword_repeat.py a726 1 ${PYSITELIB}/pylint/test/input/func_method_could_be_function.py a727 1 ${PYSITELIB}/pylint/test/input/func_more_e0604.py a734 1 ${PYSITELIB}/pylint/test/input/func_noerror_class_decorators_py26.py a735 1 ${PYSITELIB}/pylint/test/input/func_noerror_classes_meth_signature.py a736 1 ${PYSITELIB}/pylint/test/input/func_noerror_crash_122793.py a738 1 ${PYSITELIB}/pylint/test/input/func_noerror_e1101_13784.py a739 1 ${PYSITELIB}/pylint/test/input/func_noerror_e1101_but_getattr.py a743 1 ${PYSITELIB}/pylint/test/input/func_noerror_factory_method.py a745 1 ${PYSITELIB}/pylint/test/input/func_noerror_indirect_interface.py a749 1 ${PYSITELIB}/pylint/test/input/func_noerror_nested_classes.py a757 1 ${PYSITELIB}/pylint/test/input/func_noerror_socket_member.py a758 5 ${PYSITELIB}/pylint/test/input/func_noerror_staticmethod_as_decorator_py24.py ${PYSITELIB}/pylint/test/input/func_noerror_super_protected.py ${PYSITELIB}/pylint/test/input/func_noerror_unused_variable_py30.py ${PYSITELIB}/pylint/test/input/func_noerror_used_before_assignment.py ${PYSITELIB}/pylint/test/input/func_noerror_w0232.py a760 2 ${PYSITELIB}/pylint/test/input/func_non_iterator_returned_py30.py ${PYSITELIB}/pylint/test/input/func_non_iterator_returned_py_30.py a761 8 ${PYSITELIB}/pylint/test/input/func_operators.py ${PYSITELIB}/pylint/test/input/func_r0901.py ${PYSITELIB}/pylint/test/input/func_r0902.py ${PYSITELIB}/pylint/test/input/func_r0903.py ${PYSITELIB}/pylint/test/input/func_r0904.py ${PYSITELIB}/pylint/test/input/func_r0923.py ${PYSITELIB}/pylint/test/input/func_reqattrs.py ${PYSITELIB}/pylint/test/input/func_return_outside_func.py a762 4 ${PYSITELIB}/pylint/test/input/func_set_literal_as_default_py27.py ${PYSITELIB}/pylint/test/input/func_syntax_error.py ${PYSITELIB}/pylint/test/input/func_tokenize_error.py ${PYSITELIB}/pylint/test/input/func_too_many_locals_arguments.py a763 2 ${PYSITELIB}/pylint/test/input/func_toolonglines.py ${PYSITELIB}/pylint/test/input/func_trailing_whitespace.py a764 3 ${PYSITELIB}/pylint/test/input/func_typecheck_non_callable_call.py ${PYSITELIB}/pylint/test/input/func_undefined_metaclass_var_py30.py ${PYSITELIB}/pylint/test/input/func_unreachable.py a767 1 ${PYSITELIB}/pylint/test/input/func_used_before_assignment_py30.py a768 8 ${PYSITELIB}/pylint/test/input/func_w0101.py ${PYSITELIB}/pylint/test/input/func_w0102.py ${PYSITELIB}/pylint/test/input/func_w0103.py ${PYSITELIB}/pylint/test/input/func_w0104.py ${PYSITELIB}/pylint/test/input/func_w0105.py ${PYSITELIB}/pylint/test/input/func_w0110.py ${PYSITELIB}/pylint/test/input/func_w0111.py ${PYSITELIB}/pylint/test/input/func_w0112.py a769 2 ${PYSITELIB}/pylint/test/input/func_w0151.py ${PYSITELIB}/pylint/test/input/func_w0202.py a771 2 ${PYSITELIB}/pylint/test/input/func_w0302.py ${PYSITELIB}/pylint/test/input/func_w0312.py a777 1 ${PYSITELIB}/pylint/test/input/func_w0402.py a786 1 ${PYSITELIB}/pylint/test/input/func_w0702.py a787 1 ${PYSITELIB}/pylint/test/input/func_w0704.py a789 2 ${PYSITELIB}/pylint/test/input/func_w1201.py ${PYSITELIB}/pylint/test/input/func_w1202.py a791 3 ${PYSITELIB}/pylint/test/input/indirect1.py ${PYSITELIB}/pylint/test/input/indirect2.py ${PYSITELIB}/pylint/test/input/indirect3.py a799 2 ${PYSITELIB}/pylint/test/messages/func_assert_2uple.txt ${PYSITELIB}/pylint/test/messages/func_attrs_definition_order.txt a801 2 ${PYSITELIB}/pylint/test/messages/func_bad_exception_context_py30.txt ${PYSITELIB}/pylint/test/messages/func_base_useless_pass.txt a804 7 ${PYSITELIB}/pylint/test/messages/func_continue_not_in_loop.txt ${PYSITELIB}/pylint/test/messages/func_dangerous_default.txt ${PYSITELIB}/pylint/test/messages/func_dangerous_default_py30.txt ${PYSITELIB}/pylint/test/messages/func_defining-attr-methods_order.txt ${PYSITELIB}/pylint/test/messages/func_deprecated_lambda_py_30.txt ${PYSITELIB}/pylint/test/messages/func_deprecated_module_py30.txt ${PYSITELIB}/pylint/test/messages/func_deprecated_module_py_30.txt a807 2 ${PYSITELIB}/pylint/test/messages/func_e0001_py30.txt ${PYSITELIB}/pylint/test/messages/func_e0011.txt a808 2 ${PYSITELIB}/pylint/test/messages/func_e0101.txt ${PYSITELIB}/pylint/test/messages/func_e0108.txt a810 1 ${PYSITELIB}/pylint/test/messages/func_e0206.txt a815 2 ${PYSITELIB}/pylint/test/messages/func_empty_module.txt ${PYSITELIB}/pylint/test/messages/func_eval_used.txt a816 2 ${PYSITELIB}/pylint/test/messages/func_exec_used_py30.txt ${PYSITELIB}/pylint/test/messages/func_f0401.txt a817 1 ${PYSITELIB}/pylint/test/messages/func_fixme.txt a823 3 ${PYSITELIB}/pylint/test/messages/func_import_syntax_error.txt ${PYSITELIB}/pylint/test/messages/func_import_syntax_error_py30.txt ${PYSITELIB}/pylint/test/messages/func_indent.txt a824 3 ${PYSITELIB}/pylint/test/messages/func_interfaces.txt ${PYSITELIB}/pylint/test/messages/func_invalid_sequence_index.txt ${PYSITELIB}/pylint/test/messages/func_keyword_repeat_py26.txt a827 1 ${PYSITELIB}/pylint/test/messages/func_method_could_be_function.txt a828 1 ${PYSITELIB}/pylint/test/messages/func_more_e0604.txt a830 2 ${PYSITELIB}/pylint/test/messages/func_non_iterator_returned_py30.txt ${PYSITELIB}/pylint/test/messages/func_non_iterator_returned_py_30.txt a831 6 ${PYSITELIB}/pylint/test/messages/func_operators.txt ${PYSITELIB}/pylint/test/messages/func_r0901.txt ${PYSITELIB}/pylint/test/messages/func_r0902.txt ${PYSITELIB}/pylint/test/messages/func_r0903.txt ${PYSITELIB}/pylint/test/messages/func_r0904.txt ${PYSITELIB}/pylint/test/messages/func_r0923.txt a832 2 ${PYSITELIB}/pylint/test/messages/func_reqattrs.txt ${PYSITELIB}/pylint/test/messages/func_return_outside_func.txt a833 4 ${PYSITELIB}/pylint/test/messages/func_set_literal_as_default_py27.txt ${PYSITELIB}/pylint/test/messages/func_syntax_error.txt ${PYSITELIB}/pylint/test/messages/func_tokenize_error.txt ${PYSITELIB}/pylint/test/messages/func_too_many_locals_arguments.txt a834 1 ${PYSITELIB}/pylint/test/messages/func_toolonglines.txt a835 1 ${PYSITELIB}/pylint/test/messages/func_trailing_whitespace.txt a838 1 ${PYSITELIB}/pylint/test/messages/func_undefined_metaclass_var_py30.txt a840 1 ${PYSITELIB}/pylint/test/messages/func_unreachable.txt a844 1 ${PYSITELIB}/pylint/test/messages/func_used_before_assignment_py30.txt a845 8 ${PYSITELIB}/pylint/test/messages/func_w0101.txt ${PYSITELIB}/pylint/test/messages/func_w0102.txt ${PYSITELIB}/pylint/test/messages/func_w0103.txt ${PYSITELIB}/pylint/test/messages/func_w0104.txt ${PYSITELIB}/pylint/test/messages/func_w0105.txt ${PYSITELIB}/pylint/test/messages/func_w0110.txt ${PYSITELIB}/pylint/test/messages/func_w0111.txt ${PYSITELIB}/pylint/test/messages/func_w0112.txt a846 2 ${PYSITELIB}/pylint/test/messages/func_w0151.txt ${PYSITELIB}/pylint/test/messages/func_w0202.txt a848 1 ${PYSITELIB}/pylint/test/messages/func_w0302.txt a852 1 ${PYSITELIB}/pylint/test/messages/func_w0402.txt a863 1 ${PYSITELIB}/pylint/test/messages/func_w0702.txt a864 1 ${PYSITELIB}/pylint/test/messages/func_w0704.txt a866 2 ${PYSITELIB}/pylint/test/messages/func_w1201.txt ${PYSITELIB}/pylint/test/messages/func_w1202.txt d868 1 d872 2 d877 5 d884 2 d899 1 d901 1 d911 1 d917 2 d922 1 d925 1 @ 1.1 log @Import py27-pylint-1.1.0 as devel/py-pylint. Pylint is a Python source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells (as defined in Martin Fowler's Refactoring book). Pylint can be seen as another PyChecker since nearly all tests you can do with PyChecker can also be done with Pylint. However, Pylint offers some more features, like checking length of lines of code, checking if variable names are well-formed according to your coding standard, or checking if declared interfaces are truly implemented, and much more. . Additionally, it is possible to write plugins to add your own checks. @ text @d52 3 d61 3 d121 3 d128 1 d133 199 a331 1 ${PYSITELIB}/pylint/test/fulltest.sh a333 4 ${PYSITELIB}/pylint/test/input/func___name___access.py ${PYSITELIB}/pylint/test/input/func_all.py ${PYSITELIB}/pylint/test/input/func_all_undefined.py ${PYSITELIB}/pylint/test/input/func_arguments.py a335 1 ${PYSITELIB}/pylint/test/input/func_backtick_deprecated_py_30.py d337 2 a338 4 ${PYSITELIB}/pylint/test/input/func_bad_context_manager.py ${PYSITELIB}/pylint/test/input/func_bad_open_mode.py ${PYSITELIB}/pylint/test/input/func_bad_str_strip_call.py ${PYSITELIB}/pylint/test/input/func_base_stmt_without_effect.py a342 3 ${PYSITELIB}/pylint/test/input/func_catching_non_exception.py ${PYSITELIB}/pylint/test/input/func_class_access_protected_members.py ${PYSITELIB}/pylint/test/input/func_class_members.py d347 2 a348 1 ${PYSITELIB}/pylint/test/input/func_dict_keys.py a349 1 ${PYSITELIB}/pylint/test/input/func_docstring.py a357 1 ${PYSITELIB}/pylint/test/input/func_e0205.py d364 1 a364 1 ${PYSITELIB}/pylint/test/input/func_exceptions_raise_type_error.py a366 1 ${PYSITELIB}/pylint/test/input/func_f0001.py a369 4 ${PYSITELIB}/pylint/test/input/func_format.py ${PYSITELIB}/pylint/test/input/func_genexpr_var_scope_py24.py ${PYSITELIB}/pylint/test/input/func_globals.py ${PYSITELIB}/pylint/test/input/func_i0010.py d380 1 a380 1 ${PYSITELIB}/pylint/test/input/func_invalid_encoded_data.py d383 2 a385 3 ${PYSITELIB}/pylint/test/input/func_method_missing_self.py ${PYSITELIB}/pylint/test/input/func_method_without_self_but_self_assignment.py ${PYSITELIB}/pylint/test/input/func_missing_super_argument_py_30.py a387 2 ${PYSITELIB}/pylint/test/input/func_name_checking.py ${PYSITELIB}/pylint/test/input/func_namedtuple.py a388 5 ${PYSITELIB}/pylint/test/input/func_names_imported_from_module.py ${PYSITELIB}/pylint/test/input/func_newstyle___slots__.py ${PYSITELIB}/pylint/test/input/func_newstyle_exceptions.py ${PYSITELIB}/pylint/test/input/func_newstyle_property.py ${PYSITELIB}/pylint/test/input/func_newstyle_super.py a389 3 ${PYSITELIB}/pylint/test/input/func_no_final_new_line.py ${PYSITELIB}/pylint/test/input/func_noerror_9215_lambda_arg_as_decorator.py ${PYSITELIB}/pylint/test/input/func_noerror___future___import.py a391 1 ${PYSITELIB}/pylint/test/input/func_noerror_all_no_inference.py a401 2 ${PYSITELIB}/pylint/test/input/func_noerror_defined_and_used_on_same_line.py ${PYSITELIB}/pylint/test/input/func_noerror_defined_and_used_on_same_line_py27.py d430 1 a442 2 ${PYSITELIB}/pylint/test/input/func_r0921.py ${PYSITELIB}/pylint/test/input/func_r0922.py a443 1 ${PYSITELIB}/pylint/test/input/func_raw_escapes.py d446 1 a446 2 ${PYSITELIB}/pylint/test/input/func_return_yield_mix.py ${PYSITELIB}/pylint/test/input/func_scope_regrtest.py a447 1 ${PYSITELIB}/pylint/test/input/func_superfluous_parens.py a454 1 ${PYSITELIB}/pylint/test/input/func_typecheck_getattr.py d456 1 a456 5 ${PYSITELIB}/pylint/test/input/func_unbalanced_tuple_unpacking.py ${PYSITELIB}/pylint/test/input/func_undefined_var.py ${PYSITELIB}/pylint/test/input/func_unknown_encoding.py ${PYSITELIB}/pylint/test/input/func_unpack_exception_py_30.py ${PYSITELIB}/pylint/test/input/func_unpacking_non_sequence.py d458 1 d461 1 a461 2 ${PYSITELIB}/pylint/test/input/func_useless_else_on_loop.py ${PYSITELIB}/pylint/test/input/func_utf8_lines.py a467 2 ${PYSITELIB}/pylint/test/input/func_w0108.py ${PYSITELIB}/pylint/test/input/func_w0109.py a472 1 ${PYSITELIB}/pylint/test/input/func_w0152.py a474 2 ${PYSITELIB}/pylint/test/input/func_w0223.py ${PYSITELIB}/pylint/test/input/func_w0231.py a477 1 ${PYSITELIB}/pylint/test/input/func_w0331_py_30.py d480 4 a484 1 ${PYSITELIB}/pylint/test/input/func_w0403.py a490 1 ${PYSITELIB}/pylint/test/input/func_w0622.py a493 1 ${PYSITELIB}/pylint/test/input/func_w0701_py_30.py a497 1 ${PYSITELIB}/pylint/test/input/func_w0711.py d500 1 a501 1 ${PYSITELIB}/pylint/test/input/func_yield_outside_func.py a509 1 ${PYSITELIB}/pylint/test/input/unpacking.py a513 4 ${PYSITELIB}/pylint/test/messages/func___name___access.txt ${PYSITELIB}/pylint/test/messages/func_all.txt ${PYSITELIB}/pylint/test/messages/func_all_undefined.txt ${PYSITELIB}/pylint/test/messages/func_arguments.txt a515 1 ${PYSITELIB}/pylint/test/messages/func_backtick_deprecated_py_30.txt d517 2 a518 5 ${PYSITELIB}/pylint/test/messages/func_bad_context_manager.txt ${PYSITELIB}/pylint/test/messages/func_bad_open_mode.txt ${PYSITELIB}/pylint/test/messages/func_bad_str_strip_call.txt ${PYSITELIB}/pylint/test/messages/func_bad_str_strip_call_py30.txt ${PYSITELIB}/pylint/test/messages/func_base_stmt_without_effect.txt a522 3 ${PYSITELIB}/pylint/test/messages/func_catching_non_exception.txt ${PYSITELIB}/pylint/test/messages/func_class_access_protected_members.txt ${PYSITELIB}/pylint/test/messages/func_class_members.txt d528 2 a529 1 ${PYSITELIB}/pylint/test/messages/func_dict_keys.txt a531 1 ${PYSITELIB}/pylint/test/messages/func_docstring.txt a539 1 ${PYSITELIB}/pylint/test/messages/func_e0205.txt d545 1 d547 1 a547 1 ${PYSITELIB}/pylint/test/messages/func_exceptions_raise_type_error.txt a549 1 ${PYSITELIB}/pylint/test/messages/func_f0001.txt a552 4 ${PYSITELIB}/pylint/test/messages/func_format.txt ${PYSITELIB}/pylint/test/messages/func_genexpr_var_scope_py24.txt ${PYSITELIB}/pylint/test/messages/func_globals.txt ${PYSITELIB}/pylint/test/messages/func_i0010.txt d564 1 a564 2 ${PYSITELIB}/pylint/test/messages/func_invalid_encoded_data.txt ${PYSITELIB}/pylint/test/messages/func_keyword_repeat_py25.txt d567 2 a569 3 ${PYSITELIB}/pylint/test/messages/func_method_missing_self.txt ${PYSITELIB}/pylint/test/messages/func_method_without_self_but_self_assignment.txt ${PYSITELIB}/pylint/test/messages/func_missing_super_argument_py_30.txt a571 2 ${PYSITELIB}/pylint/test/messages/func_name_checking.txt ${PYSITELIB}/pylint/test/messages/func_namedtuple.txt a572 7 ${PYSITELIB}/pylint/test/messages/func_names_imported_from_module.txt ${PYSITELIB}/pylint/test/messages/func_newstyle___slots__.txt ${PYSITELIB}/pylint/test/messages/func_newstyle_exceptions.txt ${PYSITELIB}/pylint/test/messages/func_newstyle_exceptions_py30.txt ${PYSITELIB}/pylint/test/messages/func_newstyle_property.txt ${PYSITELIB}/pylint/test/messages/func_newstyle_super.txt ${PYSITELIB}/pylint/test/messages/func_newstyle_super_py30.txt a573 1 ${PYSITELIB}/pylint/test/messages/func_no_final_new_line.txt a581 2 ${PYSITELIB}/pylint/test/messages/func_r0921.txt ${PYSITELIB}/pylint/test/messages/func_r0922.txt d586 1 a586 2 ${PYSITELIB}/pylint/test/messages/func_return_yield_mix.txt ${PYSITELIB}/pylint/test/messages/func_scope_regrtest.txt a587 1 ${PYSITELIB}/pylint/test/messages/func_superfluous_parens.txt d596 1 a596 1 ${PYSITELIB}/pylint/test/messages/func_typecheck_getattr.txt d598 3 a600 6 ${PYSITELIB}/pylint/test/messages/func_unbalanced_tuple_unpacking.txt ${PYSITELIB}/pylint/test/messages/func_undefined_var.txt ${PYSITELIB}/pylint/test/messages/func_unknown_encoding_py29.txt ${PYSITELIB}/pylint/test/messages/func_unknown_encoding_py30.txt ${PYSITELIB}/pylint/test/messages/func_unpack_exception_py_30.txt ${PYSITELIB}/pylint/test/messages/func_unpacking_non_sequence.txt d602 1 d606 1 a606 2 ${PYSITELIB}/pylint/test/messages/func_useless_else_on_loop.txt ${PYSITELIB}/pylint/test/messages/func_utf8_lines.txt a612 2 ${PYSITELIB}/pylint/test/messages/func_w0108.txt ${PYSITELIB}/pylint/test/messages/func_w0109.txt a617 2 ${PYSITELIB}/pylint/test/messages/func_w0152_py29.txt ${PYSITELIB}/pylint/test/messages/func_w0152_py30.txt a619 2 ${PYSITELIB}/pylint/test/messages/func_w0223.txt ${PYSITELIB}/pylint/test/messages/func_w0231.txt a622 1 ${PYSITELIB}/pylint/test/messages/func_w0331_py_30.txt d625 1 a626 2 ${PYSITELIB}/pylint/test/messages/func_w0403_py29.txt ${PYSITELIB}/pylint/test/messages/func_w0403_py30.txt a637 1 ${PYSITELIB}/pylint/test/messages/func_w0701_py_30.txt a641 1 ${PYSITELIB}/pylint/test/messages/func_w0711.txt d644 1 a645 1 ${PYSITELIB}/pylint/test/messages/func_yield_outside_func.txt d662 2 d665 1 a665 3 ${PYSITELIB}/pylint/test/regrtest_data/pygtk_enum_crash.py ${PYSITELIB}/pylint/test/regrtest_data/pygtk_import.py ${PYSITELIB}/pylint/test/regrtest_data/socketerror_import.py a667 3 ${PYSITELIB}/pylint/test/smoketest.py ${PYSITELIB}/pylint/test/test_base.py ${PYSITELIB}/pylint/test/test_format.py d669 1 a670 1 ${PYSITELIB}/pylint/test/test_misc.py d672 12 a683 2 ${PYSITELIB}/pylint/test/test_similar.py ${PYSITELIB}/pylint/test/test_utils.py d688 1 d690 1 a691 2 ${PYSITELIB}/pylint/testutils.pyc ${PYSITELIB}/pylint/testutils.pyo @