File tree 1 file changed +13
-1
lines changed
importlib_resources/future 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change
1
+ import contextlib
1
2
import pathlib
2
3
from contextlib import suppress
3
4
from types import SimpleNamespace
@@ -15,7 +16,18 @@ class TraversableResourcesLoader(_adapters.TraversableResourcesLoader):
15
16
"""
16
17
17
18
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
19
31
20
32
def _standard_reader (self ):
21
33
return self ._zip_reader () or self ._namespace_reader () or self ._file_reader ()
You can’t perform that action at this time.
0 commit comments