Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
90653a9
Modify dependencies.yml to make rapidsmpf a required dependency of cu…
mroeschke Apr 23, 2026
23c5ed5
Change Runtime default to None to indicate rapdsmpf default
mroeschke Apr 23, 2026
4c0a86b
Deprecate the shuffle_method argument
mroeschke Apr 23, 2026
e6aeb4d
Deprecate unique_fraction, groupby_n_ary, rapidsmpf_spill
mroeschke Apr 23, 2026
fa737fe
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 23, 2026
4f90aad
Remove some asserts
mroeschke Apr 23, 2026
71e1ca9
Make plugin.py diff nicer
mroeschke Apr 23, 2026
a5cba7a
Remove rapidsmpf extra from ci/test_cudf_polars_polars_tests.sh
mroeschke Apr 23, 2026
577314c
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 28, 2026
4a37ee2
Modify comment
mroeschke Apr 28, 2026
3e4dfe0
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 28, 2026
7195f5f
Try defining dependencies another way
mroeschke Apr 28, 2026
49849d0
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 28, 2026
4831c3f
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 28, 2026
a84a1d0
Remove depends_on_rapidsmpf from test dependencies
mroeschke Apr 28, 2026
bc92082
Use minor_version for rapidsmpf in conda recipe
mroeschke Apr 28, 2026
abe246f
Try formatting python/cudf_polars/cudf_polars/utils/config.py for doc…
mroeschke Apr 29, 2026
eb19596
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 29, 2026
4b202d0
Remove --runtime and DEFAULT_RUNTIME configs/params from python/cudf_…
mroeschke Apr 29, 2026
d535356
Remove --runtime from pytest_addoption
mroeschke Apr 29, 2026
1137bc2
Remove --runtime flag in experiemental tests
mroeschke Apr 30, 2026
a0228dc
Remove passing shuffle_method
mroeschke Apr 30, 2026
3415749
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke Apr 30, 2026
158d0a0
Remove more setting of rapidsmpf and other test for deprecated parame…
mroeschke Apr 30, 2026
0aa93c5
Remove check for rapidsmpf single available, pass tests in test_config
mroeschke Apr 30, 2026
264f641
Fix some engine configurations for now
mroeschke May 1, 2026
feb2474
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 1, 2026
d3a2e79
Add tests for FutureWarnings
mroeschke May 1, 2026
dcbe494
Add no covers to no longer tested
mroeschke May 1, 2026
8acb2c9
Fix(?) test_trace_basic
mroeschke May 1, 2026
2f5436f
Correct scoping of FutureWarning
mroeschke May 1, 2026
1e19d2c
Ignore FutureWarning when reconstructing Dask engine opts internally,…
mroeschke May 1, 2026
125de67
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 1, 2026
03ed9a5
Fix test_scan_properties with rapidsmpf testing
mroeschke May 1, 2026
29dba7e
Avoid implicit pyarrow dependency of polars in allgather_polars_dataf…
mroeschke May 1, 2026
d390d51
Adjust tests/experimental/test_unique.py
mroeschke May 1, 2026
c550b06
Fix test_executor_options_unique_fraction
mroeschke May 1, 2026
0bb226f
Fix test_groupby_agg_config_options
mroeschke May 1, 2026
e0e635a
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 1, 2026
dfd7b6a
Add pragmas for uncovered lines
mroeschke May 1, 2026
29b2527
tests/experimental/test_unique.py passing in CI
mroeschke May 2, 2026
6746ab5
Avoid pl.from_arrow to avoid a pyarrow import
mroeschke May 2, 2026
487e28c
Use DataFrame container to avoid pyarrow
mroeschke May 2, 2026
2fc0975
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 4, 2026
11895e1
Remove groupby_n_ary parameter
mroeschke May 4, 2026
6455625
Remove unique_fraction
mroeschke May 4, 2026
e4c27ef
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 4, 2026
405d012
Remove remaining rapidsmpf_spill usage
mroeschke May 4, 2026
a84cd04
Change the shuffle_method to be internally set
mroeschke May 4, 2026
14e0545
Remove StreamingOptions.runtime
mroeschke May 4, 2026
c0adafe
Remove importskipping checks for rapidsmpf
mroeschke May 4, 2026
d9d3375
Fix error match for test_cuda_stream_policy_pool_in_memory_unsupported
mroeschke May 5, 2026
5ea9e8c
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 5, 2026
5093c79
Retrigger CI
mroeschke May 5, 2026
b8cd7c4
Remove more task runtime code suggested by mads
mroeschke May 5, 2026
d481460
Remove additional PartitionInfo code identified by claude
mroeschke May 5, 2026
965884e
Remove ShuffleMethod per Rick's review
mroeschke May 5, 2026
2f03ba6
More removals from lawrence
mroeschke May 5, 2026
fe43ff3
Final dead code removals identified by claude
mroeschke May 5, 2026
3679280
Remove ShuffleMethod from api.md
mroeschke May 5, 2026
b3a12db
make stream keyword argument to plc.Table.from_arrow
mroeschke May 5, 2026
0a5be84
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 5, 2026
c69e2d8
add rapidmpf as a mounted sibbling directory
mroeschke May 5, 2026
6b43470
Condintionally clone rapidsmpf in initializeCommand
mroeschke May 5, 2026
c94c90b
Add libnumba-dev for cucascade for pip devcontainers
mroeschke May 5, 2026
22a6a6f
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 5, 2026
fd529e2
Apply suggestions from code review
mroeschke May 5, 2026
7a7b271
Merge branch 'enh/cudf_polars/rapidsmpf_default' of https://github.co…
mroeschke May 5, 2026
57b92fb
clone-rapidsmpf before build-all in build_command
mroeschke May 5, 2026
de4ade6
Revert "Add libnumba-dev for cucascade for pip devcontainers"
mroeschke May 6, 2026
126bdc9
Reapply "Add libnumba-dev for cucascade for pip devcontainers"
mroeschke May 6, 2026
e062e80
Try matching rapidsmpf base pip docker image
mroeschke May 6, 2026
02d33f4
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 6, 2026
85af11b
Add -DBUILD_NUMA_SUPPORT=OFF in build_command
mroeschke May 6, 2026
4d07468
Add DcuCascade_DIR to force CPM to build from source (according to Cl…
mroeschke May 6, 2026
46b607e
Add devcontainers section in dependencies excluding rapidsmpf
mroeschke May 6, 2026
5afc788
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 6, 2026
02ba87d
Remove more runtime inclusions
mroeschke May 6, 2026
12fa676
Only include cudf, rapidsmpf in include_repos
mroeschke May 6, 2026
833e5c7
try reforcing the pip env generation after clone-rapidsmpf
mroeschke May 6, 2026
4d60df4
don't build tests because of rapidsmpf
mroeschke May 6, 2026
38e890e
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 6, 2026
0646bb4
Add -DCUDF_BUILD_TESTUTIL=OFF
mroeschke May 6, 2026
7a90931
Don't build benchmarks either
mroeschke May 6, 2026
2c5dc92
Call rapids-generate-scripts, remake rapids-make-conda-env as well
mroeschke May 7, 2026
fe5502b
Merge remote-tracking branch 'upstream/main' into enh/cudf_polars/rap…
mroeschke May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ ARG PYTHON_PACKAGE_MANAGER=conda

FROM ${BASE} as pip-base

# libnuma-dev is required for pip devcontainers for cucascade from rapidsmpf
RUN apt update -y \
&& DEBIAN_FRONTEND=noninteractive apt install -y \
librdkafka-dev \
libnuma-dev \
&& rm -rf /tmp/* /var/tmp/* /var/cache/apt/* /var/lib/apt/lists/*;

ENV DEFAULT_VIRTUAL_ENV=rapids
Expand Down
8 changes: 8 additions & 0 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ This container is a turnkey development environment for building and testing the
By default, the following directories are bind-mounted into the devcontainer:

* `${repo}:/home/coder/cudf`
* `${repo}/../rapidsmpf:/home/coder/rapidsmpf`
* `${repo}/../.aws:/home/coder/.aws`
* `${repo}/../.local:/home/coder/.local`
* `${repo}/../.cache:/home/coder/.cache`
Expand All @@ -28,6 +29,13 @@ By default, the following directories are bind-mounted into the devcontainer:

This ensures caches, configurations, dependencies, and your commits are persisted on the host across container runs.

The [rapidsmpf](https://github.com/rapidsai/rapidsmpf) repository is a required dependency of `cudf_polars` (that also requires `libcudf`) and must be cloned as a sibling directory to the cudf repo before launching the devcontainer:

```
# from the parent directory of your cudf clone
git clone https://github.com/rapidsai/rapidsmpf.git
```

## Launch a Dev Container

To launch a devcontainer from VSCode, open the cuDF repo and select the "Reopen in Container" button in the bottom right:<br/><img src="https://user-images.githubusercontent.com/178183/221771999-97ab29d5-e718-4e5f-b32f-2cdd51bba25c.png"/>
Expand Down
5 changes: 3 additions & 2 deletions .devcontainer/cuda12.9-conda/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"initializeCommand": [
"/bin/bash",
"-c",
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda12.9-envs}"
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda12.9-envs} ${localWorkspaceFolder}/../rapidsmpf"
],
"postAttachCommand": [
"/bin/bash",
Expand All @@ -63,7 +63,8 @@
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.conda/pkgs,target=/home/coder/.conda/pkgs,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.conda/${localWorkspaceFolderBasename}-cuda12.9-envs,target=/home/coder/.conda/envs,type=bind,consistency=consistent"
"source=${localWorkspaceFolder}/../.conda/${localWorkspaceFolderBasename}-cuda12.9-envs,target=/home/coder/.conda/envs,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../rapidsmpf,target=/home/coder/rapidsmpf,type=bind,consistency=consistent"
],
"customizations": {
"vscode": {
Expand Down
7 changes: 4 additions & 3 deletions .devcontainer/cuda12.9-pip/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"args": {
"CUDA": "12.9",
"PYTHON_PACKAGE_MANAGER": "pip",
"BASE": "rapidsai/devcontainers:26.06-cpp-cuda12.9"
"BASE": "rapidsai/devcontainers:26.06-cpp-cuda12.9-ucx1.19.0-openmpi5.0.10"
}
},
"runArgs": [
Expand All @@ -27,7 +27,7 @@
"initializeCommand": [
"/bin/bash",
"-c",
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda12.9-venvs}"
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda12.9-venvs} ${localWorkspaceFolder}/../rapidsmpf"
],
"postAttachCommand": [
"/bin/bash",
Expand All @@ -40,7 +40,8 @@
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.local/share/${localWorkspaceFolderBasename}-cuda12.9-venvs,target=/home/coder/.local/share/venvs,type=bind,consistency=consistent"
"source=${localWorkspaceFolder}/../.local/share/${localWorkspaceFolderBasename}-cuda12.9-venvs,target=/home/coder/.local/share/venvs,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../rapidsmpf,target=/home/coder/rapidsmpf,type=bind,consistency=consistent"
],
"customizations": {
"vscode": {
Expand Down
5 changes: 3 additions & 2 deletions .devcontainer/cuda13.1-conda/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"initializeCommand": [
"/bin/bash",
"-c",
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.1-envs}"
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.1-envs} ${localWorkspaceFolder}/../rapidsmpf"
],
"postAttachCommand": [
"/bin/bash",
Expand All @@ -63,7 +63,8 @@
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.conda/pkgs,target=/home/coder/.conda/pkgs,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.conda/${localWorkspaceFolderBasename}-cuda13.1-envs,target=/home/coder/.conda/envs,type=bind,consistency=consistent"
"source=${localWorkspaceFolder}/../.conda/${localWorkspaceFolderBasename}-cuda13.1-envs,target=/home/coder/.conda/envs,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../rapidsmpf,target=/home/coder/rapidsmpf,type=bind,consistency=consistent"
],
"customizations": {
"vscode": {
Expand Down
7 changes: 4 additions & 3 deletions .devcontainer/cuda13.1-pip/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"args": {
"CUDA": "13.1",
"PYTHON_PACKAGE_MANAGER": "pip",
"BASE": "rapidsai/devcontainers:26.06-cpp-cuda13.1"
"BASE": "rapidsai/devcontainers:26.06-cpp-cuda13.1-ucx1.19.0-openmpi5.0.10"
}
},
"runArgs": [
Expand All @@ -27,7 +27,7 @@
"initializeCommand": [
"/bin/bash",
"-c",
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.1-venvs}"
"mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.1-venvs} ${localWorkspaceFolder}/../rapidsmpf"
],
"postAttachCommand": [
"/bin/bash",
Expand All @@ -40,7 +40,8 @@
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../.local/share/${localWorkspaceFolderBasename}-cuda13.1-venvs,target=/home/coder/.local/share/venvs,type=bind,consistency=consistent"
"source=${localWorkspaceFolder}/../.local/share/${localWorkspaceFolderBasename}-cuda13.1-venvs,target=/home/coder/.local/share/venvs,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/../rapidsmpf,target=/home/coder/rapidsmpf,type=bind,consistency=consistent"
],
"customizations": {
"vscode": {
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -550,9 +550,16 @@ jobs:
SCCACHE_DIST_MAX_RETRIES=inf
SCCACHE_SERVER_LOG=sccache=debug
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE=false
# clone-rapidsmpf to not use the rapidsmpf wheels from cudf_polars dependency
# librapidsmpf-cu13 wheels brings in a hardcoded libnuma-dev cmake target: https://github.com/NVIDIA/cuCascade/issues/118
# -DBUILD_TESTS=OFF to match rapidsmpf https://github.com/rapidsai/rapidsmpf/blob/main/.github/workflows/pr.yaml#L351 (leads to compilation errors)
# -DCUDF_BUILD_TESTUTIL=OFF to avoid IMPORTED_GLOBAL promotion errors when cuCascade's find_package(cudf) loads cudf-config.cmake from a CPM subdirectory
build_command: |
sccache --zero-stats;
build-all -j0 -DBUILD_BENCHMARKS=ON --verbose 2>&1 | tee telemetry-artifacts/build.log;
clone-rapidsmpf -j$(nproc) -v -q --branch "$(cat ~/cudf/RAPIDS_BRANCH)" --clone-upstream --depth 1 --single-branch --shallow-submodules;
if [ "$PYTHON_PACKAGE_MANAGER" = "pip" ]; then rapids-make-pip-env --force; elif [ "$PYTHON_PACKAGE_MANAGER" = "conda" ]; then rapids-make-conda-env --force; fi;
rapids-generate-scripts;
build-all -j0 -DBUILD_BENCHMARKS=OFF -DBUILD_NUMA_SUPPORT=OFF -DBUILD_TESTS=OFF -DCUDF_BUILD_TESTUTIL=OFF --verbose 2>&1 | tee telemetry-artifacts/build.log;

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.

We might need to call rapids-generate-scripts. I am not sure if build-all will do everything unless the scripts were regenerated.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Sure I added it, but in fe5502b I can't tell if it materially made a difference

sccache --show-adv-stats | tee telemetry-artifacts/sccache-stats.txt;
unit-tests-cudf-pandas:
needs: [wheel-build-cudf, changed-files]
Expand Down
2 changes: 1 addition & 1 deletion ci/test_cudf_polars_experimental.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ rapids-pip-retry install \
-v \
--prefer-binary \
--constraint "${PIP_CONSTRAINT}" \
"$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test,experimental,rapidsmpf]" \
"$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test,experimental]" \
"$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \
"$(echo "${PYLIBCUDF_WHEELHOUSE}"/pylibcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)"

Expand Down
2 changes: 1 addition & 1 deletion ci/test_cudf_polars_polars_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ rapids-logger "Install libcudf, pylibcudf and cudf_polars"
rapids-pip-retry install \
-v \
--constraint "${PIP_CONSTRAINT}" \
"$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test,rapidsmpf]" \
"$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" \
"$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \
"$(echo "${PYLIBCUDF_WHEELHOUSE}"/pylibcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)"

Expand Down
1 change: 1 addition & 0 deletions conda/environments/all_cuda-129_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ dependencies:
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-dask-dependency==26.6.*,>=0.0.0a0
- rapids-logger==0.2.*,>=0.0.0a0
- rapidsmpf==26.6.*,>=0.0.0a0
- rich
- rmm==26.6.*,>=0.0.0a0
- s3fs>=2022.3.0
Expand Down
1 change: 1 addition & 0 deletions conda/environments/all_cuda-129_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ dependencies:
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-dask-dependency==26.6.*,>=0.0.0a0
- rapids-logger==0.2.*,>=0.0.0a0
- rapidsmpf==26.6.*,>=0.0.0a0
- rich
- rmm==26.6.*,>=0.0.0a0
- s3fs>=2022.3.0
Expand Down
1 change: 1 addition & 0 deletions conda/environments/all_cuda-131_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ dependencies:
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-dask-dependency==26.6.*,>=0.0.0a0
- rapids-logger==0.2.*,>=0.0.0a0
- rapidsmpf==26.6.*,>=0.0.0a0
- rich
- rmm==26.6.*,>=0.0.0a0
- s3fs>=2022.3.0
Expand Down
1 change: 1 addition & 0 deletions conda/environments/all_cuda-131_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ dependencies:
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-dask-dependency==26.6.*,>=0.0.0a0
- rapids-logger==0.2.*,>=0.0.0a0
- rapidsmpf==26.6.*,>=0.0.0a0
- rich
- rmm==26.6.*,>=0.0.0a0
- s3fs>=2022.3.0
Expand Down
1 change: 1 addition & 0 deletions conda/recipes/cudf-polars/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ requirements:
- nvidia-ml-py>=12
- python
- pylibcudf =${{ version }}
- rapidsmpf =${{ minor_version }}
- polars>=1.30,<1.39
- packaging
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }}
Expand Down
56 changes: 46 additions & 10 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,51 @@ files:
matrix:
cuda: ["12.9", "13.1"]
arch: [x86_64, aarch64]
includes:
- build_base
- build_all
- build_cpp
- build_python_common
- clang
- cuda
- cuda_version
- cudf_polars_trace
- depends_on_cupy
- depends_on_cuda_python
- depends_on_dask_cuda
- depends_on_libkvikio
- depends_on_librmm
- depends_on_libnvcomp
- depends_on_numba_cuda
- depends_on_rapids_logger
- depends_on_rapidsmpf
- depends_on_rmm
- develop
- docs
- iwyu
- notebooks
- numpy_run
- py_version
- pyarrow_run
- rapids_build_skbuild
- rapids_build_setuptools
- run_common
- run_cudf
- run_cudf_polars
- run_pylibcudf
- run_dask_cudf
- run_custreamz
- test_cpp
- test_python_common
- test_python_cudf
- test_python_cudf_common
- test_python_pylibcudf
- test_python_cudf_pandas
- test_python_cudf_polars
- test_python_s3
devcontainers:
output: none
# Same as "all", excluding depends_on_rapidsmpf (which is built from source)
includes:
- build_base
- build_all
Expand Down Expand Up @@ -328,6 +373,7 @@ files:
table: project
includes:
- run_cudf_polars
- depends_on_rapidsmpf
- depends_on_pylibcudf
- depends_on_cuda_python
py_run_cudf_polars_experimental:
Expand All @@ -338,15 +384,6 @@ files:
key: experimental
includes:
- run_cudf_polars_experimental
py_run_cudf_polars_rapidsmpf:
output: pyproject
pyproject_dir: python/cudf_polars
extras:
table: project.optional-dependencies
key: rapidsmpf
includes:
- depends_on_rapidsmpf
- pyarrow_run
py_test_cudf_polars:
output: pyproject
pyproject_dir: python/cudf_polars
Expand All @@ -360,7 +397,6 @@ files:
- test_python_common
- test_python_cudf_polars
- cudf_polars_trace
- depends_on_rapidsmpf
py_trace_cudf_polars:
output: pyproject
pyproject_dir: python/cudf_polars
Expand Down
1 change: 0 additions & 1 deletion docs/cudf/source/cudf_polars/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ For the most part, the public API of `cudf-polars` is the polars API.
ExecutorType,
InMemoryExecutor,
ParquetOptions,
ShuffleMethod,
StreamingExecutor,
StreamingFallbackMode,
```
2 changes: 1 addition & 1 deletion docs/cudf/source/cudf_polars/engine_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ For example, the environment variable
`max_rows_per_partition` to use if it isn't overridden through
`executor_options`.

For boolean options, like `rapidsmpf_spill`, the values `{"1", "true", "yes", "y"}`
For boolean options, like `sink_to_directory`, the values `{"1", "true", "yes", "y"}`
are considered `True` and `{"0", "false", "no", "n"}` are considered `False`.

See [Configuration Reference](#cudf-polars-api) for a full list of options, and
Expand Down
5 changes: 2 additions & 3 deletions python/cudf_polars/cudf_polars/callback.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,13 +159,12 @@ def set_memory_resource(
"""
previous = rmm.mr.get_current_device_resource()
if mr is None:
# Use cuda async by default with the rapidsmpf runtime.
# Use cuda async by default with the streaming executor.
if (
memory_resource_config is None
and executor.name == "streaming"
and executor.runtime == "rapidsmpf"
and (device_size := get_total_device_memory()) is not None
): # pragma: no cover; Requires rapidsmpf runtime.
): # pragma: no cover
memory_resource_config = MemoryResourceConfig(
qualname="rmm.mr.CudaAsyncMemoryResource",
options={
Expand Down
2 changes: 0 additions & 2 deletions python/cudf_polars/cudf_polars/dsl/expr.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

from cudf_polars.dsl.expressions.aggregation import Agg
from cudf_polars.dsl.expressions.base import (
AggInfo,
Col,
ColRef,
ErrorExpr,
Expand All @@ -37,7 +36,6 @@

__all__ = [
"Agg",
"AggInfo",
"BinOp",
"BooleanFunction",
"Cast",
Expand Down
8 changes: 2 additions & 6 deletions python/cudf_polars/cudf_polars/dsl/expressions/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import enum
from enum import IntEnum
from typing import TYPE_CHECKING, Any, ClassVar, NamedTuple
from typing import TYPE_CHECKING, Any, ClassVar

import pylibcudf as plc

Expand All @@ -20,11 +20,7 @@

from cudf_polars.containers import Column, DataFrame, DataType

__all__ = ["AggInfo", "Col", "ColRef", "ExecutionContext", "Expr", "NamedExpr"]


class AggInfo(NamedTuple):
requests: list[tuple[Expr | None, plc.aggregation.Aggregation, Expr]]
__all__ = ["Col", "ColRef", "ExecutionContext", "Expr", "NamedExpr"]


class ExecutionContext(IntEnum):
Expand Down
10 changes: 6 additions & 4 deletions python/cudf_polars/cudf_polars/dsl/ir.py
Original file line number Diff line number Diff line change
Expand Up @@ -819,11 +819,13 @@ def read_csv_header(
# TODO: Nested column names
names = chunk.column_names(include_children=False)
concatenated_columns = chunk.tbl.columns()
while reader.has_next():
while reader.has_next(): # pragma: no cover

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.

Sign posting: We try to see where we can add code coverage back.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes definitely, when revisiting #22346, I'm hoping we'll gain a lot of this coverage back

columns = reader.read_chunk().tbl.columns()
# Discard columns while concatenating to reduce memory footprint.
# Reverse order to avoid O(n^2) list popping cost.
for i in range(len(concatenated_columns) - 1, -1, -1):
for i in range( # pragma: no cover
len(concatenated_columns) - 1, -1, -1
):
concatenated_columns[i] = plc.concatenate.concatenate(
[concatenated_columns[i], columns.pop()], stream=stream
)
Expand All @@ -840,7 +842,7 @@ def read_csv_header(
num_rows=num_rows,
)
if include_file_paths is not None:
df = Scan.add_file_paths(
df = Scan.add_file_paths( # pragma: no cover
include_file_paths, paths, chunk.num_rows_per_source, df
)
else:
Expand Down Expand Up @@ -1164,7 +1166,7 @@ def _write_parquet(
| plc.io.parquet.ParquetWriterOptionsBuilder
)

if (
if ( # pragma: no cover
parquet_options.chunked
and parquet_options.n_output_chunks != 1
and df.table.num_rows() != 0
Expand Down
Loading
Loading