Skip to content

Commit

Permalink
Handle PermissionError in fallback code for old import name
Browse files Browse the repository at this point in the history
Path.is_file() throws PermissionError if the current user is not allowed to list one of the parent directories. An import would also fail, so threat this as if the file wasn't there.

fixes #181
  • Loading branch information
defnull authored Oct 30, 2024
1 parent 8764067 commit a054300
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions multipart/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,17 @@

for p in sys.path:
file_path = Path(p, "multipart.py")
if file_path.is_file():
spec = importlib.util.spec_from_file_location("multipart", file_path)
assert spec is not None, f"{file_path} found but not loadable!"
module = importlib.util.module_from_spec(spec)
sys.modules["multipart"] = module
assert spec.loader is not None, f"{file_path} must be loadable!"
spec.loader.exec_module(module)
break
try:
if file_path.is_file():
spec = importlib.util.spec_from_file_location("multipart", file_path)
assert spec is not None, f"{file_path} found but not loadable!"
module = importlib.util.module_from_spec(spec)
sys.modules["multipart"] = module
assert spec.loader is not None, f"{file_path} must be loadable!"
spec.loader.exec_module(module)
break
except PermissionError:
pass
else:
warnings.warn("Please use `import python_multipart` instead.", PendingDeprecationWarning, stacklevel=2)
from python_multipart import *
Expand Down

0 comments on commit a054300

Please sign in to comment.