[plugins] Handle PermissionError (#9229)

Authored by: syntaxsurge, pukkandan
This commit is contained in:
Jade Laurence Empleo 2024-02-20 17:07:37 +08:00 committed by GitHub
parent 104a7b5a46
commit 9a8afadd17
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -86,11 +86,14 @@ class PluginFinder(importlib.abc.MetaPathFinder):
parts = Path(*fullname.split('.')) parts = Path(*fullname.split('.'))
for path in orderedSet(candidate_locations, lazy=True): for path in orderedSet(candidate_locations, lazy=True):
candidate = path / parts candidate = path / parts
try:
if candidate.is_dir(): if candidate.is_dir():
yield candidate yield candidate
elif path.suffix in ('.zip', '.egg', '.whl') and path.is_file(): elif path.suffix in ('.zip', '.egg', '.whl') and path.is_file():
if parts in dirs_in_zip(path): if parts in dirs_in_zip(path):
yield candidate yield candidate
except PermissionError as e:
write_string(f'Permission error while accessing modules in "{e.filename}"\n')
def find_spec(self, fullname, path=None, target=None): def find_spec(self, fullname, path=None, target=None):
if fullname not in self.packages: if fullname not in self.packages: