Skip to content

Commit

Permalink
bpo-43720: Update import-related stdlib deprecation messages to say t…
Browse files Browse the repository at this point in the history
…hey will be removed in Python 3.12 (GH-25167)
  • Loading branch information
brettcannon committed Apr 3, 2021
1 parent c5354c0 commit dc6d3e1
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 7 deletions.
3 changes: 2 additions & 1 deletion Lib/imp.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
import types
import warnings

warnings.warn("the imp module is deprecated in favour of importlib; "
warnings.warn("the imp module is deprecated in favour of importlib and slated "
"for removal in Python 3.12; "
"see the module's documentation for alternative uses",
DeprecationWarning, stacklevel=2)

Expand Down
9 changes: 6 additions & 3 deletions Lib/importlib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,8 @@ def set_package(fxn):
"""
@functools.wraps(fxn)
def set_package_wrapper(*args, **kwargs):
warnings.warn('The import system now takes care of this automatically.',
warnings.warn('The import system now takes care of this automatically; '
'this decorator is slated for removal in Python 3.12',
DeprecationWarning, stacklevel=2)
module = fxn(*args, **kwargs)
if getattr(module, '__package__', None) is None:
Expand All @@ -168,7 +169,8 @@ def set_loader(fxn):
"""
@functools.wraps(fxn)
def set_loader_wrapper(self, *args, **kwargs):
warnings.warn('The import system now takes care of this automatically.',
warnings.warn('The import system now takes care of this automatically; '
'this decorator is slated for removal in Python 3.12',
DeprecationWarning, stacklevel=2)
module = fxn(self, *args, **kwargs)
if getattr(module, '__loader__', None) is None:
Expand All @@ -195,7 +197,8 @@ def module_for_loader(fxn):
the second argument.
"""
warnings.warn('The import system now takes care of this automatically.',
warnings.warn('The import system now takes care of this automatically; '
'this decorator is slated for removal in Python 3.12',
DeprecationWarning, stacklevel=2)
@functools.wraps(fxn)
def module_for_loader_wrapper(self, fullname, *args, **kwargs):
Expand Down
6 changes: 4 additions & 2 deletions Lib/pkgutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,8 @@ class ImpImporter:

def __init__(self, path=None):
global imp
warnings.warn("This emulation is deprecated, use 'importlib' instead",
warnings.warn("This emulation is deprecated and slated for removal "
"in Python 3.12; use 'importlib' instead",
DeprecationWarning)
_import_imp()
self.path = path
Expand Down Expand Up @@ -271,7 +272,8 @@ class ImpLoader:
code = source = None

def __init__(self, fullname, file, filename, etc):
warnings.warn("This emulation is deprecated, use 'importlib' instead",
warnings.warn("This emulation is deprecated and slated for removal in "
"Python 3.12; use 'importlib' instead",
DeprecationWarning)
_import_imp()
self.file = file
Expand Down
3 changes: 2 additions & 1 deletion Lib/test/test_pkgutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,8 @@ class ImportlibMigrationTests(unittest.TestCase):

def check_deprecated(self):
return check_warnings(
("This emulation is deprecated, use 'importlib' instead",
("This emulation is deprecated and slated for removal in "
"Python 3.12; use 'importlib' instead",
DeprecationWarning))

def test_importer_deprecated(self):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Document various stdlib deprecations in imp, pkgutil, and importlib.util for removal in Python
3.12.

0 comments on commit dc6d3e1

Please sign in to comment.