Skip to content

Conversation

@tadeja
Copy link
Contributor

@tadeja tadeja commented Jan 5, 2026

Rationale for this change

This is to cover reported issues #48241, #44224 and #43855.
Currently uuid.UUID objects are not inferred/converted automatically in PyArrow, requiring users to explicitly specify the type.

What changes are included in this PR?

Adding support for Python's uuid.UUID objects in PyArrow's type inference and conversion.

Are these changes tested?

Yes, added test_uuid_scalar_from_python() and test_uuid_array_from_python() in test_extension.py.

Are there any user-facing changes?

Users can now pass Python uuid.UUID objects directly to PyArrow functions like pa.scalar() and pa.array() without specifying the type;

import uuid
import pyarrow as pa

pa.scalar(uuid.uuid4())

<pyarrow.UuidScalar: UUID('958174b9-3a5c-4cdd-8fc5-d51a2fc55784')>

pa.array([uuid.uuid4()])

<pyarrow.lib.UuidArray object at 0x1217725f0>
[
73611FD81F764A209C8B9CDBADDA1F53
]

@tadeja
Copy link
Contributor Author

tadeja commented Jan 5, 2026

@AlenkaF Would you recommend any good place to document this UUID change? - I see @amoeba indicated the need for documentation in his draft pull request #44242.
ӇƛƤƤƳ_ƝЄƜ_ƳЄƛƦ:)

@AlenkaF
Copy link
Member

AlenkaF commented Jan 7, 2026

Happy New Year! ❤️

I would suggest adding the documentation to the Extending PyArrow page under the Canonical extension types section as a separate subsection next to Fixed size tensor one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants