Fix transient dependency issues caused by `requirements/common.txt` (#47015)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

Harry Mellor committed Jun 29, 2026 at 22:20 UTC 5316638a5eb98d764a5618c20a1558ffc24d3bc9
8 files changed +638 -72
docker/Dockerfile.cpu
+1
@@ -194,6 +194,7 @@ FROM base AS vllm-test-deps
194 WORKDIR /vllm-workspace
195
196 # Copy test requirements
197 +COPY requirements/common.txt requirements/common.txt
198 COPY requirements/test/cuda.in requirements/test/cpu.in
199
200 RUN \
requirements/test/cuda.in
+2 -4
@@ -1,3 +1,5 @@
1 +-r ../common.txt
2 +
3 # testing
4 pytest
5 tensorizer==2.10.1
@@ -13,7 +15,6 @@ albumentations # required for Nemotron Parse in test_common.py
15 av # required for audio_in_video tests
16 backoff # required for phi4mm test
17 blobfile # required for kimi-vl test
16 -einops # required for MPT, qwen-vl
18 httpx
19 librosa # required for audio tests
20 vector_quantize_pytorch # required for minicpmo_26 test
@@ -34,7 +35,6 @@ matplotlib # required for qwen-vl test
35 mistral_common[image,audio] >= 1.11.5 # required for voxtral test
36 num2words # required for smolvlm test
37 open_clip_torch==2.32.0 # Required for nemotron_vl test, Nemotron Parse in test_common.py
37 -opencv-python-headless >= 4.13.0 # required for video test
38 datamodel_code_generator # required for minicpm3 test
39 lm-eval[api]>=0.4.12 # required for model evaluation test
40 mteb[bm25s]>=2, <3 # required for mteb test
@@ -55,11 +55,9 @@ grpcio-reflection==1.78.0
55
56 arctic-inference == 0.1.1; platform_machine == "x86_64" # Required for suffix decoding test
57 numba == 0.65.0 # Required for N-gram speculative decoding
58 -numpy
58 runai-model-streamer[s3,gcs,azure]==0.15.7
59 fastsafetensors>=0.3.2
60 instanttensor>=0.1.5; platform_machine == "x86_64"
62 -pydantic>=2.12 # 2.11 leads to error on python 3.13
61 decord==0.6.0; platform_machine == "x86_64"
62 # terratorch is temporarily disabled while PyPI has the `lightning` package
63 # in `quarantined` status (every published terratorch version transitively
requirements/test/cuda.txt
+288 -18
@@ -9,6 +9,7 @@ aiohappyeyeballs==2.6.1
9 aiohttp==3.13.3
10 # via
11 # -c requirements/common.txt
12 + # -r requirements/test/../common.txt
13 # aiohttp-cors
14 # datasets
15 # fsspec
@@ -24,17 +25,34 @@ albumentations==1.4.6
25 alembic==1.16.4
26 # via optuna
27 annotated-doc==0.0.4
27 - # via fastapi
28 + # via
29 + # fastapi
30 + # typer
31 annotated-types==0.7.0
32 # via pydantic
30 -anyio==4.6.2.post1
33 +anthropic==0.112.0
34 + # via
35 + # -c requirements/common.txt
36 + # -r requirements/test/../common.txt
37 +anyio==4.14.1
38 # via
39 + # anthropic
40 # httpx
41 + # mcp
42 + # openai
43 + # sse-starlette
44 # starlette
45 + # watchfiles
46 +apache-tvm-ffi==0.1.9
47 + # via
48 + # -c requirements/cuda.txt
49 + # xgrammar
50 arctic-inference==0.1.1
51 # via -r requirements/test/cuda.in
52 argcomplete==3.5.1
53 # via datamodel-code-generator
54 +astor==0.8.1
55 + # via depyf
56 attrs==24.2.0
57 # via
58 # aiohttp
@@ -59,6 +77,8 @@ bitsandbytes==0.49.2
77 # via -r requirements/test/cuda.in
78 black==24.10.0
79 # via datamodel-code-generator
80 +blake3==1.0.9
81 + # via -r requirements/test/../common.txt
82 blobfile==3.0.0
83 # via -r requirements/test/cuda.in
84 bm25s==0.2.13
@@ -76,12 +96,17 @@ bounded-pool-executor==0.0.3
96 buildkite-test-collector==0.1.9
97 # via -r requirements/test/cuda.in
98 cachetools==5.5.2
79 - # via google-auth
99 + # via
100 + # -r requirements/test/../common.txt
101 + # google-auth
102 +cbor2==6.1.2
103 + # via -r requirements/test/../common.txt
104 certifi==2024.8.30
105 # via
106 # httpcore
107 # httpx
108 # requests
109 + # sentry-sdk
110 cffi==2.0.0
111 # via
112 # cryptography
@@ -98,9 +123,11 @@ click==8.1.7
123 # jiwer
124 # nltk
125 # ray
126 + # rich-toolkit
127 # schemathesis
102 - # typer
128 # uvicorn
129 +cloudpickle==3.1.2
130 + # via -r requirements/test/../common.txt
131 cohere-melody==0.9.0
132 # via -r requirements/test/cuda.in
133 colorama==0.4.6
@@ -111,6 +138,10 @@ colorful==0.5.6
138 # via ray
139 colorlog==6.10.1
140 # via optuna
141 +compressed-tensors==0.17.0
142 + # via
143 + # -c requirements/common.txt
144 + # -r requirements/test/../common.txt
145 contourpy==1.3.0
146 # via matplotlib
147 coverage==7.10.6
@@ -149,30 +180,49 @@ decorator==5.1.1
180 # via librosa
181 decord==0.6.0
182 # via -r requirements/test/cuda.in
183 +depyf==0.20.0
184 + # via
185 + # -c requirements/common.txt
186 + # -r requirements/test/../common.txt
187 +detect-installer==0.1.0
188 + # via fastapi-cloud-cli
189 dill==0.3.8
190 # via
191 # datasets
192 + # depyf
193 # evaluate
194 # lm-eval
195 # multiprocess
196 +diskcache==5.6.3
197 + # via
198 + # -c requirements/common.txt
199 + # -r requirements/test/../common.txt
200 distlib==0.3.9
201 # via virtualenv
202 +distro==1.9.0
203 + # via
204 + # anthropic
205 + # openai
206 dnspython==2.7.0
207 # via email-validator
208 docker==7.1.0
209 # via gpt-oss
210 docopt==0.6.2
211 # via num2words
212 +docstring-parser==0.18.0
213 + # via anthropic
214 einops==0.8.1
215 # via
168 - # -r requirements/test/cuda.in
216 + # -r requirements/test/../common.txt
217 # encodec
218 # vector-quantize-pytorch
219 # vocos
220 einx==0.3.0
221 # via vector-quantize-pytorch
222 email-validator==2.2.0
175 - # via pydantic
223 + # via
224 + # fastapi
225 + # pydantic
226 encodec==0.1.1
227 # via vocos
228 et-xmlfile==2.0.0
@@ -182,7 +232,17 @@ evaluate==0.4.3
232 fastapi==0.136.3
233 # via
234 # -c requirements/common.txt
235 + # -r requirements/test/../common.txt
236 # gpt-oss
237 + # model-hosting-container-standards
238 +fastapi-cli==0.0.27
239 + # via fastapi
240 +fastapi-cloud-cli==0.21.0
241 + # via fastapi-cli
242 +fastar==0.11.0
243 + # via
244 + # fastapi
245 + # fastapi-cloud-cli
246 fastparquet==2024.11.0
247 # via genai-perf
248 fastrlock==0.8.2
@@ -194,6 +254,7 @@ fastsafetensors==0.3.2
254 filelock==3.16.1
255 # via
256 # -c requirements/common.txt
257 + # -r requirements/test/../common.txt
258 # blobfile
259 # datasets
260 # huggingface-hub
@@ -243,7 +304,10 @@ google-crc32c==1.7.1
304 google-resumable-media==2.7.2
305 # via google-cloud-storage
306 googleapis-common-protos==1.70.0
246 - # via google-api-core
307 + # via
308 + # google-api-core
309 + # opentelemetry-exporter-otlp-proto-grpc
310 + # opentelemetry-exporter-otlp-proto-http
311 gpt-oss==0.0.8
312 # via -r requirements/test/cuda.in
313 graphql-core==3.2.6
@@ -254,6 +318,7 @@ grpcio==1.78.0
318 # via
319 # -r requirements/test/cuda.in
320 # grpcio-reflection
321 + # opentelemetry-exporter-otlp-proto-grpc
322 # ray
323 grpcio-reflection==1.78.0
324 # via -r requirements/test/cuda.in
@@ -275,12 +340,22 @@ html2text==2025.4.15
340 # via gpt-oss
341 httpcore==1.0.6
342 # via httpx
343 +httptools==0.8.0
344 + # via uvicorn
345 httpx==0.27.2
346 # via
347 # -r requirements/test/cuda.in
348 + # anthropic
349 + # fastapi
350 + # fastapi-cloud-cli
351 # huggingface-hub
352 + # mcp
353 + # model-hosting-container-standards
354 + # openai
355 # perceptron
356 # schemathesis
357 +httpx-sse==0.4.3
358 + # via mcp
359 huggingface-hub==1.10.2
360 # via
361 # accelerate
@@ -314,6 +389,8 @@ idna==3.10
389 # httpx
390 # requests
391 # yarl
392 +ijson==3.5.0
393 + # via -r requirements/test/../common.txt
394 imagehash==4.3.2
395 # via -r requirements/test/cuda.in
396 imageio==2.37.0
@@ -326,6 +403,8 @@ iniconfig==2.0.0
403 # via pytest
404 instanttensor==0.1.5
405 # via -r requirements/test/cuda.in
406 +interegular==0.3.3
407 + # via lm-format-enforcer
408 isodate==0.7.2
409 # via azure-storage-blob
410 isort==5.13.2
@@ -333,15 +412,21 @@ isort==5.13.2
412 jinja2==3.1.6
413 # via
414 # datamodel-code-generator
415 + # fastapi
416 # genai-perf
417 # lm-eval
418 # torch
419 +jiter==0.15.0
420 + # via
421 + # anthropic
422 + # openai
423 jiwer==3.0.5
424 # via -r requirements/test/cuda.in
425 jmespath==1.0.1
426 # via
427 # boto3
428 # botocore
429 + # model-hosting-container-standards
430 joblib==1.4.2
431 # via
432 # librosa
@@ -350,7 +435,9 @@ joblib==1.4.2
435 jsonschema==4.23.0
436 # via
437 # -c requirements/common.txt
438 + # -r requirements/test/../common.txt
439 # hypothesis-jsonschema
440 + # mcp
441 # mistral-common
442 # ray
443 jsonschema-rs==0.46.5
@@ -365,6 +452,10 @@ kaleido==0.2.1
452 # via genai-perf
453 kiwisolver==1.4.7
454 # via matplotlib
455 +lark==1.2.2
456 + # via
457 + # -c requirements/common.txt
458 + # -r requirements/test/../common.txt
459 lazy-loader==0.4
460 # via
461 # librosa
@@ -373,10 +464,20 @@ libnacl==2.1.0
464 # via tensorizer
465 librosa==0.10.2.post1
466 # via -r requirements/test/cuda.in
467 +llguidance==1.7.6
468 + # via
469 + # -c requirements/common.txt
470 + # -r requirements/test/../common.txt
471 llvmlite==0.47.0
472 # via numba
473 lm-eval==0.4.12
474 # via -r requirements/test/cuda.in
475 +lm-format-enforcer==0.11.3
476 + # via
477 + # -c requirements/common.txt
478 + # -r requirements/test/../common.txt
479 +loguru==0.7.3
480 + # via compressed-tensors
481 lxml==5.3.0
482 # via
483 # blobfile
@@ -398,12 +499,19 @@ mbstrdecoder==1.1.3
499 # dataproperty
500 # pytablewriter
501 # typepy
502 +mcp==1.28.1
503 + # via -r requirements/test/../common.txt
504 mdurl==0.1.2
505 # via markdown-it-py
506 mistral-common==1.11.5
507 # via
508 # -c requirements/common.txt
509 + # -r requirements/test/../common.txt
510 # -r requirements/test/cuda.in
511 +model-hosting-container-standards==0.1.16
512 + # via
513 + # -c requirements/common.txt
514 + # -r requirements/test/../common.txt
515 more-itertools==10.5.0
516 # via lm-eval
517 mpmath==1.3.0
@@ -418,6 +526,8 @@ msgpack==1.1.0
526 # via
527 # librosa
528 # ray
529 +msgspec==0.21.1
530 + # via -r requirements/test/../common.txt
531 mteb==2.8.3
532 # via -r requirements/test/cuda.in
533 multidict==6.1.0
@@ -434,6 +544,8 @@ networkx==3.2.1
544 # via
545 # scikit-image
546 # torch
547 +ninja==1.13.0
548 + # via -r requirements/test/../common.txt
549 nltk==3.9.1
550 # via rouge-score
551 num2words==0.5.14
@@ -445,7 +557,7 @@ numba==0.65.0
557 # librosa
558 numpy==2.2.6
559 # via
448 - # -r requirements/test/cuda.in
560 + # -r requirements/test/../common.txt
561 # accelerate
562 # albumentations
563 # bitsandbytes
@@ -489,6 +601,7 @@ numpy==2.2.6
601 # transformers
602 # tritonclient
603 # vocos
604 + # xgrammar
605 nvidia-cublas==13.1.0.3
606 # via
607 # cuda-toolkit
@@ -530,9 +643,14 @@ nvidia-nvtx==13.0.85
643 # via cuda-toolkit
644 open-clip-torch==2.32.0
645 # via -r requirements/test/cuda.in
646 +openai==2.44.0
647 + # via
648 + # -c requirements/common.txt
649 + # -r requirements/test/../common.txt
650 openai-harmony==0.0.4
651 # via
652 # -c requirements/common.txt
653 + # -r requirements/test/../common.txt
654 # gpt-oss
655 opencensus==0.11.4
656 # via ray
@@ -541,7 +659,7 @@ opencensus-context==0.1.3
659 opencv-python-headless==4.13.0.90
660 # via
661 # -c requirements/common.txt
544 - # -r requirements/test/cuda.in
662 + # -r requirements/test/../common.txt
663 # albumentations
664 # mistral-common
665 openpyxl==3.1.5
@@ -549,24 +667,54 @@ openpyxl==3.1.5
667 opentelemetry-api==1.35.0
668 # via
669 # -c requirements/common.txt
670 + # -r requirements/test/../common.txt
671 + # opentelemetry-exporter-otlp-proto-grpc
672 + # opentelemetry-exporter-otlp-proto-http
673 # opentelemetry-exporter-prometheus
674 # opentelemetry-sdk
675 # opentelemetry-semantic-conventions
676 +opentelemetry-exporter-otlp==1.35.0
677 + # via
678 + # -c requirements/common.txt
679 + # -r requirements/test/../common.txt
680 +opentelemetry-exporter-otlp-proto-common==1.35.0
681 + # via
682 + # opentelemetry-exporter-otlp-proto-grpc
683 + # opentelemetry-exporter-otlp-proto-http
684 +opentelemetry-exporter-otlp-proto-grpc==1.35.0
685 + # via opentelemetry-exporter-otlp
686 +opentelemetry-exporter-otlp-proto-http==1.35.0
687 + # via opentelemetry-exporter-otlp
688 opentelemetry-exporter-prometheus==0.56b0
689 # via ray
690 opentelemetry-proto==1.35.0
558 - # via ray
691 + # via
692 + # opentelemetry-exporter-otlp-proto-common
693 + # opentelemetry-exporter-otlp-proto-grpc
694 + # opentelemetry-exporter-otlp-proto-http
695 + # ray
696 opentelemetry-sdk==1.35.0
697 # via
698 # -c requirements/common.txt
699 + # -r requirements/test/../common.txt
700 + # opentelemetry-exporter-otlp-proto-grpc
701 + # opentelemetry-exporter-otlp-proto-http
702 # opentelemetry-exporter-prometheus
703 # ray
704 opentelemetry-semantic-conventions==0.56b0
705 # via opentelemetry-sdk
706 +opentelemetry-semantic-conventions-ai==0.4.13
707 + # via
708 + # -c requirements/common.txt
709 + # -r requirements/test/../common.txt
710 optuna==3.6.1
711 # via genai-perf
712 orjson==3.11.5
713 # via genai-perf
714 +outlines-core==0.2.14
715 + # via
716 + # -c requirements/common.txt
717 + # -r requirements/test/../common.txt
718 packaging==24.2
719 # via
720 # accelerate
@@ -578,6 +726,7 @@ packaging==24.2
726 # fastparquet
727 # huggingface-hub
728 # lazy-loader
729 + # lm-format-enforcer
730 # matplotlib
731 # optuna
732 # peft
@@ -597,6 +746,8 @@ pandas==2.2.3
746 # fastparquet
747 # genai-perf
748 # statsmodels
749 +partial-json-parser==0.2.1.1.post7
750 + # via -r requirements/test/../common.txt
751 pathspec==0.12.1
752 # via black
753 pathvalidate==3.2.1
@@ -611,6 +762,7 @@ perf-analyzer==0.1.0
762 # via genai-perf
763 pillow==10.4.0
764 # via
765 + # -r requirements/test/../common.txt
766 # genai-perf
767 # imagehash
768 # imageio
@@ -644,8 +796,14 @@ pqdm==0.2.0
796 prometheus-client==0.22.0
797 # via
798 # -c requirements/common.txt
799 + # -r requirements/test/../common.txt
800 # opentelemetry-exporter-prometheus
801 + # prometheus-fastapi-instrumentator
802 # ray
803 +prometheus-fastapi-instrumentator==8.0.2
804 + # via
805 + # -c requirements/common.txt
806 + # -r requirements/test/../common.txt
807 propcache==0.2.0
808 # via
809 # aiohttp
@@ -655,6 +813,7 @@ proto-plus==1.26.1
813 protobuf==6.33.6
814 # via
815 # -c requirements/common.txt
816 + # -r requirements/test/../common.txt
817 # google-api-core
818 # googleapis-common-protos
819 # grpcio-reflection
@@ -664,11 +823,14 @@ protobuf==6.33.6
823 # tensorizer
824 psutil==6.1.0
825 # via
826 + # -r requirements/test/../common.txt
827 # accelerate
828 # peft
829 # tensorizer
830 py==1.11.0
831 # via pytest-forked
832 +py-cpuinfo==9.0.0
833 + # via -r requirements/test/../common.txt
834 py-spy==0.4.0
835 # via ray
836 pyarrow==23.0.0
@@ -681,6 +843,8 @@ pyasn1==0.6.1
843 # rsa
844 pyasn1-modules==0.4.2
845 # via google-auth
846 +pybase64==1.4.3
847 + # via -r requirements/test/../common.txt
848 pycountry==24.6.1
849 # via pydantic-extra-types
850 pycparser==2.22
@@ -690,26 +854,43 @@ pycryptodomex==3.22.0
854 pydantic==2.12.0
855 # via
856 # -c requirements/common.txt
693 - # -r requirements/test/cuda.in
857 + # -r requirements/test/../common.txt
858 # albumentations
859 + # anthropic
860 + # compressed-tensors
861 # datamodel-code-generator
862 # fastapi
863 + # fastapi-cloud-cli
864 # gpt-oss
865 + # lm-format-enforcer
866 + # mcp
867 # mistral-common
868 + # model-hosting-container-standards
869 # mteb
870 + # openai
871 # openai-harmony
872 # pydantic-extra-types
873 + # pydantic-settings
874 # ray
875 + # xgrammar
876 pydantic-core==2.41.1
877 # via pydantic
878 pydantic-extra-types==2.10.5
706 - # via mistral-common
879 + # via
880 + # fastapi
881 + # mistral-common
882 +pydantic-settings==2.14.2
883 + # via
884 + # fastapi
885 + # mcp
886 pygments==2.18.0
887 # via
888 # pytest
889 # rich
890 pyjwt==2.11.0
712 - # via msal
891 + # via
892 + # mcp
893 + # msal
894 pyparsing==3.2.0
895 # via matplotlib
896 pyrate-limiter==4.4.0
@@ -751,6 +932,16 @@ python-dateutil==2.9.0.post0
932 # matplotlib
933 # pandas
934 # typepy
935 +python-dotenv==1.2.2
936 + # via
937 + # pydantic-settings
938 + # uvicorn
939 +python-json-logger==4.1.0
940 + # via -r requirements/test/../common.txt
941 +python-multipart==0.0.32
942 + # via
943 + # fastapi
944 + # mcp
945 python-rapidjson==1.20
946 # via tritonclient
947 pytrec-eval-terrier==0.5.7
@@ -763,12 +954,14 @@ pywavelets==1.9.0
954 # via imagehash
955 pyyaml==6.0.2
956 # via
957 + # -r requirements/test/../common.txt
958 # accelerate
959 # albumentations
960 # datamodel-code-generator
961 # datasets
962 # genai-perf
963 # huggingface-hub
964 + # lm-format-enforcer
965 # optuna
966 # peft
967 # ray
@@ -776,7 +969,12 @@ pyyaml==6.0.2
969 # schemathesis
970 # timm
971 # transformers
972 + # uvicorn
973 # vocos
974 +pyzmq==27.1.0
975 + # via
976 + # -c requirements/common.txt
977 + # -r requirements/test/../common.txt
978 rapidfuzz==3.12.1
979 # via jiwer
980 ray==2.48.0
@@ -789,6 +987,7 @@ referencing==0.35.1
987 # jsonschema-specifications
988 regex==2026.2.28
989 # via
990 + # -r requirements/test/../common.txt
991 # nltk
992 # open-clip-torch
993 # sacrebleu
@@ -797,6 +996,7 @@ regex==2026.2.28
996 requests==2.32.3
997 # via
998 # -c requirements/common.txt
999 + # -r requirements/test/../common.txt
1000 # azure-core
1001 # buildkite-test-collector
1002 # datasets
@@ -809,6 +1009,7 @@ requests==2.32.3
1009 # mistral-common
1010 # msal
1011 # mteb
1012 + # opentelemetry-exporter-otlp-proto-http
1013 # pooch
1014 # ray
1015 # responses
@@ -822,8 +1023,15 @@ rich==13.9.4
1023 # genai-perf
1024 # mteb
1025 # perceptron
1026 + # rich-toolkit
1027 # schemathesis
1028 # typer
1029 +rich-toolkit==0.20.1
1030 + # via
1031 + # fastapi-cli
1032 + # fastapi-cloud-cli
1033 +rignore==0.7.6
1034 + # via fastapi-cloud-cli
1035 rouge-score==0.1.2
1036 # via lm-eval
1037 rpds-py==0.20.1
@@ -847,6 +1055,7 @@ sacrebleu==2.4.3
1055 safetensors==0.7.0
1056 # via
1057 # -c requirements/common.txt
1058 + # -r requirements/test/../common.txt
1059 # accelerate
1060 # open-clip-torch
1061 # peft
@@ -882,9 +1091,17 @@ sentence-transformers==5.2.0
1091 # via
1092 # -r requirements/test/cuda.in
1093 # mteb
1094 +sentencepiece==0.2.1
1095 + # via -r requirements/test/../common.txt
1096 +sentry-sdk==2.63.0
1097 + # via fastapi-cloud-cli
1098 +setproctitle==1.3.7
1099 + # via -r requirements/test/../common.txt
1100 setuptools==77.0.3
1101 # via
1102 # -c requirements/common.txt
1103 + # -r requirements/test/../common.txt
1104 + # model-hosting-container-standards
1105 # pytablewriter
1106 # torch
1107 shellingham==1.5.4
@@ -894,6 +1111,7 @@ shellingham==1.5.4
1111 six==1.16.0
1112 # via
1113 # -c requirements/common.txt
1114 + # -r requirements/test/../common.txt
1115 # junit-xml
1116 # opencensus
1117 # python-dateutil
@@ -902,8 +1120,9 @@ smart-open==7.1.0
1120 # via ray
1121 sniffio==1.3.1
1122 # via
905 - # anyio
1123 + # anthropic
1124 # httpx
1125 + # openai
1126 sortedcontainers==2.4.0
1127 # via hypothesis
1128 soundfile==0.12.1
@@ -922,10 +1141,17 @@ sqlalchemy==2.0.41
1141 # optuna
1142 sqlitedict==2.1.0
1143 # via lm-eval
1144 +sse-starlette==3.4.5
1145 + # via mcp
1146 starlette==1.3.1
1147 # via
1148 # -c requirements/common.txt
1149 + # -r requirements/test/../common.txt
1150 # fastapi
1151 + # mcp
1152 + # model-hosting-container-standards
1153 + # prometheus-fastapi-instrumentator
1154 + # sse-starlette
1155 # starlette-testclient
1156 starlette-testclient==0.4.1
1157 # via schemathesis
@@ -933,6 +1159,8 @@ statsmodels==0.14.4
1159 # via genai-perf
1160 structlog==25.4.0
1161 # via gpt-oss
1162 +supervisor==4.3.0
1163 + # via model-hosting-container-standards
1164 sympy==1.13.3
1165 # via
1166 # einx
@@ -962,6 +1190,7 @@ tifffile==2025.3.30
1190 tiktoken==0.12.0
1191 # via
1192 # -c requirements/common.txt
1193 + # -r requirements/test/../common.txt
1194 # gpt-oss
1195 # lm-eval
1196 # mistral-common
@@ -973,6 +1202,7 @@ timm==1.0.17
1202 tokenizers==0.22.2
1203 # via
1204 # -c requirements/common.txt
1205 + # -r requirements/test/../common.txt
1206 # -r requirements/test/cuda.in
1207 # transformers
1208 torch==2.11.0+cu130
@@ -981,6 +1211,7 @@ torch==2.11.0+cu130
1211 # -r requirements/test/cuda.in
1212 # accelerate
1213 # bitsandbytes
1214 + # compressed-tensors
1215 # encodec
1216 # instanttensor
1217 # mteb
@@ -994,6 +1225,7 @@ torch==2.11.0+cu130
1225 # torchvision
1226 # vector-quantize-pytorch
1227 # vocos
1228 + # xgrammar
1229 torchaudio==2.11.0+cu130
1230 # via
1231 # -c requirements/cuda.txt
@@ -1009,6 +1241,7 @@ torchvision==0.26.0+cu130
1241 # timm
1242 tqdm==4.67.3
1243 # via
1244 + # -r requirements/test/../common.txt
1245 # datasets
1246 # evaluate
1247 # huggingface-hub
@@ -1016,6 +1249,7 @@ tqdm==4.67.3
1249 # mteb
1250 # nltk
1251 # open-clip-torch
1252 + # openai
1253 # optuna
1254 # peft
1255 # pqdm
@@ -1025,15 +1259,20 @@ tqdm==4.67.3
1259 transformers==5.5.3
1260 # via
1261 # -c requirements/common.txt
1262 + # -r requirements/test/../common.txt
1263 # -r requirements/test/cuda.in
1264 + # compressed-tensors
1265 # genai-perf
1266 # peft
1267 # sentence-transformers
1268 # transformers-stream-generator
1269 + # xgrammar
1270 transformers-stream-generator==0.0.5
1271 # via -r requirements/test/cuda.in
1272 triton==3.6.0
1036 - # via torch
1273 + # via
1274 + # torch
1275 + # xgrammar
1276 tritonclient==2.64.0
1277 # via -r requirements/test/cuda.in
1278 typepy==1.3.2
@@ -1041,8 +1280,10 @@ typepy==1.3.2
1280 # dataproperty
1281 # pytablewriter
1282 # tabledata
1044 -typer==0.15.2
1283 +typer==0.26.8
1284 # via
1285 + # fastapi-cli
1286 + # fastapi-cloud-cli
1287 # fastsafetensors
1288 # huggingface-hub
1289 # perceptron
@@ -1050,9 +1291,13 @@ typer==0.15.2
1291 typing-extensions==4.15.0
1292 # via
1293 # -c requirements/common.txt
1294 + # -r requirements/test/../common.txt
1295 # aiosignal
1296 # albumentations
1297 # alembic
1298 + # anthropic
1299 + # anyio
1300 + # apache-tvm-ffi
1301 # azure-core
1302 # azure-identity
1303 # azure-storage-blob
@@ -1062,9 +1307,13 @@ typing-extensions==4.15.0
1307 # huggingface-hub
1308 # librosa
1309 # lm-eval
1310 + # mcp
1311 # mistral-common
1312 # mteb
1313 + # openai
1314 # opentelemetry-api
1315 + # opentelemetry-exporter-otlp-proto-grpc
1316 + # opentelemetry-exporter-otlp-proto-http
1317 # opentelemetry-sdk
1318 # opentelemetry-semantic-conventions
1319 # pqdm
@@ -1072,17 +1321,20 @@ typing-extensions==4.15.0
1321 # pydantic-core
1322 # pydantic-extra-types
1323 # pytest-asyncio
1324 + # rich-toolkit
1325 # schemathesis
1326 # sentence-transformers
1327 # sqlalchemy
1328 # starlette
1329 # torch
1080 - # typer
1330 # typing-inspection
1331 + # xgrammar
1332 typing-inspection==0.4.2
1333 # via
1334 # fastapi
1335 + # mcp
1336 # pydantic
1337 + # pydantic-settings
1338 tzdata==2024.2
1339 # via pandas
1340 urllib3==2.2.3
@@ -1092,23 +1344,41 @@ urllib3==2.2.3
1344 # docker
1345 # requests
1346 # responses
1347 + # sentry-sdk
1348 # tritonclient
1349 uvicorn==0.35.0
1097 - # via gpt-oss
1350 + # via
1351 + # fastapi
1352 + # fastapi-cli
1353 + # fastapi-cloud-cli
1354 + # gpt-oss
1355 + # mcp
1356 +uvloop==0.22.1
1357 + # via uvicorn
1358 vector-quantize-pytorch==1.21.2
1359 # via -r requirements/test/cuda.in
1360 virtualenv==20.31.2
1361 # via ray
1362 vocos==0.1.0
1363 # via -r requirements/test/cuda.in
1364 +watchfiles==1.2.0
1365 + # via
1366 + # -r requirements/test/../common.txt
1367 + # uvicorn
1368 wcwidth==0.2.13
1369 # via ftfy
1370 +websockets==16.0
1371 + # via uvicorn
1372 werkzeug==3.1.3
1373 # via schemathesis
1374 word2number==1.1
1375 # via lm-eval
1376 wrapt==1.17.2
1377 # via smart-open
1378 +xgrammar==0.2.3
1379 + # via
1380 + # -c requirements/common.txt
1381 + # -r requirements/test/../common.txt
1382 xxhash==3.5.0
1383 # via
1384 # datasets
requirements/test/rocm.in
-4
@@ -15,7 +15,6 @@ albumentations # required for Nemotron Parse in test_common.py
15 av # required for audio_in_video tests
16 backoff # required for phi4mm test
17 blobfile # required for kimi-vl test
18 -einops # required for MPT, qwen-vl
18 httpx
19 librosa # required for audio tests
20 vector_quantize_pytorch # required for minicpmo_26 test
@@ -33,7 +32,6 @@ matplotlib # required for qwen-vl test
32 mistral_common[image,audio]>=1.11.5 # required for voxtral test
33 num2words # required for smolvlm test
34 open_clip_torch==2.32.0 # Required for nemotron_vl test, Nemotron Parse in test_common.py
36 -opencv-python-headless>=4.13.0 # required for video test
35 datamodel_code_generator # required for minicpm3 test
36 lm-eval[api]>=0.4.12 # required for model evaluation test
37 mteb[bm25s]>=2, <3 # required for mteb test
@@ -54,11 +52,9 @@ grpcio-reflection==1.78.0
52
53 arctic-inference==0.1.1 # Required for suffix decoding test
54 numba==0.65.0 # Required for N-gram speculative decoding
57 -numpy
55 runai-model-streamer[s3,gcs,azure]==0.15.7
56 fastsafetensors>=0.3.2
57 instanttensor>=0.1.5
61 -pydantic>=2.12 # 2.11 leads to error on python 3.13
58 decord==0.6.0
59
60 # Prithvi tests
requirements/test/rocm.txt
-4
@@ -205,7 +205,6 @@ docstring-parser==0.17.0
205 einops==0.8.2
206 # via
207 # -r requirements/test/../common.txt
208 - # -r requirements/test/rocm.in
208 # encodec
209 # vector-quantize-pytorch
210 # vocos
@@ -561,7 +560,6 @@ numba==0.65.0
560 numpy==2.2.6
561 # via
562 # -r requirements/test/../common.txt
564 - # -r requirements/test/rocm.in
563 # accelerate
564 # albumentations
565 # bitsandbytes
@@ -630,7 +628,6 @@ opencv-python-headless==4.13.0.92
628 # via
629 # -c requirements/common.txt
630 # -r requirements/test/../common.txt
633 - # -r requirements/test/rocm.in
631 # albumentations
632 # mistral-common
633 openpyxl==3.1.5
@@ -834,7 +831,6 @@ pydantic==2.12.5
831 # via
832 # -c requirements/common.txt
833 # -r requirements/test/../common.txt
837 - # -r requirements/test/rocm.in
834 # albumentations
835 # anthropic
836 # compressed-tensors
requirements/test/xpu.in
+2
@@ -1,3 +1,5 @@
1 +-r ../common.txt
2 +
3 # --- Test Infrastructure ---
4 tblib
5 pytest
requirements/test/xpu.txt
+316 -4
@@ -11,6 +11,7 @@ aiohappyeyeballs==2.6.1
11 aiohttp==3.13.4
12 # via
13 # -c requirements/common.txt
14 + # -r requirements/test/../common.txt
15 # fsspec
16 # gpt-oss
17 # lm-eval
@@ -24,12 +25,25 @@ annotated-doc==0.0.4
25 # typer
26 annotated-types==0.7.0
27 # via pydantic
28 +anthropic==0.112.0
29 + # via
30 + # -c requirements/common.txt
31 + # -r requirements/test/../common.txt
32 anyio==4.13.0
33 # via
34 + # anthropic
35 # httpx
36 + # mcp
37 + # openai
38 + # sse-starlette
39 # starlette
40 + # watchfiles
41 +apache-tvm-ffi==0.1.12
42 + # via xgrammar
43 arctic-inference==0.1.1
44 # via -r requirements/test/xpu.in
45 +astor==0.8.1
46 + # via depyf
47 attrs==26.1.0
48 # via
49 # aiohttp
@@ -39,6 +53,8 @@ audioread==3.0.1
53 # via
54 # -r requirements/test/xpu.in
55 # librosa
56 +blake3==1.0.9
57 + # via -r requirements/test/../common.txt
58 blobfile==3.0.0
59 # via -r requirements/test/xpu.in
60 bm25s==0.2.13
@@ -47,13 +63,20 @@ bm25s==0.2.13
63 # mteb
64 bounded-pool-executor==0.0.3
65 # via pqdm
66 +cachetools==7.1.4
67 + # via -r requirements/test/../common.txt
68 +cbor2==6.1.2
69 + # via -r requirements/test/../common.txt
70 certifi==2026.2.25
71 # via
72 # httpcore
73 # httpx
74 # requests
75 + # sentry-sdk
76 cffi==2.0.0
56 - # via soundfile
77 + # via
78 + # cryptography
79 + # soundfile
80 chardet==5.2.0
81 # via mbstrdecoder
82 charset-normalizer==3.4.6
@@ -64,13 +87,22 @@ click==8.3.1
87 # via
88 # jiwer
89 # nltk
90 + # rich-toolkit
91 # schemathesis
92 # typer
93 # uvicorn
94 +cloudpickle==3.1.2
95 + # via -r requirements/test/../common.txt
96 colorama==0.4.6
97 # via sacrebleu
98 +compressed-tensors==0.17.0
99 + # via
100 + # -c requirements/common.txt
101 + # -r requirements/test/../common.txt
102 coverage==7.13.5
103 # via pytest-cov
104 +cryptography==49.0.0
105 + # via pyjwt
106 dataproperty==1.1.0
107 # via
108 # pytablewriter
@@ -82,16 +114,35 @@ datasets==4.8.4
114 # mteb
115 decorator==5.2.1
116 # via librosa
117 +depyf==0.20.0
118 + # via
119 + # -c requirements/common.txt
120 + # -r requirements/test/../common.txt
121 +detect-installer==0.1.0
122 + # via fastapi-cloud-cli
123 dill==0.4.1
124 # via
125 # datasets
126 + # depyf
127 # evaluate
128 # lm-eval
129 # multiprocess
130 +diskcache==5.6.3
131 + # via
132 + # -c requirements/common.txt
133 + # -r requirements/test/../common.txt
134 +distro==1.9.0
135 + # via
136 + # anthropic
137 + # openai
138 +dnspython==2.8.0
139 + # via email-validator
140 docker==7.1.0
141 # via gpt-oss
142 docopt==0.6.2
143 # via num2words
144 +docstring-parser==0.18.0
145 + # via anthropic
146 dpcpp-cpp-rt==2025.3.2
147 # via
148 # onemkl-sycl-blas
@@ -100,15 +151,30 @@ dpcpp-cpp-rt==2025.3.2
151 # onemkl-sycl-rng
152 # onemkl-sycl-sparse
153 # torch
154 +einops==0.8.2
155 + # via -r requirements/test/../common.txt
156 +email-validator==2.3.0
157 + # via
158 + # fastapi
159 + # pydantic
160 evaluate==0.4.6
161 # via lm-eval
162 fastapi==0.135.2
163 # via
164 # -c requirements/common.txt
165 + # -r requirements/test/../common.txt
166 # gpt-oss
167 + # model-hosting-container-standards
168 +fastapi-cli==0.0.27
169 + # via fastapi
170 +fastapi-cloud-cli==0.21.0
171 + # via fastapi-cli
172 +fastar==0.11.0
173 + # via fastapi-cloud-cli
174 filelock==3.25.2
175 # via
176 # -c requirements/common.txt
177 + # -r requirements/test/../common.txt
178 # blobfile
179 # datasets
180 # huggingface-hub
@@ -124,10 +190,16 @@ fsspec==2026.2.0
190 # evaluate
191 # huggingface-hub
192 # torch
193 +googleapis-common-protos==1.75.0
194 + # via
195 + # opentelemetry-exporter-otlp-proto-grpc
196 + # opentelemetry-exporter-otlp-proto-http
197 gpt-oss==0.0.8
198 # via -r requirements/test/xpu.in
199 graphql-core==3.2.8
200 # via hypothesis-graphql
201 +grpcio==1.81.1
202 + # via opentelemetry-exporter-otlp-proto-grpc
203 h11==0.16.0
204 # via
205 # httpcore
@@ -140,11 +212,21 @@ html2text==2025.4.15
212 # via gpt-oss
213 httpcore==1.0.9
214 # via httpx
215 +httptools==0.8.0
216 + # via uvicorn
217 httpx==0.28.1
218 # via
219 + # anthropic
220 # datasets
221 + # fastapi
222 + # fastapi-cloud-cli
223 # huggingface-hub
224 + # mcp
225 + # model-hosting-container-standards
226 + # openai
227 # schemathesis
228 +httpx-sse==0.4.3
229 + # via mcp
230 huggingface-hub==1.10.2
231 # via
232 # accelerate
@@ -166,9 +248,12 @@ hypothesis-jsonschema==0.23.1
248 idna==3.11
249 # via
250 # anyio
251 + # email-validator
252 # httpx
253 # requests
254 # yarl
255 +ijson==3.5.0
256 + # via -r requirements/test/../common.txt
257 imageio==2.37.3
258 # via scikit-image
259 impi-rt==2021.17.2
@@ -212,13 +297,22 @@ intel-sycl-rt==2025.3.2
297 # dpcpp-cpp-rt
298 # oneccl
299 # torch
300 +interegular==0.3.3
301 + # via lm-format-enforcer
302 jinja2==3.1.6
303 # via
304 # -c requirements/xpu.txt
305 + # fastapi
306 # lm-eval
307 # torch
308 +jiter==0.15.0
309 + # via
310 + # anthropic
311 + # openai
312 jiwer==4.0.0
313 # via -r requirements/test/xpu.in
314 +jmespath==1.1.0
315 + # via model-hosting-container-standards
316 joblib==1.5.3
317 # via
318 # librosa
@@ -227,7 +321,9 @@ joblib==1.5.3
321 jsonschema==4.26.0
322 # via
323 # -c requirements/common.txt
324 + # -r requirements/test/../common.txt
325 # hypothesis-jsonschema
326 + # mcp
327 # mistral-common
328 # schemathesis
329 jsonschema-rs==0.45.0
@@ -236,16 +332,30 @@ jsonschema-specifications==2025.9.1
332 # via jsonschema
333 junit-xml==1.9
334 # via schemathesis
335 +lark==1.2.2
336 + # via
337 + # -c requirements/common.txt
338 + # -r requirements/test/../common.txt
339 lazy-loader==0.5
340 # via
341 # librosa
342 # scikit-image
343 librosa==0.10.2.post1
344 # via -r requirements/test/xpu.in
345 +llguidance==1.7.6
346 + # via
347 + # -c requirements/common.txt
348 + # -r requirements/test/../common.txt
349 llvmlite==0.47.0
350 # via numba
351 lm-eval==0.4.12
352 # via -r requirements/test/xpu.in
353 +lm-format-enforcer==0.11.3
354 + # via
355 + # -c requirements/common.txt
356 + # -r requirements/test/../common.txt
357 +loguru==0.7.3
358 + # via compressed-tensors
359 lxml==6.0.2
360 # via
361 # blobfile
@@ -262,11 +372,14 @@ mbstrdecoder==1.1.4
372 # dataproperty
373 # pytablewriter
374 # typepy
375 +mcp==1.28.1
376 + # via -r requirements/test/../common.txt
377 mdurl==0.1.2
378 # via markdown-it-py
379 mistral-common==1.11.5
380 # via
381 # -c requirements/common.txt
382 + # -r requirements/test/../common.txt
383 # -r requirements/test/xpu.in
384 mkl==2025.3.1
385 # via
@@ -276,6 +389,10 @@ mkl==2025.3.1
389 # onemkl-sycl-rng
390 # onemkl-sycl-sparse
391 # torch
392 +model-hosting-container-standards==0.1.16
393 + # via
394 + # -c requirements/common.txt
395 + # -r requirements/test/../common.txt
396 modelscope==1.35.3
397 # via -r requirements/test/xpu.in
398 more-itertools==10.8.0
@@ -284,6 +401,8 @@ mpmath==1.3.0
401 # via sympy
402 msgpack==1.1.2
403 # via librosa
404 +msgspec==0.21.1
405 + # via -r requirements/test/../common.txt
406 mteb==2.12.7
407 # via -r requirements/test/xpu.in
408 multidict==6.7.1
@@ -298,6 +417,8 @@ networkx==3.6.1
417 # via
418 # scikit-image
419 # torch
420 +ninja==1.13.0
421 + # via -r requirements/test/../common.txt
422 nltk==3.9.4
423 # via rouge-score
424 num2words==0.5.14
@@ -308,6 +429,7 @@ numba==0.65.0
429 # librosa
430 numpy==2.2.6
431 # via
432 + # -r requirements/test/../common.txt
433 # accelerate
434 # albumentations
435 # bm25s
@@ -333,6 +455,7 @@ numpy==2.2.6
455 # tifffile
456 # torchvision
457 # transformers
458 + # xgrammar
459 oneccl==2021.17.2
460 # via
461 # oneccl-devel
@@ -356,15 +479,65 @@ onemkl-sycl-rng==2025.3.1
479 # via torch
480 onemkl-sycl-sparse==2025.3.1
481 # via torch
482 +openai==2.44.0
483 + # via
484 + # -c requirements/common.txt
485 + # -r requirements/test/../common.txt
486 openai-harmony==0.0.8
487 # via
488 # -c requirements/common.txt
489 + # -r requirements/test/../common.txt
490 # gpt-oss
491 opencv-python-headless==4.13.0.92
492 # via
493 # -c requirements/common.txt
494 + # -r requirements/test/../common.txt
495 # albumentations
496 # mistral-common
497 +opentelemetry-api==1.43.0
498 + # via
499 + # -c requirements/common.txt
500 + # -r requirements/test/../common.txt
501 + # opentelemetry-exporter-otlp-proto-grpc
502 + # opentelemetry-exporter-otlp-proto-http
503 + # opentelemetry-sdk
504 + # opentelemetry-semantic-conventions
505 +opentelemetry-exporter-otlp==1.43.0
506 + # via
507 + # -c requirements/common.txt
508 + # -r requirements/test/../common.txt
509 +opentelemetry-exporter-otlp-proto-common==1.43.0
510 + # via
511 + # opentelemetry-exporter-otlp-proto-grpc
512 + # opentelemetry-exporter-otlp-proto-http
513 +opentelemetry-exporter-otlp-proto-grpc==1.43.0
514 + # via opentelemetry-exporter-otlp
515 +opentelemetry-exporter-otlp-proto-http==1.43.0
516 + # via opentelemetry-exporter-otlp
517 +opentelemetry-proto==1.43.0
518 + # via
519 + # opentelemetry-exporter-otlp-proto-common
520 + # opentelemetry-exporter-otlp-proto-grpc
521 + # opentelemetry-exporter-otlp-proto-http
522 +opentelemetry-sdk==1.43.0
523 + # via
524 + # -c requirements/common.txt
525 + # -r requirements/test/../common.txt
526 + # opentelemetry-exporter-otlp-proto-grpc
527 + # opentelemetry-exporter-otlp-proto-http
528 + # opentelemetry-semantic-conventions-ai
529 +opentelemetry-semantic-conventions==0.64b0
530 + # via
531 + # opentelemetry-sdk
532 + # opentelemetry-semantic-conventions-ai
533 +opentelemetry-semantic-conventions-ai==0.5.1
534 + # via
535 + # -c requirements/common.txt
536 + # -r requirements/test/../common.txt
537 +outlines-core==0.2.14
538 + # via
539 + # -c requirements/common.txt
540 + # -r requirements/test/../common.txt
541 packaging==26.0
542 # via
543 # -c requirements/xpu.txt
@@ -373,6 +546,7 @@ packaging==26.0
546 # evaluate
547 # huggingface-hub
548 # lazy-loader
549 + # lm-format-enforcer
550 # modelscope
551 # pooch
552 # pytest
@@ -384,10 +558,13 @@ pandas==3.0.1
558 # via
559 # datasets
560 # evaluate
561 +partial-json-parser==0.2.1.1.post7
562 + # via -r requirements/test/../common.txt
563 pathvalidate==3.3.1
564 # via pytablewriter
565 pillow==12.1.1
566 # via
567 + # -r requirements/test/../common.txt
568 # imageio
569 # mistral-common
570 # scikit-image
@@ -410,16 +587,37 @@ portalocker==3.2.0
587 # via sacrebleu
588 pqdm==0.2.0
589 # via -r requirements/test/xpu.in
590 +prometheus-client==0.25.0
591 + # via
592 + # -c requirements/common.txt
593 + # -r requirements/test/../common.txt
594 + # prometheus-fastapi-instrumentator
595 +prometheus-fastapi-instrumentator==8.0.2
596 + # via
597 + # -c requirements/common.txt
598 + # -r requirements/test/../common.txt
599 propcache==0.4.1
600 # via
601 # aiohttp
602 # yarl
603 +protobuf==7.35.1
604 + # via
605 + # -c requirements/common.txt
606 + # -r requirements/test/../common.txt
607 + # googleapis-common-protos
608 + # opentelemetry-proto
609 psutil==7.2.2
418 - # via accelerate
610 + # via
611 + # -r requirements/test/../common.txt
612 + # accelerate
613 py==1.11.0
614 # via pytest-forked
615 +py-cpuinfo==9.0.0
616 + # via -r requirements/test/../common.txt
617 pyarrow==23.0.1
618 # via datasets
619 +pybase64==1.4.3
620 + # via -r requirements/test/../common.txt
621 pycountry==26.2.16
622 # via pydantic-extra-types
623 pycparser==3.0
@@ -429,23 +627,41 @@ pycryptodomex==3.23.0
627 pydantic==2.12.5
628 # via
629 # -c requirements/common.txt
630 + # -r requirements/test/../common.txt
631 # albumentations
632 + # anthropic
633 + # compressed-tensors
634 # fastapi
635 + # fastapi-cloud-cli
636 # gpt-oss
637 + # lm-format-enforcer
638 + # mcp
639 # mistral-common
640 + # model-hosting-container-standards
641 # mteb
642 + # openai
643 # openai-harmony
644 # pydantic-extra-types
645 + # pydantic-settings
646 + # xgrammar
647 pydantic-core==2.41.5
648 # via pydantic
649 pydantic-extra-types==2.11.1
442 - # via mistral-common
650 + # via
651 + # fastapi
652 + # mistral-common
653 +pydantic-settings==2.14.2
654 + # via
655 + # fastapi
656 + # mcp
657 pyelftools==0.32
658 # via triton-xpu
659 pygments==2.20.0
660 # via
661 # pytest
662 # rich
663 +pyjwt==2.13.0
664 + # via mcp
665 pyrate-limiter==4.1.0
666 # via schemathesis
667 pystemmer==3.0.0
@@ -480,19 +696,36 @@ python-dateutil==2.9.0.post0
696 # via
697 # pandas
698 # typepy
699 +python-dotenv==1.2.2
700 + # via
701 + # pydantic-settings
702 + # uvicorn
703 +python-json-logger==4.1.0
704 + # via -r requirements/test/../common.txt
705 +python-multipart==0.0.32
706 + # via
707 + # fastapi
708 + # mcp
709 pytrec-eval-terrier==0.5.10
710 # via mteb
711 pytz==2026.1.post1
712 # via typepy
713 pyyaml==6.0.3
714 # via
715 + # -r requirements/test/../common.txt
716 # accelerate
717 # albumentations
718 # datasets
719 # huggingface-hub
720 + # lm-format-enforcer
721 # schemathesis
722 # timm
723 # transformers
724 + # uvicorn
725 +pyzmq==27.1.0
726 + # via
727 + # -c requirements/common.txt
728 + # -r requirements/test/../common.txt
729 rapidfuzz==3.12.1
730 # via
731 # -r requirements/test/xpu.in
@@ -503,6 +736,7 @@ referencing==0.37.0
736 # jsonschema-specifications
737 regex==2026.3.32
738 # via
739 + # -r requirements/test/../common.txt
740 # nltk
741 # sacrebleu
742 # tiktoken
@@ -510,6 +744,7 @@ regex==2026.3.32
744 requests==2.33.1
745 # via
746 # -c requirements/common.txt
747 + # -r requirements/test/../common.txt
748 # datasets
749 # docker
750 # evaluate
@@ -518,6 +753,7 @@ requests==2.33.1
753 # mistral-common
754 # modelscope
755 # mteb
756 + # opentelemetry-exporter-otlp-proto-http
757 # pooch
758 # schemathesis
759 # starlette-testclient
@@ -525,8 +761,15 @@ requests==2.33.1
761 rich==14.3.3
762 # via
763 # mteb
764 + # rich-toolkit
765 # schemathesis
766 # typer
767 +rich-toolkit==0.20.1
768 + # via
769 + # fastapi-cli
770 + # fastapi-cloud-cli
771 +rignore==0.7.6
772 + # via fastapi-cloud-cli
773 rouge-score==0.1.2
774 # via lm-eval
775 rpds-py==0.30.0
@@ -538,6 +781,7 @@ sacrebleu==2.6.0
781 safetensors==0.7.0
782 # via
783 # -c requirements/common.txt
784 + # -r requirements/test/../common.txt
785 # accelerate
786 # timm
787 # transformers
@@ -564,10 +808,18 @@ scipy==1.17.1
808 # sentence-transformers
809 sentence-transformers==5.3.0
810 # via mteb
811 +sentencepiece==0.2.1
812 + # via -r requirements/test/../common.txt
813 +sentry-sdk==2.63.0
814 + # via fastapi-cloud-cli
815 +setproctitle==1.3.7
816 + # via -r requirements/test/../common.txt
817 setuptools==80.10.2
818 # via
819 # -c requirements/common.txt
820 # -c requirements/xpu.txt
821 + # -r requirements/test/../common.txt
822 + # model-hosting-container-standards
823 # modelscope
824 # pytablewriter
825 # torch
@@ -576,9 +828,14 @@ shellingham==1.5.4
828 six==1.17.0
829 # via
830 # -c requirements/common.txt
831 + # -r requirements/test/../common.txt
832 # junit-xml
833 # python-dateutil
834 # rouge-score
835 +sniffio==1.3.1
836 + # via
837 + # anthropic
838 + # openai
839 sortedcontainers==2.4.0
840 # via hypothesis
841 soundfile==0.13.1
@@ -593,15 +850,24 @@ soxr==0.5.0.post1
850 # mistral-common
851 sqlitedict==2.1.0
852 # via lm-eval
853 +sse-starlette==3.4.5
854 + # via mcp
855 starlette==1.3.1
856 # via
857 # -c requirements/common.txt
858 + # -r requirements/test/../common.txt
859 # fastapi
860 + # mcp
861 + # model-hosting-container-standards
862 + # prometheus-fastapi-instrumentator
863 + # sse-starlette
864 # starlette-testclient
865 starlette-testclient==0.4.1
866 # via schemathesis
867 structlog==25.5.0
868 # via gpt-oss
869 +supervisor==4.3.0
870 + # via model-hosting-container-standards
871 sympy==1.14.0
872 # via torch
873 tabledata==1.3.4
@@ -636,6 +902,7 @@ tifffile==2026.3.3
902 tiktoken==0.12.0
903 # via
904 # -c requirements/common.txt
905 + # -r requirements/test/../common.txt
906 # gpt-oss
907 # lm-eval
908 # mistral-common
@@ -644,19 +911,23 @@ timm==1.0.17
911 tokenizers==0.22.2
912 # via
913 # -c requirements/common.txt
914 + # -r requirements/test/../common.txt
915 # transformers
916 torch==2.12.0+xpu
917 # via
918 # -c requirements/xpu.txt
919 # accelerate
920 + # compressed-tensors
921 # mteb
922 # sentence-transformers
923 # timm
924 # torchvision
925 + # xgrammar
926 torchvision==0.27.0+xpu
927 # via timm
928 tqdm==4.67.3
929 # via
930 + # -r requirements/test/../common.txt
931 # datasets
932 # evaluate
933 # huggingface-hub
@@ -664,13 +935,19 @@ tqdm==4.67.3
935 # modelscope
936 # mteb
937 # nltk
938 + # openai
939 # pqdm
940 # sentence-transformers
941 # transformers
942 transformers==5.5.3
943 # via
944 # -c requirements/common.txt
945 + # -r requirements/test/../common.txt
946 + # compressed-tensors
947 # sentence-transformers
948 + # xgrammar
949 +triton==3.7.1
950 + # via xgrammar
951 triton-xpu==3.7.1
952 # via torch
953 typepy==1.3.4
@@ -680,36 +957,53 @@ typepy==1.3.4
957 # tabledata
958 typer==0.24.1
959 # via
960 + # fastapi-cli
961 + # fastapi-cloud-cli
962 # huggingface-hub
963 # transformers
964 typing-extensions==4.15.0
965 # via
966 # -c requirements/common.txt
967 + # -r requirements/test/../common.txt
968 # aiosignal
969 # albumentations
970 + # anthropic
971 # anyio
972 + # apache-tvm-ffi
973 # chz
974 # fastapi
975 + # grpcio
976 # huggingface-hub
977 # librosa
978 # lm-eval
979 + # mcp
980 # mistral-common
981 # mteb
982 + # openai
983 + # opentelemetry-api
984 + # opentelemetry-exporter-otlp-proto-grpc
985 + # opentelemetry-exporter-otlp-proto-http
986 + # opentelemetry-sdk
987 + # opentelemetry-semantic-conventions
988 # pqdm
989 # pydantic
990 # pydantic-core
991 # pydantic-extra-types
992 # pytest-asyncio
993 # referencing
994 + # rich-toolkit
995 # schemathesis
996 # sentence-transformers
997 # starlette
998 # torch
999 # typing-inspection
1000 + # xgrammar
1001 typing-inspection==0.4.2
1002 # via
1003 # fastapi
1004 + # mcp
1005 # pydantic
1006 + # pydantic-settings
1007 umf==1.0.3
1008 # via
1009 # intel-cmplr-lib-ur
@@ -720,12 +1014,30 @@ urllib3==2.6.3
1014 # docker
1015 # modelscope
1016 # requests
1017 + # sentry-sdk
1018 uvicorn==0.42.0
724 - # via gpt-oss
1019 + # via
1020 + # fastapi
1021 + # fastapi-cli
1022 + # fastapi-cloud-cli
1023 + # gpt-oss
1024 + # mcp
1025 +uvloop==0.22.1
1026 + # via uvicorn
1027 +watchfiles==1.2.0
1028 + # via
1029 + # -r requirements/test/../common.txt
1030 + # uvicorn
1031 +websockets==16.0
1032 + # via uvicorn
1033 werkzeug==3.1.7
1034 # via schemathesis
1035 word2number==1.1
1036 # via lm-eval
1037 +xgrammar==0.2.3
1038 + # via
1039 + # -c requirements/common.txt
1040 + # -r requirements/test/../common.txt
1041 xxhash==3.6.0
1042 # via
1043 # datasets
tests/tool_parsers/test_structural_tag_registry.py
+29 -38
@@ -102,45 +102,36 @@ def test_get_model_structural_tag_supports_vllm_hermes(
102 )
103
104 assert isinstance(tag, StructuralTag)
105 - assert tag.model_dump() == {
106 - "type": "structural_tag",
107 - "format": {
108 - "type": "tags_with_separator",
109 - "tags": [
110 - {
111 - "type": "tag",
112 - "begin": '<tool_call>\n{"name": "get_weather", "arguments": ',
113 - "content": {
114 - "type": "json_schema",
115 - "json_schema": {
116 - "type": "object",
117 - "properties": {"city": {"type": "string"}},
118 - "required": ["city"],
119 - },
120 - "style": "json",
121 - },
122 - "end": "}\n</tool_call>",
123 - },
124 - {
125 - "type": "tag",
126 - "begin": '<tool_call>{"name": "get_weather", "arguments": ',
127 - "content": {
128 - "type": "json_schema",
129 - "json_schema": {
130 - "type": "object",
131 - "properties": {"city": {"type": "string"}},
132 - "required": ["city"],
133 - },
134 - "style": "json",
135 - },
136 - "end": "}</tool_call>",
137 - },
138 - ],
139 - "separator": "",
140 - "at_least_one": True,
141 - "stop_after_first": False,
142 - },
105 +
106 + # Assert the semantically meaningful structure rather than the full
107 + # model_dump(), which gains version-specific keys across xgrammar releases
108 + # (e.g. "any_order" was added to json_schema content in 0.2.3).
109 + dump = tag.model_dump()
110 + assert dump["type"] == "structural_tag"
111 +
112 + fmt = dump["format"]
113 + assert fmt["type"] == "tags_with_separator"
114 + assert fmt["separator"] == ""
115 + assert fmt["at_least_one"] is True
116 + assert fmt["stop_after_first"] is False
117 +
118 + expected_schema = {
119 + "type": "object",
120 + "properties": {"city": {"type": "string"}},
121 + "required": ["city"],
122 }
123 + expected_tags = [
124 + ('<tool_call>\n{"name": "get_weather", "arguments": ', "}\n</tool_call>"),
125 + ('<tool_call>{"name": "get_weather", "arguments": ', "}</tool_call>"),
126 + ]
127 + assert len(fmt["tags"]) == len(expected_tags)
128 + for tag_dump, (begin, end) in zip(fmt["tags"], expected_tags):
129 + assert tag_dump["type"] == "tag"
130 + assert tag_dump["begin"] == begin
131 + assert tag_dump["end"] == end
132 + content = tag_dump["content"]
133 + assert content["type"] == "json_schema"
134 + assert content["json_schema"] == expected_schema
135
136
137 def test_hermes_required_tool_calls_use_empty_separator():