mirror of
https://github.com/python/cpython.git
synced 2025-10-19 16:03:42 +00:00
gh-138044: Remove deprecated parameter alias for importlib.resources.files
(#138059)
This commit is contained in:
parent
db53ca30d7
commit
8d17d79299
4 changed files with 8 additions and 49 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Remove compatibility shim for deprecated parameter *package* in
|
||||
:func:`importlib.resources.files`. Patch by Semyon Moroz.
|
Loading…
Add table
Add a link
Reference in a new issue