This is an automated email from the ASF dual-hosted git repository.
jorisvandenbossche pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 591042fcdd GH-31548: [Python] Test that zoneinfo timezones are
accepted during type inference (#34394)
591042fcdd is described below
commit 591042fcdd744c2e4cc0cec3d3c0c7fc1baf0ca5
Author: Alenka Frim <[email protected]>
AuthorDate: Tue Mar 14 12:30:41 2023 +0100
GH-31548: [Python] Test that zoneinfo timezones are accepted during type
inference (#34394)
### What changes are included in this PR?
Explicit test for timestamp inference when creating `pyarrow.Array` with a
datetime that has `zoneinfo` timezone specified.
* Closes: #31548
Authored-by: Alenka Frim <[email protected]>
Signed-off-by: Joris Van den Bossche <[email protected]>
---
python/pyarrow/tests/test_convert_builtin.py | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/python/pyarrow/tests/test_convert_builtin.py
b/python/pyarrow/tests/test_convert_builtin.py
index 732164f9e1..b4ca93ee25 100644
--- a/python/pyarrow/tests/test_convert_builtin.py
+++ b/python/pyarrow/tests/test_convert_builtin.py
@@ -1133,6 +1133,33 @@ def test_sequence_timestamp_with_timezone_inference():
assert arr.type == expected_type
+def test_sequence_timestamp_with_zoneinfo_timezone_inference():
+ pytest.importorskip("zoneinfo")
+ import zoneinfo
+
+ data = [
+ datetime.datetime(2007, 7, 13, 8, 23, 34, 123456), # naive
+ datetime.datetime(2008, 1, 5, 5, 0, 0, 1000,
+ tzinfo=datetime.timezone.utc),
+ None,
+ datetime.datetime(2006, 1, 13, 12, 34, 56, 432539,
+ tzinfo=zoneinfo.ZoneInfo(key='US/Eastern')),
+ datetime.datetime(2010, 8, 13, 5, 0, 0, 437699,
+ tzinfo=zoneinfo.ZoneInfo(key='Europe/Moscow')),
+ ]
+ expected = [
+ pa.timestamp('us', tz=None),
+ pa.timestamp('us', tz='UTC'),
+ pa.timestamp('us', tz=None),
+ pa.timestamp('us', tz='US/Eastern'),
+ pa.timestamp('us', tz='Europe/Moscow')
+ ]
+ for dt, expected_type in zip(data, expected):
+ prepended = [dt] + data
+ arr = pa.array(prepended)
+ assert arr.type == expected_type
+
+
@pytest.mark.pandas
def test_sequence_timestamp_from_mixed_builtin_and_pandas_datetimes():
pytest.importorskip("pytz")