diff options
Diffstat (limited to 'Lib/importlib/readers.py')
-rw-r--r-- | Lib/importlib/readers.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Lib/importlib/readers.py b/Lib/importlib/readers.py index fb49ebe..6331e4d 100644 --- a/Lib/importlib/readers.py +++ b/Lib/importlib/readers.py @@ -7,11 +7,19 @@ class FileReader(abc.TraversableResources): def __init__(self, loader): self.path = pathlib.Path(loader.path).parent + def resource_path(self, resource): + """ + Return the file system path to prevent + `resources.path()` from creating a temporary + copy. + """ + return str(self.path.joinpath(resource)) + def files(self): return self.path -class ZipReader(FileReader): +class ZipReader(abc.TraversableResources): def __init__(self, loader, module): _, _, name = module.rpartition('.') prefix = loader.prefix.replace('\\', '/') + name + '/' @@ -28,3 +36,6 @@ class ZipReader(FileReader): # for non-existent paths. target = self.files().joinpath(path) return target.is_file() and target.exists() + + def files(self): + return self.path |