mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
[3.9] bpo-40924: Remove protocol for supplying Traversable objects from loaders (GH-20820)
Remove protocol that loaders can present a files method as found in importlib_resources 1.3-1.6 (added in Python 3.8b1).
This commit is contained in:
parent
83cd968f5c
commit
8a3469047c
3 changed files with 2 additions and 14 deletions
|
@ -813,9 +813,6 @@ ABC hierarchy::
|
||||||
methods. Therefore, any loader supplying TraversableReader
|
methods. Therefore, any loader supplying TraversableReader
|
||||||
also supplies ResourceReader.
|
also supplies ResourceReader.
|
||||||
|
|
||||||
Loaders that wish to support resource reading are expected to
|
|
||||||
implement this interface.
|
|
||||||
|
|
||||||
.. versionadded:: 3.9
|
.. versionadded:: 3.9
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,17 +11,7 @@ def from_package(package):
|
||||||
Return a Traversable object for the given package.
|
Return a Traversable object for the given package.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
spec = package.__spec__
|
return fallback_resources(package.__spec__)
|
||||||
return from_traversable_resources(spec) or fallback_resources(spec)
|
|
||||||
|
|
||||||
|
|
||||||
def from_traversable_resources(spec):
|
|
||||||
"""
|
|
||||||
If the spec.loader implements TraversableResources,
|
|
||||||
directly or implicitly, it will have a ``files()`` method.
|
|
||||||
"""
|
|
||||||
with contextlib.suppress(AttributeError):
|
|
||||||
return spec.loader.files()
|
|
||||||
|
|
||||||
|
|
||||||
def fallback_resources(spec):
|
def fallback_resources(spec):
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Removed support for loaders implementing .files and supplying TraversableResources.
|
Loading…
Add table
Add a link
Reference in a new issue