Skip to content

Commit

Permalink
bpo-46124: Update zoneinfo to rely on importlib.resources traversable…
Browse files Browse the repository at this point in the history
… API. (GH-30190)

Automerge-Triggered-By: GH:jaraco
  • Loading branch information
jaraco committed Jan 21, 2022
1 parent f1e559b commit 00b2b57
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Lib/zoneinfo/_common.py
Expand Up @@ -2,14 +2,14 @@


def load_tzdata(key):
import importlib.resources
from importlib import resources

components = key.split("/")
package_name = ".".join(["tzdata.zoneinfo"] + components[:-1])
resource_name = components[-1]

try:
return importlib.resources.open_binary(package_name, resource_name)
return resources.files(package_name).joinpath(resource_name).open("rb")
except (ImportError, FileNotFoundError, UnicodeEncodeError):
# There are three types of exception that can be raised that all amount
# to "we cannot find this key":
Expand Down
2 changes: 1 addition & 1 deletion Lib/zoneinfo/_tzpath.py
Expand Up @@ -118,7 +118,7 @@ def available_timezones():
# Start with loading from the tzdata package if it exists: this has a
# pre-assembled list of zones that only requires opening one file.
try:
with resources.open_text("tzdata", "zones") as f:
with resources.files("tzdata").joinpath("zones").open("r") as f:
for zone in f:
zone = zone.strip()
if zone:
Expand Down
@@ -0,0 +1 @@
Update :mod:`zoneinfo` to rely on importlib.resources traversable API.

0 comments on commit 00b2b57

Please sign in to comment.