Skip to content

Bump polars upper bound to <1.40 - #22048

Merged
rapids-bot[bot] merged 58 commits into
NVIDIA:release/26.06from
Matt711:imp/polars/bump-polars-1.40
May 18, 2026
Merged

Bump polars upper bound to <1.40#22048
rapids-bot[bot] merged 58 commits into
NVIDIA:release/26.06from
Matt711:imp/polars/bump-polars-1.40

Conversation

@Matt711

@Matt711 Matt711 commented Apr 7, 2026

Copy link
Copy Markdown
Member

Description

Updated cudf-polars to support Polars 1.39.

Summary:

  • Dependency pin updated across conda envs, the recipe, dependencies.yaml, and pyproject.toml. New POLARS_VERSION_LT_139 flag gates version specific code.
  • Rolling expressions: polars 1.39 makes pl.col(...).rolling(...) accessible again via AExpr::Rolling. A new _translate_rolling handles it, registered only when the node type exists. Rolling tests use a single skip_rolling_expr_136_to_138 marker.
  • HConcat strict mode: added a strict slot on the HConcat IR that raises pl.exceptions.ShapeError on height mismatch, threaded through every construction site.
  • IsBetween Decimal vs Float: new _align_decimal_float_for_comparison casts Decimal to Float64 on 1.39+, since polars no longer inserts that cast and libcudf would otherwise give wrong results.
  • set_sorted: options shape changed from (asc_str,) to (descending_bool, ...); translator branches on type.
  • Dynamic predicates: new _is_dynamic_pred helper makes Scan and Filter skip predicates that raise "dynamic_pred".
  • IR version ceiling raised from (12, 1) to (12, 2). Sink format check now includes "Json", and a precedence bug in _sink_to_file is fixed.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@Matt711 Matt711 added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Apr 7, 2026
@Matt711
Matt711 requested review from a team as code owners April 7, 2026 22:32
@Matt711
Matt711 requested review from bdice and mroeschke April 7, 2026 22:32
@Matt711
Matt711 marked this pull request as draft April 7, 2026 22:32
@github-actions github-actions Bot added Python Affects Python cuDF API. cudf-polars Issues specific to cudf-polars labels Apr 7, 2026
@copy-pr-bot

copy-pr-bot Bot commented Apr 7, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@GPUtester GPUtester moved this to In Progress in cuDF Python Apr 7, 2026
@Matt711

Matt711 commented Apr 7, 2026

Copy link
Copy Markdown
Member Author

Please Do Not Review. The PR isn't ready yet

@Matt711

Matt711 commented Apr 7, 2026

Copy link
Copy Markdown
Member Author

/ok to test 714fefe

@Matt711 Matt711 changed the title [WIP] Pin polars >=1.38 and <1.40 [WIP] Pin polars >=1.39 and <1.40 Apr 7, 2026
@Matt711 Matt711 changed the title [WIP] Pin polars >=1.39 and <1.40 Pin polars >=1.39 and <1.40 Apr 7, 2026
@Matt711

Matt711 commented Apr 7, 2026

Copy link
Copy Markdown
Member Author

/ok to test fa3c810

@mroeschke

Copy link
Copy Markdown
Contributor

Wow this is a pretty significant bump of our minimum version from 1.30 to 1.39 (appears just released last month). Is the idea just to guarantee that some Polars features/fixes are available?

@Matt711

Matt711 commented Apr 8, 2026

Copy link
Copy Markdown
Member Author

Wow this is a pretty significant bump of our minimum version from 1.30 to 1.39 (appears just released last month). Is the idea just to guarantee that some Polars features/fixes are available?

Yeah it's a big bump but I think it makes sense to do:

  • Removes a lot of ugly workarounds that I'd rather us not maintain anymore.
  • Polars will make multiple releases by the time we release 26.04, so 1.39 will probably ended up being our minimum (or close to it anyway)
  • 26.02 supported a wide number of polars versions (probably too many IMO). We want to target the last 5 or so (rule of thumb)
  • This gives me a cleaner translation layer, so I can start working on a MVP of the rust translation layer :)

But if folks are strong -1 to this big of a jump, I can relax the minimum to 1.37 or so.

@Matt711

Matt711 commented Apr 8, 2026

Copy link
Copy Markdown
Member Author

/ok to test fbb4e57

@mroeschke

Copy link
Copy Markdown
Contributor

Agreed that our supported window has grown unwieldy.

Looking at Polars versions in default cloud environment data (~March 2026), 1.39 may be a little aggressive

AzureML: 1.38.1
Colab: 1.35.1
Kaggle: 1.21.0 (can probably ignore this one)

@mroeschke

Copy link
Copy Markdown
Contributor

/ok to test d2a018d

@mroeschke

Copy link
Copy Markdown
Contributor

/ok to test 445b5ac

@mroeschke
mroeschke marked this pull request as ready for review May 15, 2026 23:49
@mroeschke
mroeschke requested a review from a team as a code owner May 15, 2026 23:49
@coderabbitai

coderabbitai Bot commented May 15, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR broadens Polars upper-bound pins to <1.40, adds POLARS_VERSION_LT_139, introduces HConcat strict checking, gates translation/rolling logic for newer Polars, updates experimental HConcat wiring, simplifies test harness expected-fail entries, and refactors/extends tests to cover version-dependent behavior.

Changes

Polars 1.39 version support

Layer / File(s) Summary
Dependency version bounds update
conda/environments/*, conda/recipes/cudf-polars/recipe.yaml, dependencies.yaml, python/cudf_polars/pyproject.toml
Broadened Polars upper bound from <1.39 to <1.40 across environment files, recipe, dependency manifest, and Python project.
HConcat IR: strict parameter and evaluation
python/cudf_polars/cudf_polars/dsl/ir.py
Add strict: bool to HConcat constructor/metadata and enforce row-height equality (raise polars.exceptions.ShapeError) when strict is true and not broadcasting.
Version guard constant
python/cudf_polars/cudf_polars/utils/versions.py
Add POLARS_VERSION_LT_139 for Polars < 1.39 checks.
Translation layer enhancements and guards
python/cudf_polars/cudf_polars/dsl/translate.py
Add dynamic-predicate detection, Decimal/Float alignment for comparisons, bump unsupported IR threshold to >=(12,2), add dedicated Rolling translation registration, include Json sink kind, and wire HConcat strictness based on Polars version.
Rolling expression version-gated logic
python/cudf_polars/cudf_polars/dsl/expressions/rolling.py
Gate var aggregation special-case and rolling-aggregation validation with combined POLARS_VERSION_LT_136/POLARS_VERSION_LT_139 predicates.
set_sorted option parsing
python/cudf_polars/cudf_polars/dsl/expressions/unary.py
Parse options[0] for set_sorted as either a string mode or a tuple-like (descending boolean), map to plc.types.Order, and handle null ordering accordingly.
Experimental HConcat wiring updates
python/cudf_polars/cudf_polars/experimental/expressions.py, python/cudf_polars/cudf_polars/experimental/select.py, python/cudf_polars/cudf_polars/experimental/io.py
Pass explicit strict=False into HConcat calls in experimental code paths and fix JSON/NDJSON kind conditional parenthesization.
Test harness: inject_gpu_engine updates
python/cudf_polars/cudf_polars/testing/inject_gpu_engine.py
Retype EXPECTED_FAILURES to Mapping[str,str], extend expected failures/skips for concat/window/scan metrics, and simplify xfail marking lookup.
Rolling window test refactoring
python/cudf_polars/tests/expressions/test_rolling.py, python/cudf_polars/tests/experimental/test_rolling.py, python/cudf_polars/tests/test_window_functions.py
Centralize skip marker for Polars 1.36–1.38 rolling-expression gating, remove request-based xfail patterns, add GPU-equality rolling tests, and simplify signatures.
New and updated tests for behavior changes
python/cudf_parols/tests/..., python/cudf_polars/tests/test_hconcat.py, python/cudf_polars/tests/test_parquet_filters.py
Add tests: test_boolean_isbetween_decimal_float, test_setsorted_expr_with_nulls, test_hconcat_strict_different_heights, test_parquet_filter_ne_missing; update scan/window test decorators and xfail/skip reasons.
Scan and window test gating updates
python/cudf_polars/tests/test_scan.py, python/cudf_polars/tests/test_window_functions.py
Import and use POLARS_VERSION_LT_139 to adjust skip/xfail decorators and reason strings for remote NDJSON, duplicate row_index, and LazyFrame height behaviors.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • rapidsai/cudf#22459: Both PRs modify Polars version handling and dependency pins; this PR adds a new <1.39 guard while that PR adjusts minimum version constraints.

Suggested reviewers

  • bdice
  • mroeschke
  • TomAugspurger
  • rjzamora
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 23.73% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The pull request title 'Bump polars upper bound to <1.40' clearly and concisely summarizes the main change in the changeset - updating the Polars upper bound constraint across multiple environment files and configuration files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The PR description clearly outlines all major changes: dependency pins, rolling expressions support, HConcat strict mode, IsBetween Decimal/Float handling, set_sorted changes, dynamic predicates, and IR version ceiling updates.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
python/cudf_polars/cudf_polars/dsl/translate.py (1)

274-282: ⚡ Quick win

Avoid keying dynamic_pred detection off a private exception string.

Matching str(e) == "dynamic_pred" makes this path depend on a non-public Polars message. A patch-level Polars change would silently turn sorted-head plans back into translation failures. Please back this with a regression test or switch to a typed/symbolic check if Polars exposes one.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@python/cudf_polars/cudf_polars/dsl/translate.py` around lines 274 - 282, The
code in _is_dynamic_pred currently relies on string-matching the exception
message from visitor.view_expression(expr_ir.node); replace this fragile check
with a typed/symbolic check: catch the specific Polars exception class (use the
appropriate Polars exception type exposed by your Polars version instead of
Exception) or, if Polars exposes a sentinel attribute on the exception (e.g.,
e.code or e.kind), test that property rather than str(e); update the except
clause to "except <PolarsExceptionType> as e" and check the typed property, and
add a regression test: call _is_dynamic_pred with a known dynamic predicate plan
and assert it returns True so future Polars message changes will fail the test
rather than silently break translation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/cudf_polars/cudf_polars/testing/inject_gpu_engine.py`:
- Line 450: The streaming expected-failures mapping contains a typo: the key
"tests/unit/sql/test_window_functions.py::test_window_multiple_named_window"
(singular) should match the non-streaming key
"tests/unit/sql/test_window_functions.py::test_window_multiple_named_windows"
(plural); update the key in the mapping to use the plural
"test_window_multiple_named_windows" so xfail matching succeeds (look for the
dict of expected failures / streaming expected-failures entries where that
string is defined).

In `@python/cudf_polars/tests/expressions/test_rolling.py`:
- Around line 108-111: The test named test_rolling_agg_first currently calls
pl.col("a").sum().rolling("b", period="2i"), so it doesn't exercise the "first"
aggregation; update the expression in test_rolling_agg_first to use the first
aggregation (e.g., pl.col("a").first().rolling("b", period="2i")) so the test
matches its name and intent, leaving the rest of the setup (df, q, and
assert_gpu_result_equal) unchanged.
- Around line 159-160: The xfail currently gates all polars >=1.36 but should
only target the unsupported 1.36–1.38 window; update the pytest mark on
test_rolling_inside_groupby_raises so the condition becomes True only for
versions >=1.36 and <1.39 (e.g. condition=POLARS_VERSION_GE_136 and
POLARS_VERSION_LT_139) instead of the existing condition=not
POLARS_VERSION_LT_136.

---

Nitpick comments:
In `@python/cudf_polars/cudf_polars/dsl/translate.py`:
- Around line 274-282: The code in _is_dynamic_pred currently relies on
string-matching the exception message from
visitor.view_expression(expr_ir.node); replace this fragile check with a
typed/symbolic check: catch the specific Polars exception class (use the
appropriate Polars exception type exposed by your Polars version instead of
Exception) or, if Polars exposes a sentinel attribute on the exception (e.g.,
e.code or e.kind), test that property rather than str(e); update the except
clause to "except <PolarsExceptionType> as e" and check the typed property, and
add a regression test: call _is_dynamic_pred with a known dynamic predicate plan
and assert it returns True so future Polars message changes will fail the test
rather than silently break translation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a790b5c1-5fc0-4d22-9be5-916025438c67

📥 Commits

Reviewing files that changed from the base of the PR and between 3ae4319 and 445b5ac.

📒 Files selected for processing (24)
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-132_arch-aarch64.yaml
  • conda/environments/all_cuda-132_arch-x86_64.yaml
  • conda/recipes/cudf-polars/recipe.yaml
  • dependencies.yaml
  • python/cudf_polars/cudf_polars/dsl/expressions/rolling.py
  • python/cudf_polars/cudf_polars/dsl/expressions/unary.py
  • python/cudf_polars/cudf_polars/dsl/ir.py
  • python/cudf_polars/cudf_polars/dsl/translate.py
  • python/cudf_polars/cudf_polars/experimental/expressions.py
  • python/cudf_polars/cudf_polars/experimental/io.py
  • python/cudf_polars/cudf_polars/experimental/select.py
  • python/cudf_polars/cudf_polars/testing/inject_gpu_engine.py
  • python/cudf_polars/cudf_polars/utils/versions.py
  • python/cudf_polars/pyproject.toml
  • python/cudf_polars/tests/experimental/test_rolling.py
  • python/cudf_polars/tests/expressions/test_booleanfunction.py
  • python/cudf_polars/tests/expressions/test_rolling.py
  • python/cudf_polars/tests/expressions/test_sort.py
  • python/cudf_polars/tests/test_hconcat.py
  • python/cudf_polars/tests/test_parquet_filters.py
  • python/cudf_polars/tests/test_scan.py
  • python/cudf_polars/tests/test_window_functions.py

Comment thread python/cudf_polars/cudf_polars/testing/inject_gpu_engine.py
Comment thread python/cudf_polars/tests/expressions/test_rolling.py Outdated
Comment thread python/cudf_polars/tests/expressions/test_rolling.py

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
python/cudf_polars/tests/expressions/test_rolling.py (1)

159-160: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Narrow the xfail condition to the unsupported 1.36–1.38 range.

Line 159 currently xfails all Polars >=1.36, which can mask regressions in >=1.39 where rolling-expression handling is re-enabled elsewhere in this file.

Proposed fix
-@pytest.mark.xfail(condition=not POLARS_VERSION_LT_136, reason="not supported")
+@skip_rolling_expr_136_to_138
 def test_rolling_inside_groupby_raises():
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@python/cudf_polars/tests/expressions/test_rolling.py` around lines 159 - 160,
The xfail on test_rolling_inside_groupby_raises is too broad; narrow it to only
Polars 1.36–1.38. Change the condition from "not POLARS_VERSION_LT_136" to "not
POLARS_VERSION_LT_136 and POLARS_VERSION_LT_139" (or introduce a helper like
POLARS_VERSION_GTE_136_AND_LT_139) so the decorator only xfails for >=1.36 and
<1.39 while allowing >=1.39 to run.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@python/cudf_polars/tests/expressions/test_rolling.py`:
- Around line 159-160: The xfail on test_rolling_inside_groupby_raises is too
broad; narrow it to only Polars 1.36–1.38. Change the condition from "not
POLARS_VERSION_LT_136" to "not POLARS_VERSION_LT_136 and POLARS_VERSION_LT_139"
(or introduce a helper like POLARS_VERSION_GTE_136_AND_LT_139) so the decorator
only xfails for >=1.36 and <1.39 while allowing >=1.39 to run.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4a340595-7e62-407d-8760-83d51cb09ecf

📥 Commits

Reviewing files that changed from the base of the PR and between 445b5ac and c0e23eb.

📒 Files selected for processing (10)
  • python/cudf_polars/cudf_polars/dsl/expressions/rolling.py
  • python/cudf_polars/cudf_polars/dsl/ir.py
  • python/cudf_polars/cudf_polars/dsl/translate.py
  • python/cudf_polars/cudf_polars/experimental/expressions.py
  • python/cudf_polars/cudf_polars/experimental/select.py
  • python/cudf_polars/cudf_polars/testing/inject_gpu_engine.py
  • python/cudf_polars/pyproject.toml
  • python/cudf_polars/tests/experimental/test_rolling.py
  • python/cudf_polars/tests/expressions/test_rolling.py
  • python/cudf_polars/tests/test_hconcat.py
🚧 Files skipped from review as they are similar to previous changes (9)
  • python/cudf_polars/pyproject.toml
  • python/cudf_polars/cudf_polars/experimental/select.py
  • python/cudf_polars/tests/experimental/test_rolling.py
  • python/cudf_polars/tests/test_hconcat.py
  • python/cudf_polars/cudf_polars/dsl/ir.py
  • python/cudf_polars/cudf_polars/experimental/expressions.py
  • python/cudf_polars/cudf_polars/dsl/translate.py
  • python/cudf_polars/cudf_polars/dsl/expressions/rolling.py
  • python/cudf_polars/cudf_polars/testing/inject_gpu_engine.py

@jameslamb jameslamb left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approving for packaging-codeowners

@mroeschke mroeschke left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving but also contributed a good amount to the PR. Any other comments @Matt711?

@Matt711

Matt711 commented May 18, 2026

Copy link
Copy Markdown
Member Author

Approving but also contributed a good amount to the PR. Any other comments @Matt711?

Nope! Thanks for driving it @mroeschke !

@mroeschke

Copy link
Copy Markdown
Contributor

/merge

@rapids-bot
rapids-bot Bot merged commit 3249ba8 into NVIDIA:release/26.06 May 18, 2026
225 of 227 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in cuDF Python May 18, 2026
madsbk added a commit to madsbk/cudf that referenced this pull request May 18, 2026
PR NVIDIA#22048 ("Bump polars upper bound to <1.40", merged today) added the new
`test_hconcat_strict_different_heights` test, which imports
`assert_collect_raises`. However, PR NVIDIA#22535 ("Clean up legacy test
scaffolding", also merged into `release/26.06`) removed that helper.

The two PRs landed on `release/26.06` without the conflict being noticed.

On `main`, `test_hconcat.py` does not contain the strict-mode test, so the
issue is limited to `release/26.06`.
rapids-bot Bot pushed a commit that referenced this pull request May 19, 2026
#22558)

PR #22048 (merged today) added the new `test_hconcat_strict_different_heights` test, which imports `assert_collect_raises`. However, PR #22535 (also merged today) removed that helper.

The two PRs landed on `release/26.06` without the conflict being noticed.

On `main`, `test_hconcat.py` does not contain the strict-mode test, so the issue is limited to `release/26.06`.

Authors:
  - Mads R. B. Kristensen (https://github.com/madsbk)

Approvers:
  - Matthew Murray (https://github.com/Matt711)

URL: #22558
madsbk pushed a commit to madsbk/cudf that referenced this pull request May 19, 2026
Updated cudf-polars to support Polars 1.39.

Summary:

* **Dependency pin** updated across conda envs, the recipe, `dependencies.yaml`, and `pyproject.toml`. New `POLARS_VERSION_LT_139` flag gates version specific code.
* **Rolling expressions:** polars 1.39 makes `pl.col(...).rolling(...)` accessible again via `AExpr::Rolling`. A new `_translate_rolling` handles it, registered only when the node type exists. Rolling tests use a single `skip_rolling_expr_136_to_138` marker.
* **HConcat strict mode:** added a `strict` slot on the `HConcat` IR that raises `pl.exceptions.ShapeError` on height mismatch, threaded through every construction site.
* **IsBetween Decimal vs Float:** new `_align_decimal_float_for_comparison` casts Decimal to Float64 on 1.39+, since polars no longer inserts that cast and libcudf would otherwise give wrong results.
* **set_sorted:** options shape changed from `(asc_str,)` to `(descending_bool, ...)`; translator branches on type.
* **Dynamic predicates:** new `_is_dynamic_pred` helper makes Scan and Filter skip predicates that raise `"dynamic_pred"`.
* **IR version ceiling** raised from `(12, 1)` to `(12, 2)`. Sink format check now includes `"Json"`, and a precedence bug in `_sink_to_file` is fixed.

Authors:
  - Matthew Murray (https://github.com/Matt711)
  - Matthew Roeschke (https://github.com/mroeschke)

Approvers:
  - James Lamb (https://github.com/jameslamb)
  - Matthew Roeschke (https://github.com/mroeschke)

URL: NVIDIA#22048
madsbk added a commit to madsbk/cudf that referenced this pull request May 19, 2026
NVIDIA#22558)

PR NVIDIA#22048 (merged today) added the new `test_hconcat_strict_different_heights` test, which imports `assert_collect_raises`. However, PR NVIDIA#22535 (also merged today) removed that helper.

The two PRs landed on `release/26.06` without the conflict being noticed.

On `main`, `test_hconcat.py` does not contain the strict-mode test, so the issue is limited to `release/26.06`.

Authors:
  - Mads R. B. Kristensen (https://github.com/madsbk)

Approvers:
  - Matthew Murray (https://github.com/Matt711)

URL: NVIDIA#22558
@mroeschke mroeschke mentioned this pull request May 20, 2026
3 tasks
rapids-bot Bot pushed a commit that referenced this pull request May 26, 2026
Follow ups to #22048

closes #20551

* Removes some Polars dependency pinnings which should no longer be necessary
* Un-skips some unit tests that should be fixed now

Authors:
  - Matthew Roeschke (https://github.com/mroeschke)

Approvers:
  - James Lamb (https://github.com/jameslamb)
  - Tom Augspurger (https://github.com/TomAugspurger)

URL: #22605
@coderabbitai coderabbitai Bot mentioned this pull request Jun 30, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cudf-polars Issues specific to cudf-polars improvement Improvement / enhancement to an existing function non-breaking Non-breaking change Python Affects Python cuDF API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants