Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions Lib/zoneinfo/_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@ def load_tzdata(key):
resource_name = components[-1]

try:
return resources.files(package_name).joinpath(resource_name).open("rb")
path = resources.files(package_name).joinpath(resource_name)
# gh-85702: Prevent PermissionError on Windows
if path.is_dir():
raise IsADirectoryError
return path.open("rb")
except (ImportError, FileNotFoundError, UnicodeEncodeError, IsADirectoryError):
# There are three types of exception that can be raised that all amount
# There are four types of exception that can be raised that all amount
# to "we cannot find this key":
#
# ImportError: If package_name doesn't exist (e.g. if tzdata is not
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
If ``zoneinfo._common.load_tzdata`` is given a package without a resource a
``ZoneInfoNotFoundError`` is raised rather than a :exc:`PermissionError`.
Patch by Victor Stinner.
Loading