From 22b364a9c73ef00dc793bc41a83b8b1be6a64ee6 Mon Sep 17 00:00:00 2001 From: Martin Durant Date: Tue, 7 Jan 2025 10:53:36 -0500 Subject: [PATCH] fix: version check in to_cudf for API change (#3339) * version check in to_cudf for API change fixes #3335 * style: pre-commit fixes * Fix --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Ianna Osborne Co-authored-by: Peter Fackeldey --- src/awkward/contents/listoffsetarray.py | 36 ++++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/awkward/contents/listoffsetarray.py b/src/awkward/contents/listoffsetarray.py index 030d35a344..f261717b87 100644 --- a/src/awkward/contents/listoffsetarray.py +++ b/src/awkward/contents/listoffsetarray.py @@ -2009,12 +2009,20 @@ def _to_arrow( ) def _to_cudf(self, cudf: Any, mask: Content | None, length: int): + from packaging.version import parse as parse_version + cupy = Cupy.instance() index = self._offsets.raw(cupy).astype("int32") buf = cudf.core.buffer.as_buffer(index) - ind_buf = cudf.core.column.numerical.NumericalColumn( - data=buf, dtype=index.dtype, mask=None, size=len(index) - ) + + if parse_version(cudf.__version__) >= parse_version("24.10.00"): + ind_buf = cudf.core.column.numerical.NumericalColumn( + data=buf, dtype=index.dtype, mask=None, size=len(index) + ) + else: + ind_buf = cudf.core.column.numerical.NumericalColumn( + buf, index.dtype, None, size=len(index) + ) cont = self._content._to_cudf(cudf, None, len(self._content)) if mask is not None: m = np._module.packbits(mask, bitorder="little") @@ -2034,13 +2042,21 @@ def _to_cudf(self, cudf: Any, mask: Content | None, length: int): mask=m, ) - return cudf.core.column.lists.ListColumn( - size=length, - data=None, - mask=m, - children=(ind_buf, cont), - dtype=cudf.core.dtypes.ListDtype(cont.dtype), - ) + if parse_version(cudf.__version__) >= parse_version("24.10.00"): + return cudf.core.column.lists.ListColumn( + size=length, + data=None, + mask=m, + children=(ind_buf, cont), + dtype=cudf.core.dtypes.ListDtype(cont.dtype), + ) + else: + return cudf.core.column.lists.ListColumn( + length, + mask=m, + children=(ind_buf, cont), + dtype=cudf.core.dtypes.ListDtype(cont.dtype), + ) def _to_backend_array(self, allow_missing, backend): array_param = self.parameter("__array__")