Skip to content

fix: cudf.from_pandas replaces the removed cudf.DataFrame.from_pandas (#2043) - #2044

Merged
lmeyerov merged 5 commits into
masterfrom
fix/cudf-26-from-pandas
Sep 5, 2026
Merged

lmeyerov merged 5 commits into
masterfrom
fix/cudf-26-from-pandas

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

cuDF 26.2 removed cudf.DataFrame.from_pandas; cudf.from_pandas exists on both cuDF lines. This moves the five cuDF-only product sites (ai_utils.py, umap_utils.py, feature_utils.py) and the 18 test-fixture sites to it, so the cuDF differential suites actually run on the current RAPIDS image instead of raising in the fixture.

Running them on dgx-spark (cudf 26.02.01) exposed three chain cases where the default route and the policy-forced full path disagree on cuDF 26.2 only (prune_endpoints_fwd, prune_endpoints_rev, dedups_duplicate_node_ids_on_hop); they pass on pandas and on cuDF 25.10. Those three are marked xfail(strict=True) gated on cuDF ≥ 26 with the tracking issue, so the GPU lane reports the divergence loudly and flips when it is fixed. No product behavior change beyond the spelling.

Fixes the fixture half of #2043; the divergence stays open there.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QztW7jYsDd66e8rb8pJNQA

@lmeyerov

lmeyerov commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Real-GPU receipt (dgx-spark, graphistry/test-rapids-official:26.02-gfql-polars, cudf 26.02.01 / cupy 13.6.0 / polars 1.35.2, via dgx-guard safe_run): graphistry/tests/compute/test_chain.py at 3041d6a = 139 passed, 3 xfailed (strict; the #2043 divergences), 0 failed, 0 skipped. On master in the same image the same file's cuDF differential cases raise AttributeError: type object 'DataFrame' has no attribute 'from_pandas' before asserting.

@lmeyerov

lmeyerov commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

READY (edaeb78): 75 green + 2 skipped; five cuDF-only sites + 18 fixtures on cudf.from_pandas; real-GPU 139 passed / 3 xfailed(strict, #2043) / 0 failed; changed-line gate reproduced locally = pass.

@lmeyerov

lmeyerov commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Backward-compat receipt (owner asked whether old and new RAPIDS both work): cudf.from_pandas is the long-standing top-level API and exists on both lines. Verified at this head (edaeb78): local RTX 3080 Ti, cudf 25.10.00 — cudf.from_pandas returns DataFrame/Series as expected and TEST_CUDF=1 pytest graphistry/tests/compute/test_chain.py -k cudf → 50 passed, 0 failed (the three #2043 cases run as ordinary tests there because the xfail is gated on cuDF ≥ 26, and they pass). dgx-spark cudf 26.02.01 (earlier receipt): 139 passed / 3 xfailed(strict, #2043) / 0 failed, where master's fixtures raise AttributeError before asserting.

lmeyerov and others added 5 commits September 5, 2026 13:10
…#2043)

cuDF 26.2 dropped the classmethod spelling; the module function exists on
both cuDF lines. Four product sites (AI/UMAP paths) and every test fixture
move to it. The three cuDF chain differential cases that diverge from the
full path on cuDF 26.2 are marked expected-failure on that line with the
tracking issue so the real-GPU lane reports them instead of crashing first.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QztW7jYsDd66e8rb8pJNQA
@lmeyerov
lmeyerov force-pushed the fix/cudf-26-from-pandas branch from edaeb78 to a3dffa0 Compare September 5, 2026 20:11
@lmeyerov
lmeyerov merged commit 70efbd3 into master Sep 5, 2026
30 of 31 checks passed
@lmeyerov
lmeyerov deleted the fix/cudf-26-from-pandas branch September 5, 2026 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant