STINNER Victor <vstin...@python.org> added the comment:

Oh right, 'Pacific' is a directory, not a valid zone, and so 
ZoneInfoNotFoundError should be raised. I see.

Example:

$ ./python -m venv env
$ env/bin/python -m pip install tzdata
$ env/bin/python 

# ZoneInfoNotFoundError expected, get IsADirectoryError
>>> import zoneinfo; zoneinfo.ZoneInfo('Pacific')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/vstinner/python/master/Lib/zoneinfo/_common.py", line 12, in 
load_tzdata
    return importlib.resources.open_binary(package_name, resource_name)
  File "/home/vstinner/python/master/Lib/importlib/resources.py", line 40, in 
open_binary
    return reader.open_resource(resource)
  File "/home/vstinner/python/master/Lib/importlib/abc.py", line 419, in 
open_resource
    return self.files().joinpath(resource).open('rb')
  File "/home/vstinner/python/master/Lib/pathlib.py", line 1238, in open
    return io.open(self, mode, buffering, encoding, errors, newline,
IsADirectoryError: [Errno 21] Is a directory: 
'/home/vstinner/python/master/env/lib/python3.10/site-packages/tzdata/zoneinfo/Pacific'

# valid zone
>>> import zoneinfo; zoneinfo.ZoneInfo('Pacific/Noumea')
zoneinfo.ZoneInfo(key='Pacific/Noumea')

# raise ZoneInfoNotFoundError as expected (from FileNotFoundError)
>>> import zoneinfo; zoneinfo.ZoneInfo('xxx')
Traceback (most recent call last):
  File "/home/vstinner/python/master/Lib/zoneinfo/_common.py", line 12, in 
load_tzdata
    return importlib.resources.open_binary(package_name, resource_name)
  File "/home/vstinner/python/master/Lib/importlib/resources.py", line 40, in 
open_binary
    return reader.open_resource(resource)
  File "/home/vstinner/python/master/Lib/importlib/abc.py", line 419, in 
open_resource
    return self.files().joinpath(resource).open('rb')
  File "/home/vstinner/python/master/Lib/pathlib.py", line 1238, in open
    return io.open(self, mode, buffering, encoding, errors, newline,
  File "/home/vstinner/python/master/Lib/pathlib.py", line 1106, in _opener
    return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: 
'/home/vstinner/python/master/env/lib/python3.10/site-packages/tzdata/zoneinfo/xxx'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/vstinner/python/master/Lib/zoneinfo/_common.py", line 24, in 
load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key xxx'

----------
title: Unhandled exceptions in zoneinfo.ZoneInfo constructor -> zoneinfo: 
ZoneInfo raises IsADirectoryError instead of ZoneInfoNotFoundError

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41530>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to