cudf-polars-cu13 25.12.0__py3-none-any.whl → 26.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cudf_polars/GIT_COMMIT +1 -1
- cudf_polars/VERSION +1 -1
- cudf_polars/callback.py +28 -7
- cudf_polars/containers/column.py +51 -26
- cudf_polars/dsl/expressions/binaryop.py +1 -1
- cudf_polars/dsl/expressions/boolean.py +1 -1
- cudf_polars/dsl/expressions/selection.py +1 -1
- cudf_polars/dsl/expressions/string.py +29 -20
- cudf_polars/dsl/expressions/ternary.py +25 -1
- cudf_polars/dsl/expressions/unary.py +11 -8
- cudf_polars/dsl/ir.py +351 -281
- cudf_polars/dsl/translate.py +18 -15
- cudf_polars/dsl/utils/aggregations.py +10 -5
- cudf_polars/experimental/base.py +10 -0
- cudf_polars/experimental/benchmarks/pdsh.py +1 -1
- cudf_polars/experimental/benchmarks/utils.py +83 -2
- cudf_polars/experimental/distinct.py +2 -0
- cudf_polars/experimental/explain.py +1 -1
- cudf_polars/experimental/expressions.py +8 -5
- cudf_polars/experimental/groupby.py +2 -0
- cudf_polars/experimental/io.py +64 -42
- cudf_polars/experimental/join.py +15 -2
- cudf_polars/experimental/parallel.py +10 -7
- cudf_polars/experimental/rapidsmpf/collectives/__init__.py +9 -0
- cudf_polars/experimental/rapidsmpf/collectives/allgather.py +90 -0
- cudf_polars/experimental/rapidsmpf/collectives/common.py +96 -0
- cudf_polars/experimental/rapidsmpf/{shuffle.py → collectives/shuffle.py} +90 -114
- cudf_polars/experimental/rapidsmpf/core.py +194 -67
- cudf_polars/experimental/rapidsmpf/dask.py +172 -0
- cudf_polars/experimental/rapidsmpf/dispatch.py +6 -3
- cudf_polars/experimental/rapidsmpf/io.py +162 -70
- cudf_polars/experimental/rapidsmpf/join.py +162 -77
- cudf_polars/experimental/rapidsmpf/nodes.py +421 -180
- cudf_polars/experimental/rapidsmpf/repartition.py +130 -65
- cudf_polars/experimental/rapidsmpf/union.py +24 -5
- cudf_polars/experimental/rapidsmpf/utils.py +228 -16
- cudf_polars/experimental/shuffle.py +18 -4
- cudf_polars/experimental/sort.py +13 -6
- cudf_polars/experimental/spilling.py +1 -1
- cudf_polars/testing/plugin.py +6 -3
- cudf_polars/utils/config.py +67 -0
- cudf_polars/utils/versions.py +3 -3
- {cudf_polars_cu13-25.12.0.dist-info → cudf_polars_cu13-26.2.0.dist-info}/METADATA +9 -10
- {cudf_polars_cu13-25.12.0.dist-info → cudf_polars_cu13-26.2.0.dist-info}/RECORD +47 -43
- {cudf_polars_cu13-25.12.0.dist-info → cudf_polars_cu13-26.2.0.dist-info}/WHEEL +1 -1
- {cudf_polars_cu13-25.12.0.dist-info → cudf_polars_cu13-26.2.0.dist-info}/licenses/LICENSE +0 -0
- {cudf_polars_cu13-25.12.0.dist-info → cudf_polars_cu13-26.2.0.dist-info}/top_level.txt +0 -0
|
@@ -18,6 +18,7 @@ from cudf_polars.dsl.tracing import log_do_evaluate, nvtx_annotate_cudf_polars
|
|
|
18
18
|
from cudf_polars.experimental.base import get_key_name
|
|
19
19
|
from cudf_polars.experimental.dispatch import generate_ir_tasks, lower_ir_node
|
|
20
20
|
from cudf_polars.experimental.utils import _concat
|
|
21
|
+
from cudf_polars.utils.config import ShufflerInsertionMethod
|
|
21
22
|
from cudf_polars.utils.cuda_stream import get_dask_cuda_stream
|
|
22
23
|
|
|
23
24
|
if TYPE_CHECKING:
|
|
@@ -43,6 +44,7 @@ class ShuffleOptions(TypedDict):
|
|
|
43
44
|
column_names: Sequence[str]
|
|
44
45
|
dtypes: Sequence[DataType]
|
|
45
46
|
cluster_kind: Literal["dask", "single"]
|
|
47
|
+
shuffler_insertion_method: ShufflerInsertionMethod
|
|
46
48
|
|
|
47
49
|
|
|
48
50
|
# Experimental rapidsmpf shuffler integration
|
|
@@ -80,7 +82,14 @@ class RMPFIntegration: # pragma: no cover
|
|
|
80
82
|
br=context.br,
|
|
81
83
|
stream=DEFAULT_STREAM,
|
|
82
84
|
)
|
|
83
|
-
|
|
85
|
+
|
|
86
|
+
if (
|
|
87
|
+
options["shuffler_insertion_method"]
|
|
88
|
+
== ShufflerInsertionMethod.CONCAT_INSERT
|
|
89
|
+
):
|
|
90
|
+
shuffler.concat_insert(packed_inputs)
|
|
91
|
+
else:
|
|
92
|
+
shuffler.insert_chunks(packed_inputs)
|
|
84
93
|
|
|
85
94
|
@staticmethod
|
|
86
95
|
@nvtx_annotate_cudf_polars(message="RMPFIntegration.extract_partition")
|
|
@@ -133,24 +142,28 @@ class Shuffle(IR):
|
|
|
133
142
|
`ShuffleSorted` for sorting-based shuffling.
|
|
134
143
|
"""
|
|
135
144
|
|
|
136
|
-
__slots__ = ("keys", "shuffle_method")
|
|
137
|
-
_non_child = ("schema", "keys", "shuffle_method")
|
|
145
|
+
__slots__ = ("keys", "shuffle_method", "shuffler_insertion_method")
|
|
146
|
+
_non_child = ("schema", "keys", "shuffle_method", "shuffler_insertion_method")
|
|
138
147
|
keys: tuple[NamedExpr, ...]
|
|
139
148
|
"""Keys to shuffle on."""
|
|
140
149
|
shuffle_method: ShuffleMethod
|
|
141
150
|
"""Shuffle method to use."""
|
|
151
|
+
shuffler_insertion_method: ShufflerInsertionMethod
|
|
152
|
+
"""Insertion method for rapidsmpf shuffler."""
|
|
142
153
|
|
|
143
154
|
def __init__(
|
|
144
155
|
self,
|
|
145
156
|
schema: Schema,
|
|
146
157
|
keys: tuple[NamedExpr, ...],
|
|
147
158
|
shuffle_method: ShuffleMethod,
|
|
159
|
+
shuffler_insertion_method: ShufflerInsertionMethod,
|
|
148
160
|
df: IR,
|
|
149
161
|
):
|
|
150
162
|
self.schema = schema
|
|
151
163
|
self.keys = keys
|
|
152
164
|
self.shuffle_method = shuffle_method
|
|
153
|
-
self.
|
|
165
|
+
self.shuffler_insertion_method = shuffler_insertion_method
|
|
166
|
+
self._non_child_args = (schema, keys, shuffle_method, shuffler_insertion_method)
|
|
154
167
|
self.children = (df,)
|
|
155
168
|
|
|
156
169
|
# the type-ignore is for
|
|
@@ -351,6 +364,7 @@ def _(
|
|
|
351
364
|
"column_names": list(ir.schema.keys()),
|
|
352
365
|
"dtypes": list(ir.schema.values()),
|
|
353
366
|
"cluster_kind": cluster_kind,
|
|
367
|
+
"shuffler_insertion_method": ir.shuffler_insertion_method,
|
|
354
368
|
},
|
|
355
369
|
)
|
|
356
370
|
except ValueError as err:
|
cudf_polars/experimental/sort.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES.
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
"""Sorting Logic."""
|
|
4
4
|
|
|
@@ -23,7 +23,11 @@ from cudf_polars.experimental.repartition import Repartition
|
|
|
23
23
|
from cudf_polars.experimental.shuffle import _simple_shuffle_graph
|
|
24
24
|
from cudf_polars.experimental.utils import _concat, _fallback_inform, _lower_ir_fallback
|
|
25
25
|
from cudf_polars.utils.config import ShuffleMethod
|
|
26
|
-
from cudf_polars.utils.cuda_stream import
|
|
26
|
+
from cudf_polars.utils.cuda_stream import (
|
|
27
|
+
get_dask_cuda_stream,
|
|
28
|
+
get_joined_cuda_stream,
|
|
29
|
+
join_cuda_streams,
|
|
30
|
+
)
|
|
27
31
|
|
|
28
32
|
if TYPE_CHECKING:
|
|
29
33
|
from collections.abc import MutableMapping, Sequence
|
|
@@ -320,10 +324,11 @@ class RMPFIntegrationSortedShuffle: # pragma: no cover
|
|
|
320
324
|
context = get_worker_context()
|
|
321
325
|
|
|
322
326
|
by = options["by"]
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
+
data_streams = [
|
|
328
|
+
df.stream,
|
|
329
|
+
sort_boundaries.stream,
|
|
330
|
+
]
|
|
331
|
+
stream = get_joined_cuda_stream(get_dask_cuda_stream, upstreams=data_streams)
|
|
327
332
|
|
|
328
333
|
splits = find_sort_splits(
|
|
329
334
|
df.select(by).table,
|
|
@@ -343,6 +348,8 @@ class RMPFIntegrationSortedShuffle: # pragma: no cover
|
|
|
343
348
|
# https://github.com/rapidsai/cudf/issues/20337
|
|
344
349
|
shuffler.insert_chunks(packed_inputs)
|
|
345
350
|
|
|
351
|
+
join_cuda_streams(downstreams=data_streams, upstreams=[stream])
|
|
352
|
+
|
|
346
353
|
@staticmethod
|
|
347
354
|
def extract_partition(
|
|
348
355
|
partition_id: int,
|
|
@@ -8,9 +8,9 @@ from typing import TYPE_CHECKING, Any
|
|
|
8
8
|
|
|
9
9
|
from dask.sizeof import sizeof
|
|
10
10
|
from distributed import get_worker
|
|
11
|
-
from rapidsmpf.buffer.buffer import MemoryType
|
|
12
11
|
from rapidsmpf.integrations.dask.core import get_worker_context
|
|
13
12
|
from rapidsmpf.integrations.dask.spilling import SpillableWrapper
|
|
13
|
+
from rapidsmpf.memory.buffer import MemoryType
|
|
14
14
|
|
|
15
15
|
from cudf_polars.containers import DataFrame
|
|
16
16
|
|
cudf_polars/testing/plugin.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES.
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
"""Plugin for running polars test suite setting GPU engine as default."""
|
|
@@ -13,6 +13,7 @@ import pytest
|
|
|
13
13
|
import polars
|
|
14
14
|
|
|
15
15
|
from cudf_polars.utils.config import StreamingFallbackMode
|
|
16
|
+
from cudf_polars.utils.versions import POLARS_VERSION_LT_135
|
|
16
17
|
|
|
17
18
|
if TYPE_CHECKING:
|
|
18
19
|
from collections.abc import Mapping
|
|
@@ -93,6 +94,10 @@ EXPECTED_FAILURES: Mapping[str, str | tuple[str, bool]] = {
|
|
|
93
94
|
"tests/unit/io/test_delta.py::test_scan_delta_schema_evolution_nested_struct_field_19915": "Need to expose hive partitioning",
|
|
94
95
|
"tests/unit/io/test_delta.py::test_scan_delta_nanosecond_timestamp": "polars generates the wrong schema: https://github.com/pola-rs/polars/issues/23949",
|
|
95
96
|
"tests/unit/io/test_delta.py::test_scan_delta_nanosecond_timestamp_nested": "polars generates the wrong schema: https://github.com/pola-rs/polars/issues/23949",
|
|
97
|
+
"tests/unit/io/test_delta.py::test_scan_delta_loads_aws_profile_endpoint_url": (
|
|
98
|
+
"See https://github.com/rapidsai/cudf/pull/20791#issuecomment-3750528419",
|
|
99
|
+
not POLARS_VERSION_LT_135,
|
|
100
|
+
),
|
|
96
101
|
"tests/unit/io/test_lazy_count_star.py::test_count_compressed_csv_18057": "Need to determine if file is compressed",
|
|
97
102
|
"tests/unit/io/test_lazy_count_star.py::test_count_parquet[small.parquet-4]": "Debug output on stderr doesn't match",
|
|
98
103
|
"tests/unit/io/test_lazy_count_star.py::test_count_parquet[foods*.parquet-54]": "Debug output on stderr doesn't match",
|
|
@@ -186,7 +191,6 @@ EXPECTED_FAILURES: Mapping[str, str | tuple[str, bool]] = {
|
|
|
186
191
|
"tests/unit/sql/test_cast.py::test_cast_errors[values2-values::int1-conversion from `i64` to `i8` failed]": "Casting that raises not supported on GPU",
|
|
187
192
|
"tests/unit/sql/test_cast.py::test_cast_errors[values5-values::int4-conversion from `str` to `i32` failed]": "Cast raises, but error user receives is wrong",
|
|
188
193
|
"tests/unit/sql/test_miscellaneous.py::test_read_csv": "Incorrect handling of missing_is_null in read_csv",
|
|
189
|
-
"tests/unit/sql/test_wildcard_opts.py::test_select_wildcard_errors": "Raises correctly but with different exception",
|
|
190
194
|
"tests/unit/test_cse.py::test_cse_predicate_self_join": "Debug output on stderr doesn't match",
|
|
191
195
|
"tests/unit/test_cse.py::test_nested_cache_no_panic_16553": "Needs https://github.com/rapidsai/cudf/issues/18630",
|
|
192
196
|
"tests/unit/test_errors.py::test_error_on_empty_group_by": "Incorrect exception raised",
|
|
@@ -232,7 +236,6 @@ EXPECTED_FAILURES: Mapping[str, str | tuple[str, bool]] = {
|
|
|
232
236
|
"tests/unit/operations/test_slice.py::test_schema_slice_on_literal_23999[lit2-0-len1-False]": "Aggregating a list literal: cudf#19610",
|
|
233
237
|
"tests/unit/operations/test_slice.py::test_schema_slice_on_literal_23999[lit1-0-0-False]": "Aggregating a list literal: cudf#19610",
|
|
234
238
|
"tests/unit/operations/namespaces/test_binary.py::test_binary_compounded_literal_aggstate_24460": "Aggregating a list literal: cudf#19610",
|
|
235
|
-
"tests/unit/operations/test_top_k.py::test_top_k_non_elementwise_by_24163": "Ternary with scalar predicate does not broadcast mask cudf#20210",
|
|
236
239
|
}
|
|
237
240
|
|
|
238
241
|
|
cudf_polars/utils/config.py
CHANGED
|
@@ -51,6 +51,7 @@ __all__ = [
|
|
|
51
51
|
"Runtime",
|
|
52
52
|
"Scheduler", # Deprecated, kept for backward compatibility
|
|
53
53
|
"ShuffleMethod",
|
|
54
|
+
"ShufflerInsertionMethod",
|
|
54
55
|
"StatsPlanningOptions",
|
|
55
56
|
"StreamingExecutor",
|
|
56
57
|
"StreamingFallbackMode",
|
|
@@ -208,6 +209,20 @@ class ShuffleMethod(str, enum.Enum):
|
|
|
208
209
|
_RAPIDSMPF_SINGLE = "rapidsmpf-single"
|
|
209
210
|
|
|
210
211
|
|
|
212
|
+
class ShufflerInsertionMethod(str, enum.Enum):
|
|
213
|
+
"""
|
|
214
|
+
The method to use for inserting chunks into the rapidsmpf shuffler.
|
|
215
|
+
|
|
216
|
+
* ``ShufflerInsertionMethod.INSERT_CHUNKS`` : Use insert_chunks for inserting data.
|
|
217
|
+
* ``ShufflerInsertionMethod.CONCAT_INSERT`` : Use concat_insert for inserting data.
|
|
218
|
+
|
|
219
|
+
Only applicable with the "rapidsmpf" shuffle method and the "tasks" runtime.
|
|
220
|
+
"""
|
|
221
|
+
|
|
222
|
+
INSERT_CHUNKS = "insert_chunks"
|
|
223
|
+
CONCAT_INSERT = "concat_insert"
|
|
224
|
+
|
|
225
|
+
|
|
211
226
|
T = TypeVar("T")
|
|
212
227
|
|
|
213
228
|
|
|
@@ -267,6 +282,10 @@ class ParquetOptions:
|
|
|
267
282
|
|
|
268
283
|
Set to 0 to avoid row-group sampling. Note that row-group sampling
|
|
269
284
|
will also be skipped if ``max_footer_samples`` is 0.
|
|
285
|
+
use_rapidsmpf_native
|
|
286
|
+
Whether to use the native rapidsmpf node for parquet reading.
|
|
287
|
+
This option is only used when the rapidsmpf runtime is enabled.
|
|
288
|
+
Default is True.
|
|
270
289
|
"""
|
|
271
290
|
|
|
272
291
|
_env_prefix = "CUDF_POLARS__PARQUET_OPTIONS"
|
|
@@ -301,6 +320,13 @@ class ParquetOptions:
|
|
|
301
320
|
f"{_env_prefix}__MAX_ROW_GROUP_SAMPLES", int, default=1
|
|
302
321
|
)
|
|
303
322
|
)
|
|
323
|
+
use_rapidsmpf_native: bool = dataclasses.field(
|
|
324
|
+
default_factory=_make_default_factory(
|
|
325
|
+
f"{_env_prefix}__USE_RAPIDSMPF_NATIVE",
|
|
326
|
+
_bool_converter,
|
|
327
|
+
default=True,
|
|
328
|
+
)
|
|
329
|
+
)
|
|
304
330
|
|
|
305
331
|
def __post_init__(self) -> None: # noqa: D105
|
|
306
332
|
if not isinstance(self.chunked, bool):
|
|
@@ -315,6 +341,8 @@ class ParquetOptions:
|
|
|
315
341
|
raise TypeError("max_footer_samples must be an int")
|
|
316
342
|
if not isinstance(self.max_row_group_samples, int):
|
|
317
343
|
raise TypeError("max_row_group_samples must be an int")
|
|
344
|
+
if not isinstance(self.use_rapidsmpf_native, bool):
|
|
345
|
+
raise TypeError("use_rapidsmpf_native must be a bool")
|
|
318
346
|
|
|
319
347
|
|
|
320
348
|
def default_blocksize(cluster: str) -> int:
|
|
@@ -598,6 +626,11 @@ class StreamingExecutor:
|
|
|
598
626
|
The method to use for shuffling data between workers. Defaults to
|
|
599
627
|
'rapidsmpf' for distributed cluster if available (otherwise 'tasks'),
|
|
600
628
|
and 'tasks' for single-GPU cluster.
|
|
629
|
+
shuffler_insertion_method
|
|
630
|
+
The method to use for inserting chunks with the rapidsmpf shuffler.
|
|
631
|
+
Can be 'insert_chunks' (default) or 'concat_insert'.
|
|
632
|
+
|
|
633
|
+
Only applicable with ``shuffle_method="rapidsmpf"`` and ``runtime="tasks"``.
|
|
601
634
|
rapidsmpf_spill
|
|
602
635
|
Whether to wrap task arguments and output in objects that are
|
|
603
636
|
spillable by 'rapidsmpf'.
|
|
@@ -613,6 +646,9 @@ class StreamingExecutor:
|
|
|
613
646
|
stats_planning
|
|
614
647
|
Options controlling statistics-based query planning. See
|
|
615
648
|
:class:`~cudf_polars.utils.config.StatsPlanningOptions` for more.
|
|
649
|
+
max_io_threads
|
|
650
|
+
Maximum number of IO threads for the rapidsmpf runtime. Default is 2.
|
|
651
|
+
This controls the parallelism of IO operations when reading data.
|
|
616
652
|
|
|
617
653
|
Notes
|
|
618
654
|
-----
|
|
@@ -685,6 +721,13 @@ class StreamingExecutor:
|
|
|
685
721
|
default=ShuffleMethod.TASKS,
|
|
686
722
|
)
|
|
687
723
|
)
|
|
724
|
+
shuffler_insertion_method: ShufflerInsertionMethod = dataclasses.field(
|
|
725
|
+
default_factory=_make_default_factory(
|
|
726
|
+
f"{_env_prefix}__SHUFFLER_INSERTION_METHOD",
|
|
727
|
+
ShufflerInsertionMethod.__call__,
|
|
728
|
+
default=ShufflerInsertionMethod.INSERT_CHUNKS,
|
|
729
|
+
)
|
|
730
|
+
)
|
|
688
731
|
rapidsmpf_spill: bool = dataclasses.field(
|
|
689
732
|
default_factory=_make_default_factory(
|
|
690
733
|
f"{_env_prefix}__RAPIDSMPF_SPILL", _bool_converter, default=False
|
|
@@ -703,6 +746,11 @@ class StreamingExecutor:
|
|
|
703
746
|
stats_planning: StatsPlanningOptions = dataclasses.field(
|
|
704
747
|
default_factory=StatsPlanningOptions
|
|
705
748
|
)
|
|
749
|
+
max_io_threads: int = dataclasses.field(
|
|
750
|
+
default_factory=_make_default_factory(
|
|
751
|
+
f"{_env_prefix}__MAX_IO_THREADS", int, default=2
|
|
752
|
+
)
|
|
753
|
+
)
|
|
706
754
|
|
|
707
755
|
def __post_init__(self) -> None: # noqa: D105
|
|
708
756
|
# Check for rapidsmpf runtime
|
|
@@ -742,6 +790,16 @@ class StreamingExecutor:
|
|
|
742
790
|
object.__setattr__(self, "cluster", Cluster.SINGLE)
|
|
743
791
|
assert self.cluster is not None, "Expected cluster to be set."
|
|
744
792
|
|
|
793
|
+
# Warn loudly that multi-GPU execution is under construction
|
|
794
|
+
# for the rapidsmpf runtime
|
|
795
|
+
if self.cluster == "distributed" and self.runtime == "rapidsmpf":
|
|
796
|
+
warnings.warn(
|
|
797
|
+
"UNDER CONSTRUCTION!!!"
|
|
798
|
+
"The rapidsmpf runtime does NOT support distributed execution yet. "
|
|
799
|
+
"Use at your own risk!!!",
|
|
800
|
+
stacklevel=2,
|
|
801
|
+
)
|
|
802
|
+
|
|
745
803
|
# Handle shuffle_method defaults for streaming executor
|
|
746
804
|
if self.shuffle_method is None:
|
|
747
805
|
if self.cluster == "distributed" and rapidsmpf_distributed_available():
|
|
@@ -787,6 +845,11 @@ class StreamingExecutor:
|
|
|
787
845
|
)
|
|
788
846
|
object.__setattr__(self, "cluster", Cluster(self.cluster))
|
|
789
847
|
object.__setattr__(self, "shuffle_method", ShuffleMethod(self.shuffle_method))
|
|
848
|
+
object.__setattr__(
|
|
849
|
+
self,
|
|
850
|
+
"shuffler_insertion_method",
|
|
851
|
+
ShufflerInsertionMethod(self.shuffler_insertion_method),
|
|
852
|
+
)
|
|
790
853
|
|
|
791
854
|
# Make sure stats_planning is a dataclass
|
|
792
855
|
if isinstance(self.stats_planning, dict):
|
|
@@ -822,6 +885,8 @@ class StreamingExecutor:
|
|
|
822
885
|
raise TypeError("sink_to_directory must be bool")
|
|
823
886
|
if not isinstance(self.client_device_threshold, float):
|
|
824
887
|
raise TypeError("client_device_threshold must be a float")
|
|
888
|
+
if not isinstance(self.max_io_threads, int):
|
|
889
|
+
raise TypeError("max_io_threads must be an int")
|
|
825
890
|
|
|
826
891
|
# RapidsMPF spill is only supported for distributed clusters for now.
|
|
827
892
|
# This is because the spilling API is still within the RMPF-Dask integration.
|
|
@@ -988,6 +1053,8 @@ class ConfigOptions:
|
|
|
988
1053
|
user_executor = os.environ.get(f"{env_prefix}__EXECUTOR", "streaming")
|
|
989
1054
|
user_executor_options = engine.config.get("executor_options", {})
|
|
990
1055
|
user_parquet_options = engine.config.get("parquet_options", {})
|
|
1056
|
+
if user_parquet_options is None:
|
|
1057
|
+
user_parquet_options = {}
|
|
991
1058
|
# This is set in polars, and so can't be overridden by the environment
|
|
992
1059
|
user_raise_on_fail = engine.config.get("raise_on_fail", False)
|
|
993
1060
|
user_memory_resource_config = engine.config.get("memory_resource_config", None)
|
cudf_polars/utils/versions.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES.
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
"""Version utilities so that cudf_polars supports a range of polars versions."""
|
|
@@ -11,14 +11,14 @@ from packaging.version import parse
|
|
|
11
11
|
from polars import __version__
|
|
12
12
|
|
|
13
13
|
POLARS_VERSION = parse(__version__)
|
|
14
|
-
POLARS_LOWER_BOUND = parse("1.
|
|
15
|
-
POLARS_VERSION_LT_130 = POLARS_VERSION < parse("1.30")
|
|
14
|
+
POLARS_LOWER_BOUND = parse("1.30")
|
|
16
15
|
POLARS_VERSION_LT_131 = POLARS_VERSION < parse("1.31")
|
|
17
16
|
POLARS_VERSION_LT_132 = POLARS_VERSION < parse("1.32")
|
|
18
17
|
POLARS_VERSION_LT_1321 = POLARS_VERSION < parse("1.32.1")
|
|
19
18
|
POLARS_VERSION_LT_1323 = POLARS_VERSION < parse("1.32.3")
|
|
20
19
|
POLARS_VERSION_LT_133 = POLARS_VERSION < parse("1.33.0")
|
|
21
20
|
POLARS_VERSION_LT_134 = POLARS_VERSION < parse("1.34.0")
|
|
21
|
+
POLARS_VERSION_LT_135 = POLARS_VERSION < parse("1.35.0")
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def _ensure_polars_version() -> None:
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cudf-polars-cu13
|
|
3
|
-
Version:
|
|
3
|
+
Version: 26.2.0
|
|
4
4
|
Summary: Executor for polars using cudf
|
|
5
5
|
Author: NVIDIA Corporation
|
|
6
|
-
License: Apache-2.0
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/rapidsai/cudf
|
|
8
8
|
Classifier: Intended Audience :: Developers
|
|
9
9
|
Classifier: Topic :: Database
|
|
10
10
|
Classifier: Topic :: Scientific/Engineering
|
|
11
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
11
|
Classifier: Programming Language :: Python
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -19,25 +18,25 @@ Description-Content-Type: text/markdown
|
|
|
19
18
|
License-File: LICENSE
|
|
20
19
|
Requires-Dist: nvidia-ml-py>=12
|
|
21
20
|
Requires-Dist: packaging
|
|
22
|
-
Requires-Dist: polars<1.
|
|
23
|
-
Requires-Dist: pylibcudf-cu13==
|
|
21
|
+
Requires-Dist: polars<1.36,>=1.30
|
|
22
|
+
Requires-Dist: pylibcudf-cu13==26.2.*
|
|
24
23
|
Requires-Dist: typing-extensions; python_version < "3.11"
|
|
25
24
|
Provides-Extra: test
|
|
26
|
-
Requires-Dist: dask-cuda==
|
|
27
|
-
Requires-Dist: numpy<3.
|
|
25
|
+
Requires-Dist: dask-cuda==26.2.*; extra == "test"
|
|
26
|
+
Requires-Dist: numpy<3.0,>=1.23; extra == "test"
|
|
27
|
+
Requires-Dist: pytest; extra == "test"
|
|
28
28
|
Requires-Dist: pytest-cov; extra == "test"
|
|
29
29
|
Requires-Dist: pytest-httpserver; extra == "test"
|
|
30
30
|
Requires-Dist: pytest-xdist; extra == "test"
|
|
31
|
-
Requires-Dist: pytest<9.0.0a0; extra == "test"
|
|
32
31
|
Requires-Dist: rich; extra == "test"
|
|
33
32
|
Requires-Dist: structlog; extra == "test"
|
|
34
33
|
Provides-Extra: experimental
|
|
35
34
|
Requires-Dist: nvidia-ml-py>=12; extra == "experimental"
|
|
36
|
-
Requires-Dist: rapids-dask-dependency==
|
|
35
|
+
Requires-Dist: rapids-dask-dependency==26.2.*; extra == "experimental"
|
|
37
36
|
Provides-Extra: trace
|
|
38
37
|
Requires-Dist: structlog; extra == "trace"
|
|
39
38
|
Provides-Extra: rapidsmpf
|
|
40
|
-
Requires-Dist: rapidsmpf-cu13==
|
|
39
|
+
Requires-Dist: rapidsmpf-cu13==26.2.*; extra == "rapidsmpf"
|
|
41
40
|
Dynamic: license-file
|
|
42
41
|
|
|
43
42
|
# <div align="left"><img src="img/rapids_logo.png" width="90px"/> cuDF - A GPU-accelerated DataFrame library for tabular data processing</div>
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
cudf_polars/GIT_COMMIT,sha256=
|
|
2
|
-
cudf_polars/VERSION,sha256=
|
|
1
|
+
cudf_polars/GIT_COMMIT,sha256=MxmQ_0zyU_MmTFE3sRdzXEdlNmw7bVkRmODcB3umgYw,41
|
|
2
|
+
cudf_polars/VERSION,sha256=b7npT_ALAM2FnuWaCswzvHtyf4qdm14S3swNXLSxPcs,9
|
|
3
3
|
cudf_polars/__init__.py,sha256=fSTx5nmqajdwp7qvP4PnYL6wZN9-k1fKB43NkcZlHwk,740
|
|
4
4
|
cudf_polars/_version.py,sha256=kj5Ir4dxZRR-k2k8mWUDJHiGpE8_ZcTNzt_kMZxcFRA,528
|
|
5
|
-
cudf_polars/callback.py,sha256=
|
|
5
|
+
cudf_polars/callback.py,sha256=4MitKua-OGWqCkGTJ9sh1YYyBwlSWjn98l4eTNf_tQs,11780
|
|
6
6
|
cudf_polars/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
cudf_polars/containers/__init__.py,sha256=EIiTQKXBTwCmbsUNotYImSi3wq31pX55hYFwojygcyI,518
|
|
8
|
-
cudf_polars/containers/column.py,sha256=
|
|
8
|
+
cudf_polars/containers/column.py,sha256=8L6uWupN3nC9Mcnz_I2pRTUhJn_YLMnf-4ohW7egPmg,17654
|
|
9
9
|
cudf_polars/containers/dataframe.py,sha256=TVNuoJ-hnEfnApLuva1SkuMHhqBuLg7QrJoeYcsRL4U,14306
|
|
10
10
|
cudf_polars/containers/datatype.py,sha256=1ELPhgNoPxQGdXhcjqvYyMQaQ6kFYMYy5xSXkrzRniA,9310
|
|
11
11
|
cudf_polars/dsl/__init__.py,sha256=bYwYnqmqINMgwnkJ22EnXMlHviLolPaMgQ8QqoZL3YE,244
|
|
12
12
|
cudf_polars/dsl/expr.py,sha256=g64rrg-frc1ndqMweyczuFJzWJ71rk2v8umyEg3DQ1U,1904
|
|
13
|
-
cudf_polars/dsl/ir.py,sha256=
|
|
13
|
+
cudf_polars/dsl/ir.py,sha256=Qbnx5F4XDpYlABQOkd8XjWX5r9OsfV8ALrE0D4EPXrE,117611
|
|
14
14
|
cudf_polars/dsl/nodebase.py,sha256=QbZHK9aUbdiE-Mp_NkkiuNvCnD8E3xzd9-GYKR8UqcM,4777
|
|
15
15
|
cudf_polars/dsl/to_ast.py,sha256=30ms4laf8aQVhgaR9A_krpTABlXt7LLrA3Bv5rqO3I4,14061
|
|
16
16
|
cudf_polars/dsl/tracing.py,sha256=bJz1-45-sD2_Dvk3wwaJEvS-c4_zROaXbQT6SmOqGLk,6470
|
|
17
|
-
cudf_polars/dsl/translate.py,sha256=
|
|
17
|
+
cudf_polars/dsl/translate.py,sha256=ou_KOlEMlAjTrkgkVEcLt_gUUldyZx4FgH9XDMvSc5k,38003
|
|
18
18
|
cudf_polars/dsl/traversal.py,sha256=dzOHVaRj0wTYQd5h-JnjQrj4DffEfq1gdENYcDk5Eis,5729
|
|
19
19
|
cudf_polars/dsl/expressions/__init__.py,sha256=uj1a4BzrDVAjOgP6FKKtnvR5elF4ksUj1RhkLTZoS1k,224
|
|
20
20
|
cudf_polars/dsl/expressions/aggregation.py,sha256=Fx7n5i2yYZZqrU_x01_8O7IPBL5fbXJTdvHmjXUnZW4,10124
|
|
21
21
|
cudf_polars/dsl/expressions/base.py,sha256=Fq_MCz2LOMm6eekLJQ1jwEsAvYuouFXzrhIpxIRs4ak,7976
|
|
22
|
-
cudf_polars/dsl/expressions/binaryop.py,sha256
|
|
23
|
-
cudf_polars/dsl/expressions/boolean.py,sha256=
|
|
22
|
+
cudf_polars/dsl/expressions/binaryop.py,sha256=xFzNNYAuiP4ZnA57W_DEhIvILvVXJD-f__lXFrQVsww,5766
|
|
23
|
+
cudf_polars/dsl/expressions/boolean.py,sha256=NzprlF2hSIoVMxQ9WATzdEXuptULxikLU1k1VHwR8I8,14796
|
|
24
24
|
cudf_polars/dsl/expressions/datetime.py,sha256=3-O9iIgt_7oa9b-S8_K6SV4v7sppK8AfHpjDOWcI--8,11293
|
|
25
25
|
cudf_polars/dsl/expressions/literal.py,sha256=DsVEDgM0Qgszx2r0Cx-dLhv_u8Mid29AonFRKR6ozts,3351
|
|
26
26
|
cudf_polars/dsl/expressions/rolling.py,sha256=YYibEkrsvwYOQRp1MF4q7bKiIm62w-eQ8eAUIU1_518,35044
|
|
27
|
-
cudf_polars/dsl/expressions/selection.py,sha256=
|
|
27
|
+
cudf_polars/dsl/expressions/selection.py,sha256=RhmebC0MUT2fLji21zXR2eM8u61fDF1xwzXnuLSgcuY,2674
|
|
28
28
|
cudf_polars/dsl/expressions/slicing.py,sha256=nLLv3TP_aZTK6l6T8L8jyz6DU9VKMUM241jcQUyoY74,1203
|
|
29
29
|
cudf_polars/dsl/expressions/sorting.py,sha256=6XO0JktGGUJujADXrZoSBeJGDk80vSOCzboB7jOlL5Q,2789
|
|
30
|
-
cudf_polars/dsl/expressions/string.py,sha256=
|
|
30
|
+
cudf_polars/dsl/expressions/string.py,sha256=RG1vgITaHmKzp4UxgZ4b6UC4FbVfZknUBsgytU9PFbU,43647
|
|
31
31
|
cudf_polars/dsl/expressions/struct.py,sha256=6gUsV-5wnGRg4aYtO_9MAteU9iNcqsg7Xrc7FeYF3oE,5058
|
|
32
|
-
cudf_polars/dsl/expressions/ternary.py,sha256=
|
|
33
|
-
cudf_polars/dsl/expressions/unary.py,sha256=
|
|
32
|
+
cudf_polars/dsl/expressions/ternary.py,sha256=0saTAwYsYZKdnjPfrDBUyoPKbAYs-HcBkHUVqeVYyOA,2380
|
|
33
|
+
cudf_polars/dsl/expressions/unary.py,sha256=WOFWAPfNx7SsprqJaKaFUSYIMCGjD6Ud7U06kTfjScU,22542
|
|
34
34
|
cudf_polars/dsl/utils/__init__.py,sha256=JL26nlMAbcdL8ZE4iXRrMOEVSTEZU1P5y9WvxTEDdnY,199
|
|
35
|
-
cudf_polars/dsl/utils/aggregations.py,sha256=
|
|
35
|
+
cudf_polars/dsl/utils/aggregations.py,sha256=qD9AlJLlAXhGmDjoPlxH4Va7DZ2A5VRPnHSvrefyf0E,18214
|
|
36
36
|
cudf_polars/dsl/utils/groupby.py,sha256=PhkzM62N8b9qjJs8910IewnTbn_Qx2OiMPXgqMo1yDI,2621
|
|
37
37
|
cudf_polars/dsl/utils/naming.py,sha256=ydp_BYYAt3mG7JHfi9Snp3dDNzdQZD6F2sAMEmT4OYA,737
|
|
38
38
|
cudf_polars/dsl/utils/replace.py,sha256=8ns_TpbG1Hh8ZJejRyGA6KCu5t-TvUaM009AO8J98vc,1612
|
|
@@ -40,28 +40,28 @@ cudf_polars/dsl/utils/reshape.py,sha256=lU0ndZHEeq6UX__VlJ4jEDHh41n45M6KMAFljidZ
|
|
|
40
40
|
cudf_polars/dsl/utils/rolling.py,sha256=R6RG-aPEr9deTJQwi8HYgOnCPeWkA6uT33ZjQTfhyPM,3734
|
|
41
41
|
cudf_polars/dsl/utils/windows.py,sha256=d6gXPEul8EI-yMhqcrEnhaMhwV7Bc5g4kiP49qfOpSE,5855
|
|
42
42
|
cudf_polars/experimental/__init__.py,sha256=S2oI2K__woyPQAAlFMOo6RTMtdfIZxmzzAO92VtJgP4,256
|
|
43
|
-
cudf_polars/experimental/base.py,sha256=
|
|
43
|
+
cudf_polars/experimental/base.py,sha256=oqYDrIXPHAi9RxTR8-UnZv9M1rf8cEK3S0MtbZfQFNg,13368
|
|
44
44
|
cudf_polars/experimental/dask_registers.py,sha256=M_LPneaKjVM4tHLrMAmvHVSF4DHMPzwx6ICvHFFPW_w,8514
|
|
45
45
|
cudf_polars/experimental/dispatch.py,sha256=guwWQQJHY2Iy04DS7MK4JghBZq9n4suZ1Aj-SOUWNG4,4068
|
|
46
|
-
cudf_polars/experimental/distinct.py,sha256=
|
|
47
|
-
cudf_polars/experimental/explain.py,sha256=
|
|
48
|
-
cudf_polars/experimental/expressions.py,sha256=
|
|
49
|
-
cudf_polars/experimental/groupby.py,sha256=
|
|
50
|
-
cudf_polars/experimental/io.py,sha256=
|
|
51
|
-
cudf_polars/experimental/join.py,sha256=
|
|
52
|
-
cudf_polars/experimental/parallel.py,sha256=
|
|
46
|
+
cudf_polars/experimental/distinct.py,sha256=PRIC89PNT3yIjBh5Sm5SEasqB1Gx8FPxFP8f-lUMgic,7108
|
|
47
|
+
cudf_polars/experimental/explain.py,sha256=iRNRDPTPpVnJIIoQ6ol7piamap6HWYn2FpAR4LvvX7Q,5246
|
|
48
|
+
cudf_polars/experimental/expressions.py,sha256=AeXl6e8vuA1-c4kNMRe43Aku6MjYM48lbya3EsOnX-8,19169
|
|
49
|
+
cudf_polars/experimental/groupby.py,sha256=ji9Ow42jqIoRUP517Dbiv1DfDfdeu-wfbziN5faUyUY,11861
|
|
50
|
+
cudf_polars/experimental/io.py,sha256=KK9pzrDNW46yjULvrOl1AZ_bwGRJ3RgABDML6m12bfU,33219
|
|
51
|
+
cudf_polars/experimental/join.py,sha256=JEi1_aRTzAAw3fAwX3KSDB2oGBsw9w6NF35RyM12IPo,14141
|
|
52
|
+
cudf_polars/experimental/parallel.py,sha256=Kt0OG0mEJPYlufgqwIeg61-c_xuRQyMhmoy0Wj4g5tE,14254
|
|
53
53
|
cudf_polars/experimental/repartition.py,sha256=Fq2XG60c0jBvrttnpMQJWoF9VOPxE7gPgbivCJt_wX0,2307
|
|
54
54
|
cudf_polars/experimental/scheduler.py,sha256=ieL7bdxTqlmd8MO37JCaCoqhyDRZNTLnPFUme3hv6SQ,4203
|
|
55
55
|
cudf_polars/experimental/select.py,sha256=qq1fOfZ06L-ovO8r7r8XYDkUxR3q1PsZt8z3SdbjamI,12346
|
|
56
|
-
cudf_polars/experimental/shuffle.py,sha256=
|
|
57
|
-
cudf_polars/experimental/sort.py,sha256=
|
|
58
|
-
cudf_polars/experimental/spilling.py,sha256=
|
|
56
|
+
cudf_polars/experimental/shuffle.py,sha256=l4SDBZCQ_O5LY76IZmfqRQ5USZ2cK55Xp1YMzZ3LzBA,12611
|
|
57
|
+
cudf_polars/experimental/sort.py,sha256=5sRdZOXpGfI8As-9ZoX2j97xAy4gPkB-rc3CDlHAS8M,23163
|
|
58
|
+
cudf_polars/experimental/spilling.py,sha256=mWD6guiav1fBfoIQoqZjIAdpYiXnx3-NkYUugMEY2qc,4255
|
|
59
59
|
cudf_polars/experimental/statistics.py,sha256=frazwJucOGt-mxyjkbXoIE64d7lt8qODJ9TEe7UmLJE,29365
|
|
60
60
|
cudf_polars/experimental/utils.py,sha256=Dir5oQkPxJUPBVnOBkDGaBg26fEEQEwnADeWZ5lDy6o,6550
|
|
61
61
|
cudf_polars/experimental/benchmarks/__init__.py,sha256=XiT8hL6V9Ns_SSXDXkzoSWlXIo6aFLDXUHLLWch23Ok,149
|
|
62
62
|
cudf_polars/experimental/benchmarks/pdsds.py,sha256=zVB6MBR5Gni5U1O3PNkqktu0Rwe_x_reLcuVjYs5axY,2880
|
|
63
|
-
cudf_polars/experimental/benchmarks/pdsh.py,sha256=
|
|
64
|
-
cudf_polars/experimental/benchmarks/utils.py,sha256
|
|
63
|
+
cudf_polars/experimental/benchmarks/pdsh.py,sha256=5nWp1mxA2hz4LcgWcBb-gB6JrOBI87uR8igaNuNMm44,56209
|
|
64
|
+
cudf_polars/experimental/benchmarks/utils.py,sha256=-QafsXJiYFChGSbRvJTN-klenJvJEmpX260DLTx-moU,46586
|
|
65
65
|
cudf_polars/experimental/benchmarks/pdsds_queries/__init__.py,sha256=pkjkRg2qJCMbhBpD9cIxcjsgMOZXXliWJPZIgZpcUQA,151
|
|
66
66
|
cudf_polars/experimental/benchmarks/pdsds_queries/q1.py,sha256=NTvgxMJUB9xH2llo6_SWO7JQNwxEoK9nQ-mnRCsYf9Y,3100
|
|
67
67
|
cudf_polars/experimental/benchmarks/pdsds_queries/q10.py,sha256=SBDDIf-BfoPTqHCi4jIpgLJXkA99UcZ-NhAPhE1D2hA,7797
|
|
@@ -74,31 +74,35 @@ cudf_polars/experimental/benchmarks/pdsds_queries/q7.py,sha256=gWAuGaDQbdCn6Cofb
|
|
|
74
74
|
cudf_polars/experimental/benchmarks/pdsds_queries/q8.py,sha256=62qZn1RFhS3T-GL9bBY2cIR3kbVxgoYdY9n4en309EU,9546
|
|
75
75
|
cudf_polars/experimental/benchmarks/pdsds_queries/q9.py,sha256=_MyLgknIVUK1U1x12bsM9Lrhs-ZMKuSOwMc9yu0ddYY,4723
|
|
76
76
|
cudf_polars/experimental/rapidsmpf/__init__.py,sha256=2RRG6vmbR1XNZ8-EEEfm1CmgN8eOic6Z-nNWYyYCNvE,220
|
|
77
|
-
cudf_polars/experimental/rapidsmpf/core.py,sha256
|
|
78
|
-
cudf_polars/experimental/rapidsmpf/
|
|
79
|
-
cudf_polars/experimental/rapidsmpf/
|
|
80
|
-
cudf_polars/experimental/rapidsmpf/
|
|
77
|
+
cudf_polars/experimental/rapidsmpf/core.py,sha256=gGJsGJCPJCaNFQpaj5SAypVbYjZ2PNHYjpD7eJ7Vt2Q,16756
|
|
78
|
+
cudf_polars/experimental/rapidsmpf/dask.py,sha256=AqoIA6owG_OHOeCeAyyiz6tv6v0KAvvqT8pGZau8uXc,5132
|
|
79
|
+
cudf_polars/experimental/rapidsmpf/dispatch.py,sha256=FprIqvhpxgQTGffXVkdpDhoZAcz78OVWNeD8kddp7M0,4021
|
|
80
|
+
cudf_polars/experimental/rapidsmpf/io.py,sha256=ou9_lunDl9uQAsEAZYv1B-dBLjxIj8TKMChcSpU50sE,23705
|
|
81
|
+
cudf_polars/experimental/rapidsmpf/join.py,sha256=jGVvgMMQseb7w6lxwWYEaGOUBA927_aLd3gSHgnfxHA,11573
|
|
81
82
|
cudf_polars/experimental/rapidsmpf/lower.py,sha256=_CASAuvnVCdPAj2XP919A9v-18vvfME5Jtq-dscnhkQ,2694
|
|
82
|
-
cudf_polars/experimental/rapidsmpf/nodes.py,sha256=
|
|
83
|
-
cudf_polars/experimental/rapidsmpf/repartition.py,sha256=
|
|
84
|
-
cudf_polars/experimental/rapidsmpf/
|
|
85
|
-
cudf_polars/experimental/rapidsmpf/
|
|
86
|
-
cudf_polars/experimental/rapidsmpf/
|
|
83
|
+
cudf_polars/experimental/rapidsmpf/nodes.py,sha256=Z08BnidQWva48BLxn3A2Qby7PQb_IGyLkOeHvssqBPc,26759
|
|
84
|
+
cudf_polars/experimental/rapidsmpf/repartition.py,sha256=66gNOtLKx864S63wUkXiiyz1vVfqCVS_aiTLMVLo0uM,7733
|
|
85
|
+
cudf_polars/experimental/rapidsmpf/union.py,sha256=iw_82sA-FDkd_mDXqCJS2V4Chgcb-aLet50xG8uykKE,3366
|
|
86
|
+
cudf_polars/experimental/rapidsmpf/utils.py,sha256=fFN8I_gXn-7fnIa5Ri6JEQ177Clyj110dQbDWP52i94,11050
|
|
87
|
+
cudf_polars/experimental/rapidsmpf/collectives/__init__.py,sha256=BIz1p2ejG1D1B3pxs5kkFzHwDABGG9gG0ya27LXhvoY,325
|
|
88
|
+
cudf_polars/experimental/rapidsmpf/collectives/allgather.py,sha256=X7iDRVB3kAmNe_Vbc2yh2S_4GyW__BLoQ3eKuOtSIHo,2557
|
|
89
|
+
cudf_polars/experimental/rapidsmpf/collectives/common.py,sha256=NVJponygUrIKn-VE3cjaKlw680sn-j8V-p0g1-tde6M,2913
|
|
90
|
+
cudf_polars/experimental/rapidsmpf/collectives/shuffle.py,sha256=tIU26Ym701pJLT3hR_OIzJOkrt3mGVXGHSqi_-Gy-ng,7814
|
|
87
91
|
cudf_polars/testing/__init__.py,sha256=0MnlTjkTEqkSpL5GdMhQf4uXOaQwNrzgEJCZKa5FnL4,219
|
|
88
92
|
cudf_polars/testing/asserts.py,sha256=rI8fNQTp2GMiOY2oEn1qz50rUArlFCX5D-kb5uWKdjA,15566
|
|
89
93
|
cudf_polars/testing/io.py,sha256=-jxBzK-jURja5_f2Oha24yHRJpV7oIUScCQyvranH0Q,3902
|
|
90
|
-
cudf_polars/testing/plugin.py,sha256=
|
|
94
|
+
cudf_polars/testing/plugin.py,sha256=sJkl9M0I7oIDv0KtJKugIX2Eo8wAVnbMrAoE_n3yNm8,28992
|
|
91
95
|
cudf_polars/typing/__init__.py,sha256=-M2I4vZ13VL3vB7ONgGt9D9Bu4DBlCgDBKIzTeFkZo4,6345
|
|
92
96
|
cudf_polars/utils/__init__.py,sha256=urdV5MUIneU8Dn6pt1db5GkDG0oY4NsFD0Uhl3j98l8,195
|
|
93
|
-
cudf_polars/utils/config.py,sha256=
|
|
97
|
+
cudf_polars/utils/config.py,sha256=7iLWgkaVeF8f5CirlsCkwmCxNrFUPNYrPA9Z5VT-Wx4,44661
|
|
94
98
|
cudf_polars/utils/conversion.py,sha256=k_apLbSR-MiYYlQBGrzYOInuvcbfSi-il-o9nkovdXQ,1042
|
|
95
99
|
cudf_polars/utils/cuda_stream.py,sha256=Nky4ogx0HpBPdR83XT_s-CK7J0xJ4AXuXBzCyZ076nE,1821
|
|
96
100
|
cudf_polars/utils/dtypes.py,sha256=yktzqBLfbv-zve1-iS_XsGZD1R6GXgXV_grZ8m7KidM,3358
|
|
97
101
|
cudf_polars/utils/sorting.py,sha256=Mqb_KLsYnKU8p1dDan2mtlIQl65RqwM78OlUi-_Jj0k,1725
|
|
98
102
|
cudf_polars/utils/timer.py,sha256=KqcXqOcbovsj6KDCwaxl70baQXjuod43rABrpQkE78M,1005
|
|
99
|
-
cudf_polars/utils/versions.py,sha256=
|
|
100
|
-
cudf_polars_cu13-
|
|
101
|
-
cudf_polars_cu13-
|
|
102
|
-
cudf_polars_cu13-
|
|
103
|
-
cudf_polars_cu13-
|
|
104
|
-
cudf_polars_cu13-
|
|
103
|
+
cudf_polars/utils/versions.py,sha256=4XcfNTfYY3GzC7zrhx7gpunyWQCRbunzwL6rEXjqy4o,1020
|
|
104
|
+
cudf_polars_cu13-26.2.0.dist-info/licenses/LICENSE,sha256=4YCpjWCbYMkMQFW47JXsorZLOaP957HwmP6oHW2_ngM,11348
|
|
105
|
+
cudf_polars_cu13-26.2.0.dist-info/METADATA,sha256=1vETP8_HE42i1nQU3Jee9GB3as6EhOpjAH06Z6GlF3k,6624
|
|
106
|
+
cudf_polars_cu13-26.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
107
|
+
cudf_polars_cu13-26.2.0.dist-info/top_level.txt,sha256=w2bOa7MpuyapYgZh480Znh4UzX7rSWlFcYR1Yo6QIPs,12
|
|
108
|
+
cudf_polars_cu13-26.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|