-
Notifications
You must be signed in to change notification settings - Fork 917
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adapt to polars upstream changes and turn on CI testing (#16081)
They changed the semantics of join keys when those keys are expressions to more closely match SQL. Dtype inference is also tighter, so update tests to adapt to those changes, and some other small deprecation warnings. Finish the final missing coverage piece and turn on testing in CI (failing if we don't hit 100% coverage as well). Authors: - Lawrence Mitchell (https://github.com/wence-) Approvers: - Thomas Li (https://github.com/lithomas1) - James Lamb (https://github.com/jameslamb) URL: #16081
- Loading branch information
Showing
13 changed files
with
234 additions
and
112 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,6 +25,7 @@ jobs: | |
- docs-build | ||
- wheel-build-cudf | ||
- wheel-tests-cudf | ||
- test-cudf-polars | ||
- wheel-build-dask-cudf | ||
- wheel-tests-dask-cudf | ||
- devcontainer | ||
|
@@ -132,6 +133,17 @@ jobs: | |
with: | ||
build_type: pull-request | ||
script: ci/test_wheel_cudf.sh | ||
test-cudf-polars: | ||
needs: wheel-build-cudf | ||
secrets: inherit | ||
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | ||
with: | ||
# This selects "ARCH=amd64 + the latest supported Python + CUDA". | ||
matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) | ||
build_type: pull-request | ||
# This always runs, but only fails if this PR touches code in | ||
# pylibcudf or cudf_polars | ||
script: "ci/test_cudf_polars.sh" | ||
wheel-build-dask-cudf: | ||
needs: wheel-build-cudf | ||
secrets: inherit | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
#!/bin/bash | ||
# Copyright (c) 2024, NVIDIA CORPORATION. | ||
|
||
set -eou pipefail | ||
|
||
# We will only fail these tests if the PR touches code in pylibcudf | ||
# or cudf_polars itself. | ||
# Note, the three dots mean we are doing diff between the merge-base | ||
# of upstream and HEAD. So this is asking, "does _this branch_ touch | ||
# files in cudf_polars/pylibcudf", rather than "are there changes | ||
# between upstream and this branch which touch cudf_polars/pylibcudf" | ||
# TODO: is the target branch exposed anywhere in an environment variable? | ||
if [ -n "$(git diff --name-only origin/branch-24.08...HEAD -- python/cudf_polars/ python/cudf/cudf/_lib/pylibcudf/)" ]; | ||
then | ||
HAS_CHANGES=1 | ||
else | ||
HAS_CHANGES=0 | ||
fi | ||
|
||
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})" | ||
RAPIDS_PY_WHEEL_NAME="cudf_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 ./dist | ||
|
||
RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} | ||
RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ | ||
mkdir -p "${RAPIDS_TESTS_DIR}" | ||
|
||
rapids-logger "Install cudf wheel" | ||
# echo to expand wildcard before adding `[extra]` requires for pip | ||
python -m pip install $(echo ./dist/cudf*.whl)[test] | ||
|
||
rapids-logger "Install polars (allow pre-release versions)" | ||
python -m pip install 'polars>=1.0.0a0' | ||
|
||
rapids-logger "Install cudf_polars" | ||
python -m pip install --no-deps python/cudf_polars | ||
|
||
rapids-logger "Run cudf_polars tests" | ||
|
||
function set_exitcode() | ||
{ | ||
EXITCODE=$? | ||
} | ||
EXITCODE=0 | ||
trap set_exitcode ERR | ||
set +e | ||
|
||
python -m pytest \ | ||
--cache-clear \ | ||
--cov cudf_polars \ | ||
--cov-fail-under=100 \ | ||
--cov-config=python/cudf_polars/pyproject.toml \ | ||
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf_polars.xml" \ | ||
python/cudf_polars/tests | ||
|
||
trap ERR | ||
set -e | ||
|
||
if [ ${EXITCODE} != 0 ]; then | ||
rapids-logger "Testing FAILED: exitcode ${EXITCODE}" | ||
else | ||
rapids-logger "Testing PASSED" | ||
fi | ||
|
||
if [ ${HAS_CHANGES} == 1 ]; then | ||
exit ${EXITCODE} | ||
else | ||
exit 0 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.