From acf7705968da21b0396a6532cd8e8b0f1f8cc806 Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Sat, 1 Feb 2025 23:57:34 -0500 Subject: [PATCH] Also undeprecate optparse (#10215) --- doc/whatsnew/fragments/10211.false_positive | 2 +- pylint/checkers/imports.py | 1 - tests/functional/d/deprecated/deprecated_module_py3.py | 4 ++-- tests/functional/d/deprecated/deprecated_module_py3.txt | 2 +- tests/functional/d/deprecated/deprecated_module_py36.py | 2 +- tests/functional/d/deprecated/deprecated_module_py36.txt | 2 +- .../deprecated_relative_import/dot_relative_import.py | 4 ++-- .../deprecated_relative_import/dot_relative_import.txt | 2 +- .../subpackage/dot_dot_relative_import.py | 6 +++--- .../subpackage/dot_dot_relative_import.txt | 2 +- tests/functional/n/no/no_member_imports.py | 1 - tests/functional/n/no/no_member_imports.txt | 6 +++--- 12 files changed, 16 insertions(+), 18 deletions(-) diff --git a/doc/whatsnew/fragments/10211.false_positive b/doc/whatsnew/fragments/10211.false_positive index e8d3f0a801..a2ef6a9a1e 100644 --- a/doc/whatsnew/fragments/10211.false_positive +++ b/doc/whatsnew/fragments/10211.false_positive @@ -1,3 +1,3 @@ -Remove `getopt` from the list of deprecated modules. +Remove `getopt` and `optparse` from the list of deprecated modules. Closes #10211 diff --git a/pylint/checkers/imports.py b/pylint/checkers/imports.py index 762c1d5cd3..fa63ea9dfb 100644 --- a/pylint/checkers/imports.py +++ b/pylint/checkers/imports.py @@ -47,7 +47,6 @@ DEPRECATED_MODULES = { (0, 0, 0): {"tkinter.tix", "fpectl"}, - (3, 2, 0): {"optparse"}, (3, 3, 0): {"xml.etree.cElementTree"}, (3, 4, 0): {"imp"}, (3, 5, 0): {"formatter"}, diff --git a/tests/functional/d/deprecated/deprecated_module_py3.py b/tests/functional/d/deprecated/deprecated_module_py3.py index 308d400e77..02f064b89e 100644 --- a/tests/functional/d/deprecated/deprecated_module_py3.py +++ b/tests/functional/d/deprecated/deprecated_module_py3.py @@ -1,4 +1,4 @@ """Test deprecated modules.""" -# pylint: disable=unused-import +# pylint: disable=unused-import, import-error -import optparse # [deprecated-module] +import formatter # [deprecated-module] diff --git a/tests/functional/d/deprecated/deprecated_module_py3.txt b/tests/functional/d/deprecated/deprecated_module_py3.txt index 3ddb3bc10d..3217775591 100644 --- a/tests/functional/d/deprecated/deprecated_module_py3.txt +++ b/tests/functional/d/deprecated/deprecated_module_py3.txt @@ -1 +1 @@ -deprecated-module:4:0:4:15::Deprecated module 'optparse':UNDEFINED +deprecated-module:4:0:4:16::Deprecated module 'formatter':UNDEFINED diff --git a/tests/functional/d/deprecated/deprecated_module_py36.py b/tests/functional/d/deprecated/deprecated_module_py36.py index c49f9f0bcb..9200e8d320 100644 --- a/tests/functional/d/deprecated/deprecated_module_py36.py +++ b/tests/functional/d/deprecated/deprecated_module_py36.py @@ -1,4 +1,4 @@ """Test deprecated modules from Python 3.6.""" # pylint: disable=unused-import,import-error -import optparse # [deprecated-module] +import formatter # [deprecated-module] diff --git a/tests/functional/d/deprecated/deprecated_module_py36.txt b/tests/functional/d/deprecated/deprecated_module_py36.txt index 3ddb3bc10d..3217775591 100644 --- a/tests/functional/d/deprecated/deprecated_module_py36.txt +++ b/tests/functional/d/deprecated/deprecated_module_py36.txt @@ -1 +1 @@ -deprecated-module:4:0:4:15::Deprecated module 'optparse':UNDEFINED +deprecated-module:4:0:4:16::Deprecated module 'formatter':UNDEFINED diff --git a/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.py b/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.py index db07f976be..a82ecf03bf 100644 --- a/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.py +++ b/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.py @@ -1,7 +1,7 @@ # pylint: disable=import-error, missing-module-docstring, unused-import # from import of stdlib optparse which should yield deprecated-module error -from optparse import OptionParser # [deprecated-module] +from formatter import NullFormatter # [deprecated-module] # from import of module internal optparse module inside this package. # This should not yield deprecated-module error -from .optparse import Bar +from .formatter import Bar diff --git a/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.txt b/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.txt index 51b0e98b18..662678413e 100644 --- a/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.txt +++ b/tests/functional/d/deprecated/deprecated_relative_import/dot_relative_import.txt @@ -1 +1 @@ -deprecated-module:4:0:4:33::Deprecated module 'optparse':UNDEFINED +deprecated-module:4:0:4:35::Deprecated module 'formatter':UNDEFINED diff --git a/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.py b/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.py index 359a4c46d9..a82ecf03bf 100644 --- a/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.py +++ b/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.py @@ -1,7 +1,7 @@ -# pylint: disable=import-error, unused-import, missing-module-docstring +# pylint: disable=import-error, missing-module-docstring, unused-import # from import of stdlib optparse which should yield deprecated-module error -from optparse import OptionParser # [deprecated-module] +from formatter import NullFormatter # [deprecated-module] # from import of module internal optparse module inside this package. # This should not yield deprecated-module error -from ..optparse import Bar +from .formatter import Bar diff --git a/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.txt b/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.txt index 51b0e98b18..662678413e 100644 --- a/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.txt +++ b/tests/functional/d/deprecated/deprecated_relative_import/subpackage/dot_dot_relative_import.txt @@ -1 +1 @@ -deprecated-module:4:0:4:33::Deprecated module 'optparse':UNDEFINED +deprecated-module:4:0:4:35::Deprecated module 'formatter':UNDEFINED diff --git a/tests/functional/n/no/no_member_imports.py b/tests/functional/n/no/no_member_imports.py index 225a215f2f..88d43e61b6 100644 --- a/tests/functional/n/no/no_member_imports.py +++ b/tests/functional/n/no/no_member_imports.py @@ -1,6 +1,5 @@ """Tests for no-member on imported modules""" # pylint: disable=import-outside-toplevel, pointless-statement, missing-function-docstring -# pylint: disable=deprecated-module def test_no_member_in_getattr(): diff --git a/tests/functional/n/no/no_member_imports.txt b/tests/functional/n/no/no_member_imports.txt index 477558597c..c1909d7429 100644 --- a/tests/functional/n/no/no_member_imports.txt +++ b/tests/functional/n/no/no_member_imports.txt @@ -1,3 +1,3 @@ -no-member:10:4:10:28:test_no_member_in_getattr:Module 'math' has no 'THIS_does_not_EXIST' member:INFERENCE -no-member:25:4:25:33:test_ignored_modules_invalid_pattern:Module 'xml.etree' has no 'THIS_does_not_EXIST' member:INFERENCE -no-member:44:4:44:27:test_ignored_classes_no_recursive_pattern:Module 'sys' has no 'THIS_does_not_EXIST' member:INFERENCE +no-member:9:4:9:28:test_no_member_in_getattr:Module 'math' has no 'THIS_does_not_EXIST' member:INFERENCE +no-member:24:4:24:33:test_ignored_modules_invalid_pattern:Module 'xml.etree' has no 'THIS_does_not_EXIST' member:INFERENCE +no-member:43:4:43:27:test_ignored_classes_no_recursive_pattern:Module 'sys' has no 'THIS_does_not_EXIST' member:INFERENCE