File tree Expand file tree Collapse file tree 1 file changed +21
-12
lines changed Expand file tree Collapse file tree 1 file changed +21
-12
lines changed Original file line number Diff line number Diff line change @@ -93,18 +93,27 @@ def path(self):
9393 def get_resource_reader (self , name ):
9494 # Python < 3.9
9595 from . import readers
96- try :
97- reader = self .spec .loader .get_resource_reader (name )
98- reader .files
99- except AttributeError :
100- reader = _zip_reader (self .spec ) or readers .FileReader (self )
101- return reader
102-
103-
104- def _zip_reader (spec ):
105- from . import readers
106- with suppress (AttributeError ):
107- return readers .ZipReader (spec .loader , spec .name )
96+
97+ def _zip_reader (spec ):
98+ with suppress (AttributeError ):
99+ return readers .ZipReader (spec .loader , spec .name )
100+
101+ def _available_reader (spec ):
102+ with suppress (AttributeError ):
103+ return spec .loader .get_resource_reader (spec .name )
104+
105+ def _native_reader (spec ):
106+ reader = _available_reader (spec )
107+ return reader if hasattr (reader , 'files' ) else None
108+
109+ return (
110+ # native reader if it supplies 'files'
111+ _native_reader (self .spec ) or
112+ # local ZipReader if a zip module
113+ _zip_reader (self .spec ) or
114+ # local FileReader
115+ readers .FileReader (self )
116+ )
108117
109118
110119def package_spec (package ):
You can’t perform that action at this time.
0 commit comments