Skip to content

Commit fba97c1

Browse files
committed
Revert changes in Readers for b85f74a. Upstream needs this interface.
1 parent 2e56828 commit fba97c1

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

importlib_resources/_compat.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,34 +71,40 @@ def __init__(self, **kwargs):
7171
class TraversableResourcesAdapter:
7272
def __init__(self, spec):
7373
self.spec = spec
74-
self.loader = LoaderAdapter(self.spec)
74+
self.loader = LoaderAdapter(spec)
7575

7676
def __getattr__(self, name):
7777
return getattr(self.spec, name)
7878

7979

8080
class LoaderAdapter:
8181
"""
82-
Adapt loaders on Python < 3.9 to provide TraversableResources
83-
readers.
82+
Adapt loaders to provide TraversableResources and other
83+
compatibility.
8484
"""
8585
def __init__(self, spec):
8686
self.spec = spec
8787

88+
@property
89+
def path(self):
90+
# Python < 3
91+
return self.spec.origin
92+
8893
def get_resource_reader(self, name):
94+
# Python < 3.9
8995
from . import readers
9096
try:
9197
reader = self.spec.loader.get_resource_reader(name)
9298
reader.files
9399
except AttributeError:
94-
reader = _zip_reader(self.spec) or readers.FileReader(self.spec)
100+
reader = _zip_reader(self.spec) or readers.FileReader(self)
95101
return reader
96102

97103

98104
def _zip_reader(spec):
99105
from . import readers
100106
with suppress(AttributeError):
101-
return readers.ZipReader(spec)
107+
return readers.ZipReader(spec.loader, spec.name)
102108

103109

104110
def package_spec(package):

importlib_resources/readers.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44

55

66
class FileReader(abc.TraversableResources):
7-
def __init__(self, spec):
8-
self.path = Path(spec.origin).parent
7+
def __init__(self, loader):
8+
self.path = Path(loader.path).parent
99

1010
def files(self):
1111
return self.path
1212

1313

1414
class ZipReader(FileReader):
15-
def __init__(self, spec):
16-
_, _, name = spec.name.rpartition('.')
17-
prefix = spec.loader.prefix.replace('\\', '/') + name + '/'
18-
self.path = ZipPath(spec.loader.archive, prefix)
15+
def __init__(self, loader, module):
16+
_, _, name = module.rpartition('.')
17+
prefix = loader.prefix.replace('\\', '/') + name + '/'
18+
self.path = ZipPath(loader.archive, prefix)
1919

2020
def open_resource(self, resource):
2121
try:

0 commit comments

Comments
 (0)