diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2020-06-07 21:00:51 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-07 21:00:51 -0400 |
| commit | 843c27765652e2322011fb3e5d88f4837de38c06 (patch) | |
| tree | 84c801b6d0c7026c4623389daf390faa310182c5 /Lib/importlib/_bootstrap_external.py | |
| parent | 972ab0327675e695373fc6272d5ac24e187579ad (diff) | |
| download | cpython-git-843c27765652e2322011fb3e5d88f4837de38c06.tar.gz | |
bpo-39791 native hooks for importlib.resources.files (GH-20576)
* Provide native .files support on SourceFileLoader.
* Add native importlib.resources.files() support to zipimporter. Remove fallback support.
* make regen-all
* 📜🤖 Added by blurb_it.
* Move 'files' into the ResourceReader so it can carry the relevant module name context.
* Create 'importlib.readers' module and add FileReader to it.
* Add zip reader and rely on it for a TraversableResources object on zipimporter.
* Remove TraversableAdapter, no longer needed.
* Update blurb.
* Replace backslashes with forward slashes.
* Incorporate changes from importlib_metadata 2.0, finalizing the interface for extension via get_resource_reader.
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Diffstat (limited to 'Lib/importlib/_bootstrap_external.py')
| -rw-r--r-- | Lib/importlib/_bootstrap_external.py | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index 25a3f8c0e0..4f06039f3d 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -982,32 +982,10 @@ class FileLoader: with _io.FileIO(path, 'r') as file: return file.read() - # ResourceReader ABC API. - @_check_name def get_resource_reader(self, module): - if self.is_package(module): - return self - return None - - def open_resource(self, resource): - path = _path_join(_path_split(self.path)[0], resource) - return _io.FileIO(path, 'r') - - def resource_path(self, resource): - if not self.is_resource(resource): - raise FileNotFoundError - path = _path_join(_path_split(self.path)[0], resource) - return path - - def is_resource(self, name): - if path_sep in name: - return False - path = _path_join(_path_split(self.path)[0], name) - return _path_isfile(path) - - def contents(self): - return iter(_os.listdir(_path_split(self.path)[0])) + from importlib.readers import FileReader + return FileReader(self) class SourceFileLoader(FileLoader, SourceLoader): |
