Skip to content

Commit 0f44e36

Browse files
authored
Merge pull request #302 from python/bugfix/298-fallback-precedence
Restore precedence of standard readers over degenerate readers
2 parents 705a435 + 0f8aa5f commit 0f44e36

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

importlib_resources/future/adapters.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,16 @@ def wrapper(*args, **kwargs):
4040
return wrapper
4141

4242

43+
def _skip_degenerate(reader):
44+
"""
45+
Mask any degenerate reader. Ref #298.
46+
"""
47+
is_degenerate = (
48+
isinstance(reader, _adapters.CompatibilityFiles) and not reader._reader
49+
)
50+
return reader if not is_degenerate else None
51+
52+
4353
class TraversableResourcesLoader(_adapters.TraversableResourcesLoader):
4454
"""
4555
Adapt loaders to provide TraversableResources and other
@@ -51,8 +61,9 @@ class TraversableResourcesLoader(_adapters.TraversableResourcesLoader):
5161

5262
def get_resource_reader(self, name):
5363
return (
54-
_block_standard(super().get_resource_reader)(name)
64+
_skip_degenerate(_block_standard(super().get_resource_reader)(name))
5565
or self._standard_reader()
66+
or super().get_resource_reader(name)
5667
)
5768

5869
def _standard_reader(self):

newsfragments/298.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Restored expectation that local standard readers are preferred over degenerate readers.

0 commit comments

Comments
 (0)