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 treat this as if the file wasn't there.

fixes #181
  • Loading branch information
defnull committed Oct 30, 2024
1 parent 8764067 commit 5478382
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 5478382

Please sign in to comment.