Skip to content

Commit 9f441d9

Browse files
authored
[deps] Use UV to compile LLM dependencies (#51323)
uv much much faster also adds tests to enforce dependency integrity. Signed-off-by: kevin <kevin@anyscale.com>
1 parent 9dd14e0 commit 9f441d9

15 files changed

+424
-414
lines changed

.buildkite/others.rayci.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ steps:
1919
job_env: oss-ci-base_test-py3.11
2020
depends_on: oss-ci-base_test-multipy
2121

22+
- label: ":tapioca: build: uv pip compile LLM dependencies"
23+
key: uv_pip_compile_llm_dependencies
24+
instance_type: small
25+
command: ./ci/test_compile_llm_requirements.sh
26+
soft_fail: true
27+
job_env: oss-ci-base_test-py3.11
28+
depends_on: oss-ci-base_test-multipy
29+
2230
# docs
2331
- name: doctestbuild
2432
wanda: ci/docker/doctest.build.wanda.yaml

ci/compile_llm_requirements.sh

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,31 @@
33
set -euo pipefail
44

55
PYTHON_CODE="$(python -c "import sys; v=sys.version_info; print(f'py{v.major}{v.minor}')")"
6+
if [[ "${PYTHON_CODE}" != "py311" ]]; then
7+
echo "--- Python version is not 3.11"
8+
echo "--- Current Python version: ${PYTHON_CODE}"
9+
exit 1
10+
fi
611

712
for CUDA_CODE in cpu cu121 cu124 ; do
813
PYTHON_CUDA_CODE="${PYTHON_CODE}_${CUDA_CODE}"
914

1015
echo "--- Compile dependencies for ${PYTHON_CODE}_${CUDA_CODE}"
1116

12-
PIP_COMPILE=(
13-
pip-compile -v --generate-hashes --strip-extras
17+
UV_PIP_COMPILE=(
18+
uv pip compile -v --generate-hashes --strip-extras
1419
--unsafe-package ray
1520
# The version we use on python 3.9 is not installable on python 3.11
1621
--unsafe-package grpcio-tools
1722
# setuptools should not be pinned.
1823
--unsafe-package setuptools
24+
--index-url "https://pypi.org/simple"
1925
--extra-index-url "https://download.pytorch.org/whl/${CUDA_CODE}"
20-
--find-links "https://data.pyg.org/whl/torch-2.3.0+${CUDA_CODE}.html"
26+
--find-links "https://data.pyg.org/whl/torch-2.5.1+${CUDA_CODE}.html"
27+
--index-strategy unsafe-best-match
28+
--no-strip-markers
29+
--emit-index-url
30+
--emit-find-links
2131
)
2232

2333
mkdir -p /tmp/ray-deps
@@ -32,7 +42,7 @@ for CUDA_CODE in cpu cu121 cu124 ; do
3242
#
3343
# Needs to use the exact torch version.
3444
echo "--- Compile ray base test dependencies"
35-
"${PIP_COMPILE[@]}" \
45+
"${UV_PIP_COMPILE[@]}" \
3646
-c "/tmp/ray-deps/requirements_compiled.txt" \
3747
"python/requirements.txt" \
3848
"python/requirements/cloud-requirements.txt" \
@@ -41,7 +51,7 @@ for CUDA_CODE in cpu cu121 cu124 ; do
4151

4252
# Second, expand it into LLM test dependencies
4353
echo "--- Compile LLM test dependencies"
44-
"${PIP_COMPILE[@]}" \
54+
"${UV_PIP_COMPILE[@]}" \
4555
-c "python/requirements_compiled_ray_test_${PYTHON_CUDA_CODE}.txt" \
4656
"python/requirements.txt" \
4757
"python/requirements/cloud-requirements.txt" \
@@ -53,7 +63,7 @@ for CUDA_CODE in cpu cu121 cu124 ; do
5363
# Third, extract the ray base dependencies from ray base test dependencies.
5464
# TODO(aslonnie): This should be used for installing ray in the container images.
5565
echo "--- Compile ray base test dependencies"
56-
"${PIP_COMPILE[@]}" \
66+
"${UV_PIP_COMPILE[@]}" \
5767
-c "python/requirements_compiled_ray_test_${PYTHON_CUDA_CODE}.txt" \
5868
"python/requirements.txt" \
5969
-o "python/requirements_compiled_ray_${PYTHON_CUDA_CODE}.txt"
@@ -62,10 +72,11 @@ for CUDA_CODE in cpu cu121 cu124 ; do
6272
# which is also an expansion of the ray base dependencies.
6373
# TODO(aslonnie): This should be used for installing ray[llm] in the container images.
6474
echo "--- Compile LLM dependencies"
65-
"${PIP_COMPILE[@]}" \
75+
"${UV_PIP_COMPILE[@]}" \
6676
-c "python/requirements_compiled_rayllm_test_${PYTHON_CUDA_CODE}.txt" \
6777
"python/requirements.txt" \
6878
"python/requirements/llm/llm-requirements.txt" \
6979
-o "python/requirements_compiled_rayllm_${PYTHON_CUDA_CODE}.txt"
70-
7180
done
81+
82+
echo "--- Done"

ci/test_compile_llm_requirements.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# Install uv and set up Python
6+
pip install uv
7+
uv python install 3.11
8+
uv python pin 3.11
9+
10+
# Create a temporary directory for backup files and setup cleanup trap
11+
TEMP_DIR=$(mktemp -d)
12+
cleanup() {
13+
echo "Cleaning up temporary directory: $TEMP_DIR"
14+
rm -rf "$TEMP_DIR"
15+
}
16+
trap cleanup EXIT
17+
18+
echo "Created temporary directory: $TEMP_DIR"
19+
20+
# Create backup copies of req files to reference to
21+
cp ./python/requirements_compiled_rayllm_py311_cpu.txt "$TEMP_DIR/requirements_compiled_rayllm_py311_cpu_backup.txt"
22+
cp ./python/requirements_compiled_rayllm_py311_cu121.txt "$TEMP_DIR/requirements_compiled_rayllm_py311_cu121_backup.txt"
23+
cp ./python/requirements_compiled_rayllm_py311_cu124.txt "$TEMP_DIR/requirements_compiled_rayllm_py311_cu124_backup.txt"
24+
25+
./ci/compile_llm_requirements.sh
26+
27+
# Copy files to artifact mount on Buildkite
28+
cp ./python/requirements_compiled_rayllm_py311_cpu.txt /artifact-mount/
29+
cp ./python/requirements_compiled_rayllm_py311_cu121.txt /artifact-mount/
30+
cp ./python/requirements_compiled_rayllm_py311_cu124.txt /artifact-mount/
31+
32+
# Check all files and print if files are not up to date
33+
FAILED=0
34+
for VARIANT in cpu cu121 cu124; do
35+
diff --color -u ./python/requirements_compiled_rayllm_py311_${VARIANT}.txt "$TEMP_DIR/requirements_compiled_rayllm_py311_${VARIANT}_backup.txt" || {
36+
echo "requirements_compiled_rayllm_py311_${VARIANT}.txt is not up to date. Please download it from Artifacts tab and git push the changes."
37+
FAILED=1
38+
}
39+
done
40+
if [[ $FAILED -eq 1 ]]; then
41+
exit 1
42+
fi

python/requirements_compiled_ray_py311_cpu.txt

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
#
2-
# This file is autogenerated by pip-compile with Python 3.11
3-
# by the following command:
4-
#
5-
# pip-compile --constraint=python/requirements_compiled_ray_test_py311_cpu.txt --extra-index-url=https://download.pytorch.org/whl/cpu --find-links=https://data.pyg.org/whl/torch-2.3.0+cpu.html --generate-hashes --output-file=python/requirements_compiled_ray_py311_cpu.txt --strip-extras --unsafe-package=grpcio-tools --unsafe-package=ray --unsafe-package=setuptools python/requirements.txt
6-
#
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile --generate-hashes --strip-extras --unsafe-package ray --unsafe-package grpcio-tools --unsafe-package setuptools --index-url https://pypi.org/simple --extra-index-url https://download.pytorch.org/whl/cpu --find-links https://data.pyg.org/whl/torch-2.5.1+cpu.html --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links -c python/requirements_compiled_ray_test_py311_cpu.txt python/requirements.txt -o python/requirements_compiled_ray_py311_cpu.txt
3+
--index-url https://pypi.org/simple
74
--extra-index-url https://download.pytorch.org/whl/cpu
8-
--find-links https://data.pyg.org/whl/torch-2.3.0+cpu.html
5+
--find-links https://data.pyg.org/whl/torch-2.5.1+cpu.html
6+
--find-links https://data.pyg.org/whl/torch-2.5.1+cpu.html
97

108
aiohttp==3.9.5 \
119
--hash=sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8 \
@@ -146,7 +144,7 @@ certifi==2025.1.31 \
146144
# via
147145
# -c python/requirements_compiled_ray_test_py311_cpu.txt
148146
# requests
149-
cffi==1.16.0 \
147+
cffi==1.16.0 ; platform_python_implementation != 'PyPy' \
150148
--hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \
151149
--hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \
152150
--hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \
@@ -352,7 +350,7 @@ cryptography==42.0.5 \
352350
# via
353351
# -c python/requirements_compiled_ray_test_py311_cpu.txt
354352
# pyopenssl
355-
cupy-cuda12x==13.1.0 ; sys_platform != "darwin" \
353+
cupy-cuda12x==13.1.0 ; sys_platform != 'darwin' \
356354
--hash=sha256:230f8a8e99c81a653baa0ed00819990c0ed1f0cf0298214786b5e323461dc61a \
357355
--hash=sha256:2d16eaa2d086e416ac13467d4ff3184b9a081fe76b761ce51d4a46ec1c4bd28a \
358356
--hash=sha256:432273fd4b61a284f7d705d08b8291403548fd422bcbd945635cc155bc6a923d \
@@ -436,7 +434,7 @@ fastapi==0.109.2 \
436434
# via
437435
# -c python/requirements_compiled_ray_test_py311_cpu.txt
438436
# -r python/requirements.txt
439-
fastrlock==0.8.2 \
437+
fastrlock==0.8.2 ; sys_platform != 'darwin' \
440438
--hash=sha256:067edb0a0805bf61e17a251d5046af59f6e9d2b8ad01222e0ef7a0b7937d5548 \
441439
--hash=sha256:07ed3c7b3867c05a3d6be4ced200c7767000f3431b9be6da66972822dd86e8be \
442440
--hash=sha256:08315bde19d0c2e6b06593d5a418be3dc8f9b1ee721afa96867b9853fceb45cf \
@@ -630,7 +628,7 @@ googleapis-common-protos==1.61.0 \
630628
# -c python/requirements_compiled_ray_test_py311_cpu.txt
631629
# google-api-core
632630
# opentelemetry-exporter-otlp-proto-grpc
633-
grpcio==1.66.2 ; sys_platform != "darwin" \
631+
grpcio==1.66.2 \
634632
--hash=sha256:02697eb4a5cbe5a9639f57323b4c37bcb3ab2d48cec5da3dc2f13334d72790dd \
635633
--hash=sha256:03b0b307ba26fae695e067b94cbb014e27390f8bc5ac7a3a39b7723fed085604 \
636634
--hash=sha256:05bc2ceadc2529ab0b227b1310d249d95d9001cd106aa4d31e8871ad3c428d73 \
@@ -716,7 +714,7 @@ imageio==2.34.2 \
716714
# via
717715
# -c python/requirements_compiled_ray_test_py311_cpu.txt
718716
# scikit-image
719-
jinja2==3.1.2 \
717+
jinja2==3.1.2 ; sys_platform != 'win32' \
720718
--hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \
721719
--hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61
722720
# via
@@ -786,7 +784,7 @@ markdown-it-py==2.2.0 \
786784
# via
787785
# -c python/requirements_compiled_ray_test_py311_cpu.txt
788786
# rich
789-
markupsafe==2.1.3 \
787+
markupsafe==2.1.3 ; sys_platform != 'win32' \
790788
--hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \
791789
--hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \
792790
--hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \
@@ -856,7 +854,7 @@ mdurl==0.1.2 \
856854
# via
857855
# -c python/requirements_compiled_ray_test_py311_cpu.txt
858856
# markdown-it-py
859-
memray==1.10.0 ; platform_system != "Windows" and sys_platform != "darwin" and platform_machine != "aarch64" \
857+
memray==1.10.0 ; sys_platform != 'win32' \
860858
--hash=sha256:0a21745fb516b7a6efcd40aa7487c59e9313fcfc782d0193fcfcf00b48426874 \
861859
--hash=sha256:22f2a47871c172a0539bd72737bb6b294fc10c510464066b825d90fcd3bb4916 \
862860
--hash=sha256:23e8c402625cfb32d0e9edb5ec0945f3e5e54bc6b0c5699f6284302082b80bd4 \
@@ -1165,7 +1163,7 @@ packaging==23.0 \
11651163
# lazy-loader
11661164
# scikit-image
11671165
# tensorboardx
1168-
pandas==1.5.3 ; python_version < "3.12" \
1166+
pandas==1.5.3 \
11691167
--hash=sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813 \
11701168
--hash=sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792 \
11711169
--hash=sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406 \
@@ -1196,7 +1194,7 @@ pandas==1.5.3 ; python_version < "3.12" \
11961194
# via
11971195
# -c python/requirements_compiled_ray_test_py311_cpu.txt
11981196
# -r python/requirements.txt
1199-
pillow==10.3.0 ; platform_system != "Windows" \
1197+
pillow==10.3.0 \
12001198
--hash=sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c \
12011199
--hash=sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2 \
12021200
--hash=sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb \
@@ -1312,7 +1310,7 @@ protobuf==3.20.3 \
13121310
# googleapis-common-protos
13131311
# opentelemetry-proto
13141312
# tensorboardx
1315-
py-spy==0.4.0 ; python_version < "3.12" \
1313+
py-spy==0.4.0 ; python_full_version < '3.12' \
13161314
--hash=sha256:47cdda4c34d9b6cb01f3aaeceb2e88faf57da880207fe72ff6ff97e9bb6cc8a9 \
13171315
--hash=sha256:77d8f637ade38367d944874776f45b703b7ac5938b1f7be8891f3a5876ddbb96 \
13181316
--hash=sha256:806602ce7972782cc9c1e383f339bfc27bfb822d42485e6a3e0530ae5040e1f0 \
@@ -1377,7 +1375,7 @@ pyasn1-modules==0.3.0 \
13771375
# via
13781376
# -c python/requirements_compiled_ray_test_py311_cpu.txt
13791377
# google-auth
1380-
pycparser==2.21 \
1378+
pycparser==2.21 ; platform_python_implementation != 'PyPy' \
13811379
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
13821380
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
13831381
# via

python/requirements_compiled_ray_py311_cu121.txt

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
#
2-
# This file is autogenerated by pip-compile with Python 3.11
3-
# by the following command:
4-
#
5-
# pip-compile --constraint=python/requirements_compiled_ray_test_py311_cu121.txt --extra-index-url=https://download.pytorch.org/whl/cu121 --find-links=https://data.pyg.org/whl/torch-2.3.0+cu121.html --generate-hashes --output-file=python/requirements_compiled_ray_py311_cu121.txt --strip-extras --unsafe-package=grpcio-tools --unsafe-package=ray --unsafe-package=setuptools python/requirements.txt
6-
#
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile --generate-hashes --strip-extras --unsafe-package ray --unsafe-package grpcio-tools --unsafe-package setuptools --index-url https://pypi.org/simple --extra-index-url https://download.pytorch.org/whl/cu121 --find-links https://data.pyg.org/whl/torch-2.5.1+cu121.html --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links -c python/requirements_compiled_ray_test_py311_cu121.txt python/requirements.txt -o python/requirements_compiled_ray_py311_cu121.txt
3+
--index-url https://pypi.org/simple
74
--extra-index-url https://download.pytorch.org/whl/cu121
8-
--find-links https://data.pyg.org/whl/torch-2.3.0+cu121.html
5+
--find-links https://data.pyg.org/whl/torch-2.5.1+cu121.html
6+
--find-links https://data.pyg.org/whl/torch-2.5.1+cu121.html
97

108
aiohttp==3.9.5 \
119
--hash=sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8 \
@@ -146,7 +144,7 @@ certifi==2025.1.31 \
146144
# via
147145
# -c python/requirements_compiled_ray_test_py311_cu121.txt
148146
# requests
149-
cffi==1.16.0 \
147+
cffi==1.16.0 ; platform_python_implementation != 'PyPy' \
150148
--hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \
151149
--hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \
152150
--hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \
@@ -352,7 +350,7 @@ cryptography==42.0.5 \
352350
# via
353351
# -c python/requirements_compiled_ray_test_py311_cu121.txt
354352
# pyopenssl
355-
cupy-cuda12x==13.1.0 ; sys_platform != "darwin" \
353+
cupy-cuda12x==13.1.0 ; sys_platform != 'darwin' \
356354
--hash=sha256:230f8a8e99c81a653baa0ed00819990c0ed1f0cf0298214786b5e323461dc61a \
357355
--hash=sha256:2d16eaa2d086e416ac13467d4ff3184b9a081fe76b761ce51d4a46ec1c4bd28a \
358356
--hash=sha256:432273fd4b61a284f7d705d08b8291403548fd422bcbd945635cc155bc6a923d \
@@ -436,7 +434,7 @@ fastapi==0.109.2 \
436434
# via
437435
# -c python/requirements_compiled_ray_test_py311_cu121.txt
438436
# -r python/requirements.txt
439-
fastrlock==0.8.2 \
437+
fastrlock==0.8.2 ; sys_platform != 'darwin' \
440438
--hash=sha256:067edb0a0805bf61e17a251d5046af59f6e9d2b8ad01222e0ef7a0b7937d5548 \
441439
--hash=sha256:07ed3c7b3867c05a3d6be4ced200c7767000f3431b9be6da66972822dd86e8be \
442440
--hash=sha256:08315bde19d0c2e6b06593d5a418be3dc8f9b1ee721afa96867b9853fceb45cf \
@@ -630,7 +628,7 @@ googleapis-common-protos==1.61.0 \
630628
# -c python/requirements_compiled_ray_test_py311_cu121.txt
631629
# google-api-core
632630
# opentelemetry-exporter-otlp-proto-grpc
633-
grpcio==1.66.2 ; sys_platform != "darwin" \
631+
grpcio==1.66.2 \
634632
--hash=sha256:02697eb4a5cbe5a9639f57323b4c37bcb3ab2d48cec5da3dc2f13334d72790dd \
635633
--hash=sha256:03b0b307ba26fae695e067b94cbb014e27390f8bc5ac7a3a39b7723fed085604 \
636634
--hash=sha256:05bc2ceadc2529ab0b227b1310d249d95d9001cd106aa4d31e8871ad3c428d73 \
@@ -716,7 +714,7 @@ imageio==2.34.2 \
716714
# via
717715
# -c python/requirements_compiled_ray_test_py311_cu121.txt
718716
# scikit-image
719-
jinja2==3.1.2 \
717+
jinja2==3.1.2 ; sys_platform != 'win32' \
720718
--hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \
721719
--hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61
722720
# via
@@ -786,7 +784,7 @@ markdown-it-py==2.2.0 \
786784
# via
787785
# -c python/requirements_compiled_ray_test_py311_cu121.txt
788786
# rich
789-
markupsafe==2.1.3 \
787+
markupsafe==2.1.3 ; sys_platform != 'win32' \
790788
--hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \
791789
--hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \
792790
--hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \
@@ -856,7 +854,7 @@ mdurl==0.1.2 \
856854
# via
857855
# -c python/requirements_compiled_ray_test_py311_cu121.txt
858856
# markdown-it-py
859-
memray==1.10.0 ; platform_system != "Windows" and sys_platform != "darwin" and platform_machine != "aarch64" \
857+
memray==1.10.0 ; sys_platform != 'win32' \
860858
--hash=sha256:0a21745fb516b7a6efcd40aa7487c59e9313fcfc782d0193fcfcf00b48426874 \
861859
--hash=sha256:22f2a47871c172a0539bd72737bb6b294fc10c510464066b825d90fcd3bb4916 \
862860
--hash=sha256:23e8c402625cfb32d0e9edb5ec0945f3e5e54bc6b0c5699f6284302082b80bd4 \
@@ -1165,7 +1163,7 @@ packaging==23.0 \
11651163
# lazy-loader
11661164
# scikit-image
11671165
# tensorboardx
1168-
pandas==1.5.3 ; python_version < "3.12" \
1166+
pandas==1.5.3 \
11691167
--hash=sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813 \
11701168
--hash=sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792 \
11711169
--hash=sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406 \
@@ -1196,7 +1194,7 @@ pandas==1.5.3 ; python_version < "3.12" \
11961194
# via
11971195
# -c python/requirements_compiled_ray_test_py311_cu121.txt
11981196
# -r python/requirements.txt
1199-
pillow==10.3.0 ; platform_system != "Windows" \
1197+
pillow==10.3.0 \
12001198
--hash=sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c \
12011199
--hash=sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2 \
12021200
--hash=sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb \
@@ -1312,7 +1310,7 @@ protobuf==3.20.3 \
13121310
# googleapis-common-protos
13131311
# opentelemetry-proto
13141312
# tensorboardx
1315-
py-spy==0.4.0 ; python_version < "3.12" \
1313+
py-spy==0.4.0 ; python_full_version < '3.12' \
13161314
--hash=sha256:47cdda4c34d9b6cb01f3aaeceb2e88faf57da880207fe72ff6ff97e9bb6cc8a9 \
13171315
--hash=sha256:77d8f637ade38367d944874776f45b703b7ac5938b1f7be8891f3a5876ddbb96 \
13181316
--hash=sha256:806602ce7972782cc9c1e383f339bfc27bfb822d42485e6a3e0530ae5040e1f0 \
@@ -1377,7 +1375,7 @@ pyasn1-modules==0.3.0 \
13771375
# via
13781376
# -c python/requirements_compiled_ray_test_py311_cu121.txt
13791377
# google-auth
1380-
pycparser==2.21 \
1378+
pycparser==2.21 ; platform_python_implementation != 'PyPy' \
13811379
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
13821380
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
13831381
# via

0 commit comments

Comments
 (0)