From 60e4294e329d3fda630b248f492ea8aa2a530890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 31 Mar 2022 10:27:05 +0200 Subject: [PATCH] Deprecate ``find_pylintrc`` --- pylint/config/environment_variable.py | 6 +++++- pylint/config/find_default_config_files.py | 9 +++++++++ tests/lint/unittest_lint.py | 21 ++++++++++++++------- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/pylint/config/environment_variable.py b/pylint/config/environment_variable.py index 0dc88c7414..291b1651c6 100644 --- a/pylint/config/environment_variable.py +++ b/pylint/config/environment_variable.py @@ -2,6 +2,10 @@ # For details: https://github.com/PyCQA/pylint/blob/main/LICENSE # Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +import warnings + from pylint.config.find_default_config_files import find_pylintrc -PYLINTRC = find_pylintrc() +with warnings.catch_warnings(): + warnings.simplefilter("ignore") + PYLINTRC = find_pylintrc() diff --git a/pylint/config/find_default_config_files.py b/pylint/config/find_default_config_files.py index 7538f5b15e..d448dc0c44 100644 --- a/pylint/config/find_default_config_files.py +++ b/pylint/config/find_default_config_files.py @@ -5,6 +5,7 @@ import configparser import os import sys +import warnings from typing import Iterator, Optional if sys.version_info >= (3, 11): @@ -76,6 +77,14 @@ def find_default_config_files() -> Iterator[str]: def find_pylintrc() -> Optional[str]: """Search the pylint rc file and return its path if it finds it, else return None.""" + # pylint: disable-next=fixme + # TODO: Remove this function in 3.0 + warnings.warn( + "find_pylintrc and the PYLINTRC constant have been deprecated. " + "Use find_default_config_files if you want access to pylint's configuration file " + "finding logic.", + DeprecationWarning, + ) for config_file in find_default_config_files(): if config_file.endswith("pylintrc"): return config_file diff --git a/tests/lint/unittest_lint.py b/tests/lint/unittest_lint.py index 91df7dc1f6..90faa1c2fa 100644 --- a/tests/lint/unittest_lint.py +++ b/tests/lint/unittest_lint.py @@ -681,11 +681,14 @@ def test_pylintrc() -> None: current_dir = getcwd() chdir(os.path.dirname(os.path.abspath(sys.executable))) try: - assert config.find_pylintrc() is None + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() is None os.environ["PYLINTRC"] = join(tempfile.gettempdir(), ".pylintrc") - assert config.find_pylintrc() is None + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() is None os.environ["PYLINTRC"] = "." - assert config.find_pylintrc() is None + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() is None finally: chdir(current_dir) reload(config) @@ -706,7 +709,8 @@ def test_pylintrc_parentdir() -> None: ] ) with fake_home(): - assert config.find_pylintrc() is None + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() is None results = { "a": join(chroot, "a", "pylintrc"), "a/b": join(chroot, "a", "b", "pylintrc"), @@ -716,7 +720,8 @@ def test_pylintrc_parentdir() -> None: } for basedir, expected in results.items(): os.chdir(join(chroot, basedir)) - assert config.find_pylintrc() == expected + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() == expected @pytest.mark.usefixtures("pop_pylintrc") @@ -724,7 +729,8 @@ def test_pylintrc_parentdir_no_package() -> None: with tempdir() as chroot: with fake_home(): create_files(["a/pylintrc", "a/b/pylintrc", "a/b/c/d/__init__.py"]) - assert config.find_pylintrc() is None + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() is None results = { "a": join(chroot, "a", "pylintrc"), "a/b": join(chroot, "a", "b", "pylintrc"), @@ -733,7 +739,8 @@ def test_pylintrc_parentdir_no_package() -> None: } for basedir, expected in results.items(): os.chdir(join(chroot, basedir)) - assert config.find_pylintrc() == expected + with pytest.warns(DeprecationWarning): + assert config.find_pylintrc() == expected class TestPreprocessOptions: