-
Notifications
You must be signed in to change notification settings - Fork 912
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
qMerge remote-tracking branch 'upstream/feature/cudf-polars' into fea…
…t/manas_polars_docs
- Loading branch information
Showing
14 changed files
with
554 additions
and
66 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 |
---|---|---|
|
@@ -27,6 +27,7 @@ jobs: | |
- wheel-tests-cudf | ||
- wheel-build-cudf-polars | ||
- wheel-tests-cudf-polars | ||
- cudf-polars-polars-tests | ||
- wheel-build-dask-cudf | ||
- wheel-tests-dask-cudf | ||
- devcontainer | ||
|
@@ -154,6 +155,17 @@ jobs: | |
# This always runs, but only fails if this PR touches code in | ||
# pylibcudf or cudf_polars | ||
script: "ci/test_wheel_cudf_polars.sh" | ||
cudf-polars-polars-tests: | ||
needs: wheel-build-cudf-polars | ||
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_polars_tests.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,27 @@ | ||
#!/bin/bash | ||
# Copyright (c) 2024, NVIDIA CORPORATION. | ||
|
||
set -euo pipefail | ||
|
||
# Support invoking run_cudf_polars_pytests.sh outside the script directory | ||
# Assumption, polars has been cloned in the root of the repo. | ||
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../polars/ | ||
|
||
DESELECTED_TESTS=( | ||
"tests/unit/test_polars_import.py::test_polars_import" # relies on a polars built in place | ||
"tests/unit/streaming/test_streaming_sort.py::test_streaming_sort[True]" # relies on polars built in debug mode | ||
"tests/unit/test_cpu_check.py::test_check_cpu_flags_skipped_no_flags" # Mock library error | ||
"tests/docs/test_user_guide.py" # No dot binary in CI image | ||
) | ||
|
||
DESELECTED_TESTS=$(printf -- " --deselect %s" "${DESELECTED_TESTS[@]}") | ||
python -m pytest \ | ||
--import-mode=importlib \ | ||
--cache-clear \ | ||
-m "" \ | ||
-p cudf_polars.testing.plugin \ | ||
-v \ | ||
--tb=short \ | ||
${DESELECTED_TESTS} \ | ||
"$@" \ | ||
py-polars/tests |
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 | ||
rapids-logger "PR has changes in cudf-polars/pylibcudf, test fails treated as failure" | ||
else | ||
HAS_CHANGES=0 | ||
rapids-logger "PR does not have changes in cudf-polars/pylibcudf, test fails NOT treated as failure" | ||
fi | ||
|
||
rapids-logger "Download wheels" | ||
|
||
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})" | ||
RAPIDS_PY_WHEEL_NAME="cudf_polars_${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-s3 ./dist | ||
|
||
# Download the cudf built in the previous step | ||
RAPIDS_PY_WHEEL_NAME="cudf_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 ./local-cudf-dep | ||
|
||
rapids-logger "Install cudf" | ||
python -m pip install ./local-cudf-dep/cudf*.whl | ||
|
||
rapids-logger "Install cudf_polars" | ||
python -m pip install $(echo ./dist/cudf_polars*.whl) | ||
|
||
TAG=$(python -c 'import polars; print(f"py-{polars.__version__}")') | ||
rapids-logger "Clone polars to ${TAG}" | ||
git clone https://github.com/pola-rs/polars.git --branch ${TAG} --depth 1 | ||
|
||
# Install requirements for running polars tests | ||
rapids-logger "Install polars test requirements" | ||
python -m pip install -r polars/py-polars/requirements-dev.txt -r polars/py-polars/requirements-ci.txt | ||
|
||
function set_exitcode() | ||
{ | ||
EXITCODE=$? | ||
} | ||
EXITCODE=0 | ||
trap set_exitcode ERR | ||
set +e | ||
|
||
rapids-logger "Run polars tests" | ||
./ci/run_cudf_polars_polars_tests.sh | ||
|
||
trap ERR | ||
set -e | ||
|
||
if [ ${EXITCODE} != 0 ]; then | ||
rapids-logger "Running polars test suite FAILED: exitcode ${EXITCODE}" | ||
else | ||
rapids-logger "Running polars test suite 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
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
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
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.