guidellm 0.4.0a21__tar.gz → 0.4.0a169__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of guidellm might be problematic. Click here for more details.
- {guidellm-0.4.0a21/src/guidellm.egg-info → guidellm-0.4.0a169}/PKG-INFO +33 -10
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/README.md +2 -2
- guidellm-0.4.0a169/pyproject.toml +288 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/setup.py +4 -5
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/__init__.py +5 -2
- guidellm-0.4.0a169/src/guidellm/__main__.py +715 -0
- guidellm-0.4.0a169/src/guidellm/backends/__init__.py +33 -0
- guidellm-0.4.0a169/src/guidellm/backends/backend.py +110 -0
- guidellm-0.4.0a169/src/guidellm/backends/openai.py +355 -0
- guidellm-0.4.0a169/src/guidellm/backends/response_handlers.py +455 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/__init__.py +81 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/benchmarker.py +167 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/entrypoints.py +504 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/output.py +745 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/profile.py +709 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/progress.py +739 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/scenarios/__init__.py +40 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/scenarios/chat.json +6 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/scenarios/rag.json +6 -0
- guidellm-0.4.0a169/src/guidellm/benchmark/schemas.py +2086 -0
- guidellm-0.4.0a169/src/guidellm/data/__init__.py +28 -0
- guidellm-0.4.0a169/src/guidellm/data/collators.py +16 -0
- guidellm-0.4.0a169/src/guidellm/data/deserializers/__init__.py +53 -0
- guidellm-0.4.0a169/src/guidellm/data/deserializers/deserializer.py +144 -0
- guidellm-0.4.0a169/src/guidellm/data/deserializers/file.py +222 -0
- guidellm-0.4.0a169/src/guidellm/data/deserializers/huggingface.py +94 -0
- guidellm-0.4.0a169/src/guidellm/data/deserializers/memory.py +194 -0
- guidellm-0.4.0a169/src/guidellm/data/deserializers/synthetic.py +348 -0
- guidellm-0.4.0a169/src/guidellm/data/loaders.py +149 -0
- guidellm-0.4.0a169/src/guidellm/data/preprocessors/__init__.py +25 -0
- guidellm-0.4.0a169/src/guidellm/data/preprocessors/formatters.py +404 -0
- guidellm-0.4.0a169/src/guidellm/data/preprocessors/mappers.py +198 -0
- guidellm-0.4.0a169/src/guidellm/data/preprocessors/preprocessor.py +31 -0
- guidellm-0.4.0a169/src/guidellm/data/processor.py +31 -0
- guidellm-0.4.0a169/src/guidellm/data/schemas.py +13 -0
- guidellm-0.4.0a169/src/guidellm/data/utils/__init__.py +6 -0
- guidellm-0.4.0a169/src/guidellm/data/utils/dataset.py +94 -0
- guidellm-0.4.0a169/src/guidellm/extras/__init__.py +4 -0
- guidellm-0.4.0a169/src/guidellm/extras/audio.py +215 -0
- guidellm-0.4.0a169/src/guidellm/extras/vision.py +242 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/logger.py +2 -2
- guidellm-0.4.0a169/src/guidellm/mock_server/__init__.py +8 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/config.py +84 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/handlers/__init__.py +17 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/handlers/chat_completions.py +280 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/handlers/completions.py +280 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/handlers/tokenizer.py +142 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/models.py +510 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/server.py +168 -0
- guidellm-0.4.0a169/src/guidellm/mock_server/utils.py +302 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/preprocess/dataset.py +23 -26
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/presentation/builder.py +2 -2
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/presentation/data_models.py +25 -21
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/presentation/injector.py +2 -3
- guidellm-0.4.0a169/src/guidellm/scheduler/__init__.py +86 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/constraints.py +1035 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/environments.py +252 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/scheduler.py +162 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/schemas.py +272 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/strategies.py +519 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/worker.py +443 -0
- guidellm-0.4.0a169/src/guidellm/scheduler/worker_group.py +707 -0
- guidellm-0.4.0a169/src/guidellm/schemas/__init__.py +31 -0
- guidellm-0.4.0a169/src/guidellm/schemas/info.py +159 -0
- guidellm-0.4.0a169/src/guidellm/schemas/request.py +226 -0
- guidellm-0.4.0a169/src/guidellm/schemas/response.py +119 -0
- guidellm-0.4.0a169/src/guidellm/schemas/stats.py +228 -0
- guidellm-0.4.0a21/src/guidellm/config.py → guidellm-0.4.0a169/src/guidellm/settings.py +32 -21
- guidellm-0.4.0a169/src/guidellm/utils/__init__.py +126 -0
- guidellm-0.4.0a169/src/guidellm/utils/auto_importer.py +98 -0
- guidellm-0.4.0a169/src/guidellm/utils/cli.py +131 -0
- guidellm-0.4.0a169/src/guidellm/utils/console.py +183 -0
- guidellm-0.4.0a169/src/guidellm/utils/encoding.py +778 -0
- guidellm-0.4.0a169/src/guidellm/utils/functions.py +134 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/utils/hf_datasets.py +1 -2
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/utils/hf_transformers.py +4 -4
- guidellm-0.4.0a169/src/guidellm/utils/imports.py +9 -0
- guidellm-0.4.0a169/src/guidellm/utils/messaging.py +1118 -0
- guidellm-0.4.0a169/src/guidellm/utils/mixins.py +115 -0
- guidellm-0.4.0a169/src/guidellm/utils/pydantic_utils.py +411 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/utils/random.py +3 -4
- guidellm-0.4.0a169/src/guidellm/utils/registry.py +220 -0
- guidellm-0.4.0a169/src/guidellm/utils/singleton.py +133 -0
- {guidellm-0.4.0a21/src/guidellm/objects → guidellm-0.4.0a169/src/guidellm/utils}/statistics.py +341 -247
- guidellm-0.4.0a169/src/guidellm/utils/synchronous.py +159 -0
- guidellm-0.4.0a169/src/guidellm/utils/text.py +336 -0
- guidellm-0.4.0a169/src/guidellm/utils/typing.py +41 -0
- guidellm-0.4.0a169/src/guidellm/version.py +6 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169/src/guidellm.egg-info}/PKG-INFO +33 -10
- guidellm-0.4.0a169/src/guidellm.egg-info/SOURCES.txt +100 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm.egg-info/requires.txt +32 -4
- guidellm-0.4.0a21/pyproject.toml +0 -250
- guidellm-0.4.0a21/src/guidellm/__main__.py +0 -515
- guidellm-0.4.0a21/src/guidellm/backend/__init__.py +0 -23
- guidellm-0.4.0a21/src/guidellm/backend/backend.py +0 -259
- guidellm-0.4.0a21/src/guidellm/backend/openai.py +0 -705
- guidellm-0.4.0a21/src/guidellm/backend/response.py +0 -136
- guidellm-0.4.0a21/src/guidellm/benchmark/__init__.py +0 -67
- guidellm-0.4.0a21/src/guidellm/benchmark/aggregator.py +0 -760
- guidellm-0.4.0a21/src/guidellm/benchmark/benchmark.py +0 -837
- guidellm-0.4.0a21/src/guidellm/benchmark/benchmarker.py +0 -334
- guidellm-0.4.0a21/src/guidellm/benchmark/entrypoints.py +0 -165
- guidellm-0.4.0a21/src/guidellm/benchmark/output.py +0 -997
- guidellm-0.4.0a21/src/guidellm/benchmark/profile.py +0 -409
- guidellm-0.4.0a21/src/guidellm/benchmark/progress.py +0 -720
- guidellm-0.4.0a21/src/guidellm/benchmark/scenario.py +0 -104
- guidellm-0.4.0a21/src/guidellm/benchmark/scenarios/__init__.py +0 -0
- guidellm-0.4.0a21/src/guidellm/data/__init__.py +0 -4
- guidellm-0.4.0a21/src/guidellm/data/prideandprejudice.txt.gz +0 -0
- guidellm-0.4.0a21/src/guidellm/dataset/__init__.py +0 -22
- guidellm-0.4.0a21/src/guidellm/dataset/creator.py +0 -213
- guidellm-0.4.0a21/src/guidellm/dataset/entrypoints.py +0 -42
- guidellm-0.4.0a21/src/guidellm/dataset/file.py +0 -92
- guidellm-0.4.0a21/src/guidellm/dataset/hf_datasets.py +0 -62
- guidellm-0.4.0a21/src/guidellm/dataset/in_memory.py +0 -132
- guidellm-0.4.0a21/src/guidellm/dataset/synthetic.py +0 -287
- guidellm-0.4.0a21/src/guidellm/objects/__init__.py +0 -18
- guidellm-0.4.0a21/src/guidellm/objects/pydantic.py +0 -89
- guidellm-0.4.0a21/src/guidellm/request/__init__.py +0 -18
- guidellm-0.4.0a21/src/guidellm/request/loader.py +0 -284
- guidellm-0.4.0a21/src/guidellm/request/request.py +0 -79
- guidellm-0.4.0a21/src/guidellm/request/types.py +0 -10
- guidellm-0.4.0a21/src/guidellm/scheduler/__init__.py +0 -47
- guidellm-0.4.0a21/src/guidellm/scheduler/queues.py +0 -25
- guidellm-0.4.0a21/src/guidellm/scheduler/result.py +0 -155
- guidellm-0.4.0a21/src/guidellm/scheduler/scheduler.py +0 -390
- guidellm-0.4.0a21/src/guidellm/scheduler/strategy.py +0 -495
- guidellm-0.4.0a21/src/guidellm/scheduler/worker.py +0 -472
- guidellm-0.4.0a21/src/guidellm/utils/__init__.py +0 -39
- guidellm-0.4.0a21/src/guidellm/utils/cli.py +0 -62
- guidellm-0.4.0a21/src/guidellm/utils/text.py +0 -223
- guidellm-0.4.0a21/src/guidellm/version.py +0 -6
- guidellm-0.4.0a21/src/guidellm.egg-info/SOURCES.txt +0 -67
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/LICENSE +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/MANIFEST.in +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/setup.cfg +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/preprocess/__init__.py +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/presentation/__init__.py +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/utils/colors.py +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/utils/default_group.py +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm/utils/dict.py +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm.egg-info/dependency_links.txt +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm.egg-info/entry_points.txt +0 -0
- {guidellm-0.4.0a21 → guidellm-0.4.0a169}/src/guidellm.egg-info/top_level.txt +0 -0
|
@@ -1,34 +1,57 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: guidellm
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.0a169
|
|
4
4
|
Summary: Guidance platform for deploying and managing large language models.
|
|
5
5
|
Author: Red Hat
|
|
6
|
-
License
|
|
6
|
+
License: Apache-2.0
|
|
7
7
|
Project-URL: homepage, https://github.com/vllm-project/guidellm
|
|
8
8
|
Project-URL: source, https://github.com/vllm-project/guidellm
|
|
9
9
|
Project-URL: issues, https://github.com/vllm-project/guidellm/issues
|
|
10
10
|
Project-URL: docs, https://github.com/vllm-project/guidellm/tree/main/docs
|
|
11
11
|
Keywords: ai,benchmarking,deep-learning,deployment,evaluation,guidance,inference,language-models,large-language-model,llm,machine-learning,model-benchmark,model-evaluation,nlp,performance,vllm
|
|
12
|
-
Requires-Python: <4.0,>=3.
|
|
12
|
+
Requires-Python: <4.0,>=3.10.0
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
15
|
Requires-Dist: click<8.2.0,>=8.0.0
|
|
16
|
+
Requires-Dist: culsans~=0.9.0
|
|
16
17
|
Requires-Dist: datasets
|
|
18
|
+
Requires-Dist: eval_type_backport
|
|
19
|
+
Requires-Dist: faker
|
|
17
20
|
Requires-Dist: ftfy>=6.0.0
|
|
18
21
|
Requires-Dist: httpx[http2]<1.0.0
|
|
19
22
|
Requires-Dist: loguru
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
23
|
+
Requires-Dist: msgpack
|
|
24
|
+
Requires-Dist: numpy>=2.0.0
|
|
22
25
|
Requires-Dist: protobuf
|
|
23
26
|
Requires-Dist: pydantic>=2.11.7
|
|
24
27
|
Requires-Dist: pydantic-settings>=2.0.0
|
|
25
28
|
Requires-Dist: pyyaml>=6.0.0
|
|
26
29
|
Requires-Dist: rich
|
|
30
|
+
Requires-Dist: sanic
|
|
27
31
|
Requires-Dist: transformers
|
|
32
|
+
Requires-Dist: uvloop>=0.18
|
|
33
|
+
Requires-Dist: torch
|
|
34
|
+
Provides-Extra: all
|
|
35
|
+
Requires-Dist: guidellm[audio,openai,perf,vision]; extra == "all"
|
|
28
36
|
Provides-Extra: recommended
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
|
|
37
|
+
Requires-Dist: guidellm[openai,perf]; extra == "recommended"
|
|
38
|
+
Provides-Extra: perf
|
|
39
|
+
Requires-Dist: orjson; extra == "perf"
|
|
40
|
+
Requires-Dist: msgpack; extra == "perf"
|
|
41
|
+
Requires-Dist: msgspec; extra == "perf"
|
|
42
|
+
Requires-Dist: uvloop; extra == "perf"
|
|
43
|
+
Provides-Extra: openai
|
|
44
|
+
Requires-Dist: tiktoken>=0.11.0; extra == "openai"
|
|
45
|
+
Requires-Dist: blobfile>=3.1.0; extra == "openai"
|
|
46
|
+
Provides-Extra: audio
|
|
47
|
+
Requires-Dist: datasets[audio]>=4.1.0; extra == "audio"
|
|
48
|
+
Requires-Dist: torch==2.9.*; extra == "audio"
|
|
49
|
+
Requires-Dist: torchcodec==0.8; extra == "audio"
|
|
50
|
+
Provides-Extra: vision
|
|
51
|
+
Requires-Dist: datasets[vision]; extra == "vision"
|
|
52
|
+
Requires-Dist: pillow; extra == "vision"
|
|
31
53
|
Provides-Extra: dev
|
|
54
|
+
Requires-Dist: guidellm[all]; extra == "dev"
|
|
32
55
|
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
33
56
|
Requires-Dist: setuptools>=61.0; extra == "dev"
|
|
34
57
|
Requires-Dist: setuptools-git-versioning<3,>=2.0; extra == "dev"
|
|
@@ -38,7 +61,7 @@ Requires-Dist: sphinx~=7.1.2; extra == "dev"
|
|
|
38
61
|
Requires-Dist: tox~=4.16.0; extra == "dev"
|
|
39
62
|
Requires-Dist: lorem~=0.1.1; extra == "dev"
|
|
40
63
|
Requires-Dist: pytest~=8.2.2; extra == "dev"
|
|
41
|
-
Requires-Dist: pytest-asyncio~=
|
|
64
|
+
Requires-Dist: pytest-asyncio~=1.1.0; extra == "dev"
|
|
42
65
|
Requires-Dist: pytest-cov~=5.0.0; extra == "dev"
|
|
43
66
|
Requires-Dist: pytest-mock~=3.14.0; extra == "dev"
|
|
44
67
|
Requires-Dist: pytest-rerunfailures~=14.0; extra == "dev"
|
|
@@ -66,7 +89,7 @@ Dynamic: license-file
|
|
|
66
89
|
Scale Efficiently: Evaluate and Optimize Your LLM Deployments for Real-World Inference
|
|
67
90
|
</h3>
|
|
68
91
|
|
|
69
|
-
[](https://github.com/vllm-project/guidellm/releases) [](https://github.com/vllm-project/guidellm/tree/main/docs) [](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [](https://pypi.python.org/pypi/guidellm) [](https://github.com/vllm-project/guidellm/releases) [](https://github.com/vllm-project/guidellm/tree/main/docs) [](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [](https://pypi.python.org/pypi/guidellm) [](https://pypi.python.org/pypi/guidellm) [](https://github.com/vllm-project/guidellm/actions/workflows/nightly.yml)
|
|
70
93
|
|
|
71
94
|
## Overview
|
|
72
95
|
|
|
@@ -93,7 +116,7 @@ Scale Efficiently: Evaluate and Optimize Your LLM Deployments for Real-World Inf
|
|
|
93
116
|
Before installing, ensure you have the following prerequisites:
|
|
94
117
|
|
|
95
118
|
- OS: Linux or MacOS
|
|
96
|
-
- Python: 3.
|
|
119
|
+
- Python: 3.10 – 3.13
|
|
97
120
|
|
|
98
121
|
The latest GuideLLM release can be installed using pip:
|
|
99
122
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
Scale Efficiently: Evaluate and Optimize Your LLM Deployments for Real-World Inference
|
|
10
10
|
</h3>
|
|
11
11
|
|
|
12
|
-
[](https://github.com/vllm-project/guidellm/releases) [](https://github.com/vllm-project/guidellm/tree/main/docs) [](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [](https://pypi.python.org/pypi/guidellm) [](https://github.com/vllm-project/guidellm/releases) [](https://github.com/vllm-project/guidellm/tree/main/docs) [](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [](https://pypi.python.org/pypi/guidellm) [](https://pypi.python.org/pypi/guidellm) [](https://github.com/vllm-project/guidellm/actions/workflows/nightly.yml)
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
@@ -36,7 +36,7 @@ Scale Efficiently: Evaluate and Optimize Your LLM Deployments for Real-World Inf
|
|
|
36
36
|
Before installing, ensure you have the following prerequisites:
|
|
37
37
|
|
|
38
38
|
- OS: Linux or MacOS
|
|
39
|
-
- Python: 3.
|
|
39
|
+
- Python: 3.10 – 3.13
|
|
40
40
|
|
|
41
41
|
The latest GuideLLM release can be installed using pip:
|
|
42
42
|
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools >= 61.0", "setuptools-git-versioning>=2.0,<3"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
[tool.setuptools.packages.find]
|
|
7
|
+
where = ["src"]
|
|
8
|
+
include = ["*"]
|
|
9
|
+
|
|
10
|
+
[tool.setuptools.package-data]
|
|
11
|
+
"guidellm.data" = ["*.gz"]
|
|
12
|
+
"guidellm.benchmark.scenarios" = ["*.json", "**/*.json"]
|
|
13
|
+
|
|
14
|
+
[tool.pdm]
|
|
15
|
+
distribution = true
|
|
16
|
+
|
|
17
|
+
[[tool.pdm.source]]
|
|
18
|
+
name = "torch"
|
|
19
|
+
type = "find_links"
|
|
20
|
+
#url = "https://download.pytorch.org/whl/cpu/torch_stable.html"
|
|
21
|
+
url = "https://download.pytorch.org/whl/cpu/torch/"
|
|
22
|
+
include_packages = ["torch"]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# ************************************************
|
|
26
|
+
# ********** Project Metadata **********
|
|
27
|
+
# ************************************************
|
|
28
|
+
|
|
29
|
+
[project]
|
|
30
|
+
dynamic = ["version"]
|
|
31
|
+
name = "guidellm"
|
|
32
|
+
description = "Guidance platform for deploying and managing large language models."
|
|
33
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
34
|
+
requires-python = ">=3.10.0,<4.0"
|
|
35
|
+
license = { text = "Apache-2.0" }
|
|
36
|
+
authors = [{ name = "Red Hat" }]
|
|
37
|
+
keywords = [
|
|
38
|
+
"ai",
|
|
39
|
+
"benchmarking",
|
|
40
|
+
"deep-learning",
|
|
41
|
+
"deployment",
|
|
42
|
+
"evaluation",
|
|
43
|
+
"guidance",
|
|
44
|
+
"inference",
|
|
45
|
+
"language-models",
|
|
46
|
+
"large-language-model",
|
|
47
|
+
"llm",
|
|
48
|
+
"machine-learning",
|
|
49
|
+
"model-benchmark",
|
|
50
|
+
"model-evaluation",
|
|
51
|
+
"nlp",
|
|
52
|
+
"performance",
|
|
53
|
+
"vllm",
|
|
54
|
+
]
|
|
55
|
+
dependencies = [
|
|
56
|
+
"click>=8.0.0,<8.2.0",
|
|
57
|
+
"culsans~=0.9.0",
|
|
58
|
+
"datasets",
|
|
59
|
+
"eval_type_backport",
|
|
60
|
+
"faker",
|
|
61
|
+
"ftfy>=6.0.0",
|
|
62
|
+
"httpx[http2]<1.0.0",
|
|
63
|
+
"loguru",
|
|
64
|
+
"msgpack",
|
|
65
|
+
"numpy>=2.0.0",
|
|
66
|
+
"protobuf",
|
|
67
|
+
"pydantic>=2.11.7",
|
|
68
|
+
"pydantic-settings>=2.0.0",
|
|
69
|
+
"pyyaml>=6.0.0",
|
|
70
|
+
"rich",
|
|
71
|
+
"sanic",
|
|
72
|
+
"transformers",
|
|
73
|
+
"uvloop>=0.18",
|
|
74
|
+
"torch",
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
[project.optional-dependencies]
|
|
78
|
+
# Meta Extras
|
|
79
|
+
all = ["guidellm[perf,openai,audio,vision]"]
|
|
80
|
+
recommended = ["guidellm[perf,openai]"]
|
|
81
|
+
# Feature Extras
|
|
82
|
+
perf = ["orjson", "msgpack", "msgspec", "uvloop"]
|
|
83
|
+
openai = ["tiktoken>=0.11.0", "blobfile>=3.1.0"]
|
|
84
|
+
audio = [
|
|
85
|
+
# Lowest version with full torchcodec support
|
|
86
|
+
"datasets[audio]>=4.1.0",
|
|
87
|
+
# Torchcodec needs specific torch version
|
|
88
|
+
"torch==2.9.*",
|
|
89
|
+
"torchcodec==0.8",
|
|
90
|
+
]
|
|
91
|
+
vision = [
|
|
92
|
+
"datasets[vision]",
|
|
93
|
+
"pillow",
|
|
94
|
+
]
|
|
95
|
+
# Dev Tooling
|
|
96
|
+
dev = [
|
|
97
|
+
# Install all optional dependencies
|
|
98
|
+
"guidellm[all]",
|
|
99
|
+
|
|
100
|
+
# build
|
|
101
|
+
"build>=1.0.0",
|
|
102
|
+
"setuptools>=61.0",
|
|
103
|
+
"setuptools-git-versioning>=2.0,<3",
|
|
104
|
+
|
|
105
|
+
# general and configurations
|
|
106
|
+
"pre-commit~=3.5.0",
|
|
107
|
+
"scipy~=1.10",
|
|
108
|
+
"sphinx~=7.1.2",
|
|
109
|
+
"tox~=4.16.0",
|
|
110
|
+
|
|
111
|
+
# testing
|
|
112
|
+
"lorem~=0.1.1",
|
|
113
|
+
"pytest~=8.2.2",
|
|
114
|
+
"pytest-asyncio~=1.1.0",
|
|
115
|
+
"pytest-cov~=5.0.0",
|
|
116
|
+
"pytest-mock~=3.14.0",
|
|
117
|
+
"pytest-rerunfailures~=14.0",
|
|
118
|
+
"respx~=0.22.0",
|
|
119
|
+
|
|
120
|
+
# code quality
|
|
121
|
+
"mypy~=1.15.0",
|
|
122
|
+
"ruff~=0.11.7",
|
|
123
|
+
|
|
124
|
+
# docs quality
|
|
125
|
+
"mdformat~=0.7.17",
|
|
126
|
+
"mdformat-footnote~=0.1.1",
|
|
127
|
+
"mdformat-frontmatter~=2.0.8",
|
|
128
|
+
"mdformat-gfm~=0.3.6",
|
|
129
|
+
|
|
130
|
+
# type-checking
|
|
131
|
+
"types-PyYAML~=6.0.1",
|
|
132
|
+
"types-requests~=2.32.0",
|
|
133
|
+
"types-toml",
|
|
134
|
+
|
|
135
|
+
# link checking
|
|
136
|
+
"mkdocs-linkcheck~=1.0.6",
|
|
137
|
+
]
|
|
138
|
+
|
|
139
|
+
[dependency-groups]
|
|
140
|
+
dev = ["guidellm[dev]"]
|
|
141
|
+
|
|
142
|
+
[project.urls]
|
|
143
|
+
homepage = "https://github.com/vllm-project/guidellm"
|
|
144
|
+
source = "https://github.com/vllm-project/guidellm"
|
|
145
|
+
issues = "https://github.com/vllm-project/guidellm/issues"
|
|
146
|
+
docs = "https://github.com/vllm-project/guidellm/tree/main/docs"
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
[project.entry-points.console_scripts]
|
|
150
|
+
guidellm = "guidellm.__main__:cli"
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
# ************************************************
|
|
154
|
+
# ********** Code Quality Tools **********
|
|
155
|
+
# ************************************************
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
[tool.isort]
|
|
159
|
+
profile = "black"
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
[tool.mypy]
|
|
163
|
+
files = ["src/guidellm"]
|
|
164
|
+
python_version = '3.10'
|
|
165
|
+
warn_redundant_casts = true
|
|
166
|
+
warn_unused_ignores = false
|
|
167
|
+
show_error_codes = true
|
|
168
|
+
namespace_packages = true
|
|
169
|
+
exclude = ["venv", ".tox"]
|
|
170
|
+
|
|
171
|
+
# Silence "type import errors" as our 3rd-party libs does not have types
|
|
172
|
+
# Check: https://mypy.readthedocs.io/en/latest/config_file.html#import-discovery
|
|
173
|
+
follow_imports = 'silent'
|
|
174
|
+
|
|
175
|
+
[[tool.mypy.overrides]]
|
|
176
|
+
module = [
|
|
177
|
+
"datasets.*",
|
|
178
|
+
"transformers.*",
|
|
179
|
+
"setuptools.*",
|
|
180
|
+
"setuptools_git_versioning.*",
|
|
181
|
+
"torchcodec.*"
|
|
182
|
+
]
|
|
183
|
+
ignore_missing_imports = true
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
[tool.ruff]
|
|
187
|
+
target-version = "py310"
|
|
188
|
+
line-length = 88
|
|
189
|
+
indent-width = 4
|
|
190
|
+
exclude = ["build", "dist", "env", ".venv*"]
|
|
191
|
+
|
|
192
|
+
[tool.ruff.format]
|
|
193
|
+
quote-style = "double"
|
|
194
|
+
indent-style = "space"
|
|
195
|
+
|
|
196
|
+
[tool.ruff.lint]
|
|
197
|
+
ignore = [
|
|
198
|
+
"COM812", # ignore trailing comma errors due to older Python versions
|
|
199
|
+
"PD011", # ignore .values usage since ruff assumes it's a Pandas DataFrame
|
|
200
|
+
"PLR0913", # ignore too many arguments in function definitions
|
|
201
|
+
"PLW1514", # allow Path.open without encoding
|
|
202
|
+
"RET505", # allow `else` blocks
|
|
203
|
+
"RET506", # allow `else` blocks
|
|
204
|
+
"S311", # allow standard pseudo-random generators
|
|
205
|
+
"TC001", # ignore imports used only for type checking
|
|
206
|
+
"TC002", # ignore imports used only for type checking
|
|
207
|
+
"TC003", # ignore imports used only for type checking
|
|
208
|
+
]
|
|
209
|
+
select = [
|
|
210
|
+
# Rules reference: https://docs.astral.sh/ruff/rules/
|
|
211
|
+
|
|
212
|
+
# Code Style / Formatting
|
|
213
|
+
"E", # pycodestyle: checks adherence to PEP 8 conventions including spacing, indentation, and line length
|
|
214
|
+
"W", # pycodestyle: checks adherence to PEP 8 conventions including spacing, indentation, and line length
|
|
215
|
+
"A", # flake8-builtins: prevents shadowing of Python built-in names
|
|
216
|
+
"C", # Convention: ensures code adheres to specific style and formatting conventions
|
|
217
|
+
"COM", # flake8-commas: enforces the correct use of trailing commas
|
|
218
|
+
"ERA", # eradicate: detects commented-out code that should be removed
|
|
219
|
+
"I", # isort: ensures imports are sorted in a consistent manner
|
|
220
|
+
"ICN", # flake8-import-conventions: enforces import conventions for better readability
|
|
221
|
+
"N", # pep8-naming: enforces PEP 8 naming conventions for classes, functions, and variables
|
|
222
|
+
"NPY", # NumPy: enforces best practices for using the NumPy library
|
|
223
|
+
"PD", # pandas-vet: enforces best practices for using the pandas library
|
|
224
|
+
"PT", # flake8-pytest-style: enforces best practices and style conventions for pytest tests
|
|
225
|
+
"PTH", # flake8-use-pathlib: encourages the use of pathlib over os.path for file system operations
|
|
226
|
+
"Q", # flake8-quotes: enforces consistent use of single or double quotes
|
|
227
|
+
"TCH", # flake8-type-checking: enforces type checking practices and standards
|
|
228
|
+
"TID", # flake8-tidy-imports: enforces tidy and well-organized imports
|
|
229
|
+
"RUF022", # flake8-ruff: enforce sorting of __all__ in modules
|
|
230
|
+
|
|
231
|
+
# Code Structure / Complexity
|
|
232
|
+
"C4", # flake8-comprehensions: improves readability and performance of list, set, and dict comprehensions
|
|
233
|
+
"C90", # mccabe: checks for overly complex code using cyclomatic complexity
|
|
234
|
+
"ISC", # flake8-implicit-str-concat: prevents implicit string concatenation
|
|
235
|
+
"PIE", # flake8-pie: identifies and corrects common code inefficiencies and mistakes
|
|
236
|
+
"R", # Refactor: suggests improvements to code structure and readability
|
|
237
|
+
"SIM", # flake8-simplify: simplifies complex expressions and improves code readability
|
|
238
|
+
|
|
239
|
+
# Code Security / Bug Prevention
|
|
240
|
+
"ARG", # flake8-unused-arguments: detects unused function and method arguments
|
|
241
|
+
"ASYNC", # flake8-async: identifies incorrect or inefficient usage patterns in asynchronous code
|
|
242
|
+
"B", # flake8-bugbear: detects common programming mistakes and potential bugs
|
|
243
|
+
"BLE", # flake8-blind-except: prevents blind exceptions that catch all exceptions without handling
|
|
244
|
+
"E", # Error: detects and reports errors in the code
|
|
245
|
+
"F", # Pyflakes: detects unused imports, shadowed imports, undefined variables, and various formatting errors in string operations
|
|
246
|
+
"INP", # flake8-no-pep420: prevents implicit namespace packages by requiring __init__.py
|
|
247
|
+
"PGH", # pygrep-hooks: detects deprecated and dangerous code patterns
|
|
248
|
+
"PL", # Pylint: comprehensive source code analyzer for enforcing coding standards and detecting errors
|
|
249
|
+
"RSE", # flake8-raise: ensures exceptions are raised correctly
|
|
250
|
+
"S", # flake8-bandit: detects security issues and vulnerabilities in the code
|
|
251
|
+
"SLF", # flake8-self: prevents incorrect usage of the self argument in class methods
|
|
252
|
+
"T10", # flake8-debugger: detects the presence of debugging tools such as pdb
|
|
253
|
+
"T20", # flake8-print: detects print statements left in the code
|
|
254
|
+
"UP", # pyupgrade: automatically upgrades syntax for newer versions of Python
|
|
255
|
+
"W", # Warning: provides warnings about potential issues in the code
|
|
256
|
+
"YTT", # flake8-2020: identifies code that will break with future Python releases
|
|
257
|
+
|
|
258
|
+
# Code Documentation
|
|
259
|
+
"FIX", # flake8-fixme: detects FIXMEs and other temporary comments that should be resolved
|
|
260
|
+
]
|
|
261
|
+
|
|
262
|
+
[tool.ruff.lint.extend-per-file-ignores]
|
|
263
|
+
"tests/**/*.py" = [
|
|
264
|
+
"S101", # asserts allowed in tests
|
|
265
|
+
"ARG", # Unused function args allowed in tests
|
|
266
|
+
"PLR2004", # Magic value used in comparison
|
|
267
|
+
"TCH002", # No import only type checking in tests
|
|
268
|
+
"SLF001", # enable private member access in tests
|
|
269
|
+
"S105", # allow hardcoded passwords in tests
|
|
270
|
+
"S311", # allow standard pseudo-random generators in tests
|
|
271
|
+
"PT011", # allow generic exceptions in tests
|
|
272
|
+
"N806", # allow uppercase variable names in tests
|
|
273
|
+
"PGH003", # allow general ignores in tests
|
|
274
|
+
"S106", # allow hardcoded passwords in tests
|
|
275
|
+
"PLR0915", # allow complext statements in tests
|
|
276
|
+
]
|
|
277
|
+
|
|
278
|
+
[tool.ruff.lint.isort]
|
|
279
|
+
known-first-party = ["guidellm", "tests"]
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
[tool.pytest.ini_options]
|
|
283
|
+
addopts = '-s -vvv --cache-clear'
|
|
284
|
+
markers = [
|
|
285
|
+
"smoke: quick tests to check basic functionality",
|
|
286
|
+
"sanity: detailed tests to ensure major functions work correctly",
|
|
287
|
+
"regression: tests to ensure that new changes do not break existing functionality",
|
|
288
|
+
]
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import re
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import Optional, Union
|
|
5
4
|
|
|
6
5
|
from packaging.version import Version
|
|
7
6
|
from setuptools import setup
|
|
8
7
|
from setuptools_git_versioning import count_since, get_branch, get_sha, get_tags
|
|
9
8
|
|
|
10
|
-
LAST_RELEASE_VERSION = Version("0.
|
|
9
|
+
LAST_RELEASE_VERSION = Version("0.3.0")
|
|
11
10
|
TAG_VERSION_PATTERN = re.compile(r"^v(\d+\.\d+\.\d+)$")
|
|
12
11
|
|
|
13
12
|
|
|
14
|
-
def get_last_version_diff() -> tuple[Version,
|
|
13
|
+
def get_last_version_diff() -> tuple[Version, str | None, int | None]:
|
|
15
14
|
"""
|
|
16
15
|
Get the last version, last tag, and the number of commits since the last tag.
|
|
17
16
|
If no tags are found, return the last release version and None for the tag/commits.
|
|
@@ -38,8 +37,8 @@ def get_last_version_diff() -> tuple[Version, Optional[str], Optional[int]]:
|
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
def get_next_version(
|
|
41
|
-
build_type: str, build_iteration:
|
|
42
|
-
) -> tuple[Version,
|
|
40
|
+
build_type: str, build_iteration: str | int | None
|
|
41
|
+
) -> tuple[Version, str | None, int]:
|
|
43
42
|
"""
|
|
44
43
|
Get the next version based on the build type and iteration.
|
|
45
44
|
- build_type == release: take the last version and add a post if build iteration
|
|
@@ -7,6 +7,8 @@ import contextlib
|
|
|
7
7
|
import logging
|
|
8
8
|
import os
|
|
9
9
|
|
|
10
|
+
from datasets import config
|
|
11
|
+
|
|
10
12
|
with (
|
|
11
13
|
open(os.devnull, "w") as devnull, # noqa: PTH123
|
|
12
14
|
contextlib.redirect_stderr(devnull),
|
|
@@ -19,8 +21,10 @@ with (
|
|
|
19
21
|
os.environ["TOKENIZERS_PARALLELISM"] = "false" # Silence warnings for tokenizers
|
|
20
22
|
hf_logging.set_verbosity_error()
|
|
21
23
|
logging.getLogger("transformers").setLevel(logging.ERROR)
|
|
24
|
+
config.USE_AUDIO_DECODE = False
|
|
22
25
|
|
|
23
|
-
from .
|
|
26
|
+
from .logger import configure_logger, logger
|
|
27
|
+
from .settings import (
|
|
24
28
|
DatasetSettings,
|
|
25
29
|
Environment,
|
|
26
30
|
LoggingSettings,
|
|
@@ -30,7 +34,6 @@ from .config import (
|
|
|
30
34
|
reload_settings,
|
|
31
35
|
settings,
|
|
32
36
|
)
|
|
33
|
-
from .logger import configure_logger, logger
|
|
34
37
|
|
|
35
38
|
__all__ = [
|
|
36
39
|
"DatasetSettings",
|