File tree Expand file tree Collapse file tree
importlib_resources/future Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import contextlib
12import pathlib
23from contextlib import suppress
34from types import SimpleNamespace
@@ -15,7 +16,18 @@ class TraversableResourcesLoader(_adapters.TraversableResourcesLoader):
1516 """
1617
1718 def get_resource_reader (self , name ):
18- return self ._standard_reader () or super ().get_resource_reader (name )
19+ with contextlib .suppress (Exception ):
20+ return self ._block_standard (super ().get_resource_reader (name ))
21+ return self ._standard_reader ()
22+
23+ def _block_standard (self , reader ):
24+ """
25+ If the reader is from the standard library, raise an exception to
26+ allow likely newer implementations in this library to take precedence.
27+ """
28+ if reader .__class__ .__module__ .startswith ('importlib.resources.' ):
29+ raise RuntimeError ("Reader blocked to be superseded." )
30+ return reader
1931
2032 def _standard_reader (self ):
2133 return self ._zip_reader () or self ._namespace_reader () or self ._file_reader ()
You can’t perform that action at this time.
0 commit comments