Raúl Cumplido created ARROW-16233:
-------------------------------------
Summary: [Python] [Packaging] test_zoneinfo_tzinfo_to_string fails
with zoneinfo._common.ZoneInfoNotFoundError on packaging wheels on Windows
Key: ARROW-16233
URL: https://issues.apache.org/jira/browse/ARROW-16233
Project: Apache Arrow
Issue Type: Bug
Components: Packaging, Python
Reporter: Raúl Cumplido
Fix For: 8.0.0
Currently our nightly-packaging jobs for windows wheels are failing, see:
- wheel-windows-cp310-amd64:
URL:
[https://github.com/ursacomputing/crossbow/tree/nightly-packaging-2022-04-18-0-github-wheel-windows-cp310-amd64]
- wheel-windows-cp39-amd64:
URL:
[https://github.com/ursacomputing/crossbow/tree/nightly-packaging-2022-04-18-0-github-wheel-windows-cp39-amd64]
The error is from the test:
pyarrow\tests\test_types.py::test_zoneinfo_tzinfo_to_string, see the error logs
below:
{code:java}
================================== FAILURES ===================================
_______________________ test_zoneinfo_tzinfo_to_string
________________________key = 'UTC' def load_tzdata(key):
import importlib.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)Python\lib\zoneinfo\_common.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_package = 'tzdata.zoneinfo', resource = 'UTC' def open_binary(package:
Package, resource: Resource) -> BinaryIO:
"""Return a file-like object opened for binary reading of the
resource."""
resource = _common.normalize_path(resource)
> package =
> _common.get_package(package)Python\lib\importlib\resources.py:43:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_package = 'tzdata.zoneinfo' def get_package(package):
# type: (Package) -> types.ModuleType
"""Take a package name or module object and return the module.
Raise an exception if the resolved module is not a package.
"""
> resolved = resolve(package)Python\lib\importlib\_common.py:66:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_cand = 'tzdata.zoneinfo' def resolve(cand):
# type: (Package) -> types.ModuleType
> return cand if isinstance(cand, types.ModuleType) else
> importlib.import_module(cand)Python\lib\importlib\_common.py:57:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata.zoneinfo', package = None def import_module(name,
package=None):
"""Import a module.
The 'package' argument is required when performing a relative import. It
specifies the package to use as the anchor point from which to resolve
the
relative import to an absolute import.
"""
level = 0
if name.startswith('.'):
if not package:
msg = ("the 'package' argument is required to perform a
relative "
"import for {!r}")
raise TypeError(msg.format(name))
for character in name:
if character != '.':
break
level += 1
> return _bootstrap._gcd_import(name[level:], package,
> level)Python\lib\importlib\__init__.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata.zoneinfo', package = None, level = 0> ???<frozen
importlib._bootstrap>:1050:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata.zoneinfo', import_ = <function _gcd_import at
0x00000216E11A3490>> ???<frozen importlib._bootstrap>:1027:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata.zoneinfo', import_ = <function _gcd_import at
0x00000216E11A3490>> ???<frozen importlib._bootstrap>:992:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_f = <function _gcd_import at 0x00000216E11A3490>, args = ('tzdata',), kwds =
{}> ???<frozen importlib._bootstrap>:241:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata', package = None, level = 0> ???<frozen
importlib._bootstrap>:1050:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata', import_ = <function _gcd_import at 0x00000216E11A3490>>
???<frozen importlib._bootstrap>:1027:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_name = 'tzdata', import_ = <function _gcd_import at 0x00000216E11A3490>> ???
E ModuleNotFoundError: No module named 'tzdata'<frozen
importlib._bootstrap>:1004: ModuleNotFoundErrorDuring handling of the above
exception, another exception occurred: def test_zoneinfo_tzinfo_to_string():
zoneinfo = pytest.importorskip('zoneinfo')
> tz =
> zoneinfo.ZoneInfo('UTC')Python\lib\site-packages\pyarrow\tests\test_types.py:329:
>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_key = 'UTC' def load_tzdata(key):
import importlib.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)
except (ImportError, FileNotFoundError, UnicodeEncodeError):
# There are three 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
# installed, or if there's an error in the folder name like
# Amrica/New_York)
# FileNotFoundError: If resource_name doesn't exist in the package
# (e.g. Europe/Krasnoy)
# UnicodeEncodeError: If package_name or resource_name are not
UTF-8,
# such as keys containing a surrogate character.
> raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
E zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with
key UTC'
{code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)