[
https://issues.apache.org/jira/browse/ARROW-6176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16903064#comment-16903064
]
Joris Van den Bossche edited comment on ARROW-6176 at 10/29/19 12:38 PM:
-------------------------------------------------------------------------
This might be done by adding a {{ExtenstionType.\_\_arrow_ext_class\_\_}} that
points to the subclass? In that way {{pyarrow_wrap_array}} can use that class
instead of one of the predefined ones in {{\_array_classes}}.
was (Author: jorisvandenbossche):
This might be done by adding a {{ExtenstionType.__arrow_ext_class__}} that
points to the subclass? In that way {{pyarrow_wrap_array}} can use that class
instead of one of the predefined ones in {{_array_classes}}.
> [Python] Allow to subclass ExtensionArray to attach to custom extension type
> ----------------------------------------------------------------------------
>
> Key: ARROW-6176
> URL: https://issues.apache.org/jira/browse/ARROW-6176
> Project: Apache Arrow
> Issue Type: Improvement
> Components: Python
> Reporter: Joris Van den Bossche
> Priority: Major
>
> Currently, you can define a custom extension type in Python with
> {code}
> class UuidType(pa.ExtensionType):
> def __init__(self):
> pa.ExtensionType.__init__(self, pa.binary(16))
> def __reduce__(self):
> return UuidType, ()
> {code}
> but the array you can create with this is always ExtensionArray. We should
> provide a way to define a subclass (eg `UuidArray` in this case) that can
> hold custom logic.
> For example, a user might want to define `UuidArray` such that `arr[i]`
> returns an instance of Python's `uuid.UUID`
> From https://github.com/apache/arrow/pull/4532#pullrequestreview-249396691
--
This message was sent by Atlassian Jira
(v8.3.4#803005)