https://github.com/python/cpython/commit/8d17d79299ba3aad9f8fd2aded5ee776dc71668d
commit: 8d17d79299ba3aad9f8fd2aded5ee776dc71668d
branch: main
author: Semyon Moroz <[email protected]>
committer: FFY00 <[email protected]>
date: 2025-10-04T14:53:43+01:00
summary:
gh-138044: Remove deprecated parameter alias for `importlib.resources.files`
(#138059)
files:
A Misc/NEWS.d/next/Library/2025-08-22-12-48-14.gh-issue-138044.lEQULC.rst
M Doc/library/importlib.resources.rst
M Lib/importlib/resources/_common.py
M Lib/test/test_importlib/resources/test_files.py
diff --git a/Doc/library/importlib.resources.rst
b/Doc/library/importlib.resources.rst
index 7a11f4fe069004..8cb43f0625fc79 100644
--- a/Doc/library/importlib.resources.rst
+++ b/Doc/library/importlib.resources.rst
@@ -72,13 +72,12 @@ for example, a package and its resources can be imported
from a zip file using
.. versionadded:: 3.9
- .. versionchanged:: 3.12
- *package* parameter was renamed to *anchor*. *anchor* can now
- be a non-package module and if omitted will default to the caller's
- module. *package* is still accepted for compatibility but will raise
- a :exc:`DeprecationWarning`. Consider passing the anchor positionally or
- using ``importlib_resources >= 5.10`` for a compatible interface
- on older Pythons.
+ .. deprecated-removed:: 3.12 3.15
+ *package* parameter was renamed to *anchor*. *anchor* can now be a
+ non-package module and if omitted will default to the caller's module.
+ *package* is no longer accepted since Python 3.15. Consider passing the
+ anchor positionally or using ``importlib_resources >= 5.10`` for a
+ compatible interface on older Pythons.
.. function:: as_file(traversable)
diff --git a/Lib/importlib/resources/_common.py
b/Lib/importlib/resources/_common.py
index 4e9014c45a056e..d16ebe4520fbbf 100644
--- a/Lib/importlib/resources/_common.py
+++ b/Lib/importlib/resources/_common.py
@@ -6,7 +6,6 @@
import types
import importlib
import inspect
-import warnings
import itertools
from typing import Union, Optional, cast
@@ -16,39 +15,6 @@
Anchor = Package
-def package_to_anchor(func):
- """
- Replace 'package' parameter as 'anchor' and warn about the change.
-
- Other errors should fall through.
-
- >>> files('a', 'b')
- Traceback (most recent call last):
- TypeError: files() takes from 0 to 1 positional arguments but 2 were given
-
- Remove this compatibility in Python 3.14.
- """
- undefined = object()
-
- @functools.wraps(func)
- def wrapper(anchor=undefined, package=undefined):
- if package is not undefined:
- if anchor is not undefined:
- return func(anchor, package)
- warnings.warn(
- "First parameter to files is renamed to 'anchor'",
- DeprecationWarning,
- stacklevel=2,
- )
- return func(package)
- elif anchor is undefined:
- return func()
- return func(anchor)
-
- return wrapper
-
-
-@package_to_anchor
def files(anchor: Optional[Anchor] = None) -> Traversable:
"""
Get a Traversable resource for an anchor.
diff --git a/Lib/test/test_importlib/resources/test_files.py
b/Lib/test/test_importlib/resources/test_files.py
index 3ce44999f98ee5..c935b1e10ac87c 100644
--- a/Lib/test/test_importlib/resources/test_files.py
+++ b/Lib/test/test_importlib/resources/test_files.py
@@ -38,14 +38,6 @@ def test_joinpath_with_multiple_args(self):
binfile = files.joinpath('subdirectory', 'binary.file')
self.assertTrue(binfile.is_file())
- def test_old_parameter(self):
- """
- Files used to take a 'package' parameter. Make sure anyone
- passing by name is still supported.
- """
- with suppress_known_deprecation():
- resources.files(package=self.data)
-
class OpenDiskTests(FilesTests, util.DiskSetup, unittest.TestCase):
pass
diff --git
a/Misc/NEWS.d/next/Library/2025-08-22-12-48-14.gh-issue-138044.lEQULC.rst
b/Misc/NEWS.d/next/Library/2025-08-22-12-48-14.gh-issue-138044.lEQULC.rst
new file mode 100644
index 00000000000000..99ed3adef91a69
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-08-22-12-48-14.gh-issue-138044.lEQULC.rst
@@ -0,0 +1,2 @@
+Remove compatibility shim for deprecated parameter *package* in
+:func:`importlib.resources.files`. Patch by Semyon Moroz.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]