Skip to content

Commit

Permalink
Merge pull request #302 from python/bugfix/298-fallback-precedence
Browse files Browse the repository at this point in the history
Restore precedence of standard readers over degenerate readers
  • Loading branch information
jaraco committed Mar 19, 2024
2 parents 705a435 + 0f8aa5f commit 0f44e36
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
13 changes: 12 additions & 1 deletion importlib_resources/future/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ def wrapper(*args, **kwargs):
return wrapper


def _skip_degenerate(reader):
"""
Mask any degenerate reader. Ref #298.
"""
is_degenerate = (
isinstance(reader, _adapters.CompatibilityFiles) and not reader._reader
)
return reader if not is_degenerate else None


class TraversableResourcesLoader(_adapters.TraversableResourcesLoader):
"""
Adapt loaders to provide TraversableResources and other
Expand All @@ -51,8 +61,9 @@ class TraversableResourcesLoader(_adapters.TraversableResourcesLoader):

def get_resource_reader(self, name):
return (
_block_standard(super().get_resource_reader)(name)
_skip_degenerate(_block_standard(super().get_resource_reader)(name))
or self._standard_reader()
or super().get_resource_reader(name)
)

def _standard_reader(self):
Expand Down
1 change: 1 addition & 0 deletions newsfragments/298.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Restored expectation that local standard readers are preferred over degenerate readers.

0 comments on commit 0f44e36

Please sign in to comment.