From dfa5d064ddbb9e94323dbb66d8575168bf5ef75f Mon Sep 17 00:00:00 2001 From: Jim Pivarski Date: Tue, 15 Aug 2023 16:36:19 -0500 Subject: [PATCH] Allow old pyarrow to forget that an unnullable string has unnullable outputs. --- src/awkward/operations/str/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/awkward/operations/str/__init__.py b/src/awkward/operations/str/__init__.py index a9a14e4dea..199d166d7e 100644 --- a/src/awkward/operations/str/__init__.py +++ b/src/awkward/operations/str/__init__.py @@ -119,6 +119,9 @@ def action(layout, **absorb): ), highlevel=False, ) + + if out.is_option: + out = out.content if out.is_list and out.parameter("__array__") == "string": out = out.copy( content=out.content.copy(parameters={"__array__": "byte"}), @@ -140,6 +143,9 @@ def action(layout, **absorb): def _erase_list_option(layout): from awkward.contents.unmaskedarray import UnmaskedArray + if layout.is_option: + layout = layout.content + assert layout.is_list if layout.content.is_option: assert isinstance(layout.content, UnmaskedArray)