Skip to content

Allow non offset based timezones #1078

Closed
@Fokko

Description

@Fokko

Apache Iceberg Rust version

None

Describe the bug

I was trying to make PyIceberg rely solely on Iceberg-rust for the partition transforms, but I ran into the following:

    def _transform(array: "ArrayLike") -> "ArrayLike":
        if isinstance(array, pa.Array):
            return transform_func(array, *args)
        elif isinstance(array, pa.ChunkedArray):
            result_chunks = []
            for arr in array.iterchunks():
>               result_chunks.append(transform_func(arr, *args))
E               ValueError: Unexpected => Parser error: Invalid timezone "UTC": only offset based timezones supported without chrono-tz feature

We initialize the datetime as:

datetime(2023, 12, 31, 0, 0, 0, tzinfo=timezone.utc)

To Reproduce

In test_transform.py:

def test_year_transform_datetime():
    arr = pa.array([
        datetime(1970, 1, 1, 0, 0, 0, tzinfo=timezone.utc),
        datetime(2000, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
    ])
    result = transform.year(arr)
    expected = pa.array([0, 30], type=pa.int32())
    assert result == expected

Expected behavior

Able to just parse these. I'm not sure if we need to fix this in Arrow, or if we can import chrono-tz package.

Willingness to contribute

I cannot contribute a fix for this bug at this time

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions