guidellm 0.4.0a18__tar.gz → 0.4.0a155__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.

Files changed (144) hide show
  1. {guidellm-0.4.0a18/src/guidellm.egg-info → guidellm-0.4.0a155}/PKG-INFO +33 -10
  2. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/README.md +2 -2
  3. guidellm-0.4.0a155/pyproject.toml +288 -0
  4. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/setup.py +4 -5
  5. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/__init__.py +5 -2
  6. guidellm-0.4.0a155/src/guidellm/__main__.py +714 -0
  7. guidellm-0.4.0a155/src/guidellm/backends/__init__.py +33 -0
  8. guidellm-0.4.0a155/src/guidellm/backends/backend.py +110 -0
  9. guidellm-0.4.0a155/src/guidellm/backends/openai.py +355 -0
  10. guidellm-0.4.0a155/src/guidellm/backends/response_handlers.py +455 -0
  11. guidellm-0.4.0a155/src/guidellm/benchmark/__init__.py +81 -0
  12. guidellm-0.4.0a155/src/guidellm/benchmark/benchmarker.py +165 -0
  13. guidellm-0.4.0a155/src/guidellm/benchmark/entrypoints.py +503 -0
  14. guidellm-0.4.0a155/src/guidellm/benchmark/output.py +743 -0
  15. guidellm-0.4.0a155/src/guidellm/benchmark/profile.py +709 -0
  16. guidellm-0.4.0a155/src/guidellm/benchmark/progress.py +739 -0
  17. guidellm-0.4.0a155/src/guidellm/benchmark/scenarios/__init__.py +40 -0
  18. guidellm-0.4.0a155/src/guidellm/benchmark/scenarios/chat.json +6 -0
  19. guidellm-0.4.0a155/src/guidellm/benchmark/scenarios/rag.json +6 -0
  20. guidellm-0.4.0a155/src/guidellm/benchmark/schemas.py +2085 -0
  21. guidellm-0.4.0a155/src/guidellm/data/__init__.py +28 -0
  22. guidellm-0.4.0a155/src/guidellm/data/collators.py +16 -0
  23. guidellm-0.4.0a155/src/guidellm/data/deserializers/__init__.py +53 -0
  24. guidellm-0.4.0a155/src/guidellm/data/deserializers/deserializer.py +109 -0
  25. guidellm-0.4.0a155/src/guidellm/data/deserializers/file.py +222 -0
  26. guidellm-0.4.0a155/src/guidellm/data/deserializers/huggingface.py +94 -0
  27. guidellm-0.4.0a155/src/guidellm/data/deserializers/memory.py +192 -0
  28. guidellm-0.4.0a155/src/guidellm/data/deserializers/synthetic.py +346 -0
  29. guidellm-0.4.0a155/src/guidellm/data/loaders.py +145 -0
  30. guidellm-0.4.0a155/src/guidellm/data/preprocessors/__init__.py +25 -0
  31. guidellm-0.4.0a155/src/guidellm/data/preprocessors/formatters.py +412 -0
  32. guidellm-0.4.0a155/src/guidellm/data/preprocessors/mappers.py +198 -0
  33. guidellm-0.4.0a155/src/guidellm/data/preprocessors/preprocessor.py +29 -0
  34. guidellm-0.4.0a155/src/guidellm/data/processor.py +30 -0
  35. guidellm-0.4.0a155/src/guidellm/data/schemas.py +13 -0
  36. guidellm-0.4.0a155/src/guidellm/data/utils/__init__.py +10 -0
  37. guidellm-0.4.0a155/src/guidellm/data/utils/dataset.py +94 -0
  38. guidellm-0.4.0a155/src/guidellm/data/utils/functions.py +18 -0
  39. guidellm-0.4.0a155/src/guidellm/extras/__init__.py +4 -0
  40. guidellm-0.4.0a155/src/guidellm/extras/audio.py +215 -0
  41. guidellm-0.4.0a155/src/guidellm/extras/vision.py +242 -0
  42. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/logger.py +2 -2
  43. guidellm-0.4.0a155/src/guidellm/mock_server/__init__.py +8 -0
  44. guidellm-0.4.0a155/src/guidellm/mock_server/config.py +84 -0
  45. guidellm-0.4.0a155/src/guidellm/mock_server/handlers/__init__.py +17 -0
  46. guidellm-0.4.0a155/src/guidellm/mock_server/handlers/chat_completions.py +280 -0
  47. guidellm-0.4.0a155/src/guidellm/mock_server/handlers/completions.py +280 -0
  48. guidellm-0.4.0a155/src/guidellm/mock_server/handlers/tokenizer.py +142 -0
  49. guidellm-0.4.0a155/src/guidellm/mock_server/models.py +510 -0
  50. guidellm-0.4.0a155/src/guidellm/mock_server/server.py +168 -0
  51. guidellm-0.4.0a155/src/guidellm/mock_server/utils.py +302 -0
  52. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/preprocess/dataset.py +23 -26
  53. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/presentation/builder.py +2 -2
  54. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/presentation/data_models.py +25 -21
  55. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/presentation/injector.py +2 -3
  56. guidellm-0.4.0a155/src/guidellm/scheduler/__init__.py +86 -0
  57. guidellm-0.4.0a155/src/guidellm/scheduler/constraints.py +1035 -0
  58. guidellm-0.4.0a155/src/guidellm/scheduler/environments.py +252 -0
  59. guidellm-0.4.0a155/src/guidellm/scheduler/scheduler.py +162 -0
  60. guidellm-0.4.0a155/src/guidellm/scheduler/schemas.py +272 -0
  61. guidellm-0.4.0a155/src/guidellm/scheduler/strategies.py +519 -0
  62. guidellm-0.4.0a155/src/guidellm/scheduler/worker.py +443 -0
  63. guidellm-0.4.0a155/src/guidellm/scheduler/worker_group.py +707 -0
  64. guidellm-0.4.0a155/src/guidellm/schemas/__init__.py +31 -0
  65. guidellm-0.4.0a155/src/guidellm/schemas/info.py +159 -0
  66. guidellm-0.4.0a155/src/guidellm/schemas/request.py +216 -0
  67. guidellm-0.4.0a155/src/guidellm/schemas/response.py +119 -0
  68. guidellm-0.4.0a155/src/guidellm/schemas/stats.py +228 -0
  69. guidellm-0.4.0a18/src/guidellm/config.py → guidellm-0.4.0a155/src/guidellm/settings.py +32 -21
  70. guidellm-0.4.0a155/src/guidellm/utils/__init__.py +126 -0
  71. guidellm-0.4.0a155/src/guidellm/utils/auto_importer.py +98 -0
  72. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/cli.py +46 -2
  73. guidellm-0.4.0a155/src/guidellm/utils/console.py +183 -0
  74. guidellm-0.4.0a155/src/guidellm/utils/encoding.py +778 -0
  75. guidellm-0.4.0a155/src/guidellm/utils/functions.py +134 -0
  76. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/hf_datasets.py +1 -2
  77. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/hf_transformers.py +4 -4
  78. guidellm-0.4.0a155/src/guidellm/utils/imports.py +9 -0
  79. guidellm-0.4.0a155/src/guidellm/utils/messaging.py +1118 -0
  80. guidellm-0.4.0a155/src/guidellm/utils/mixins.py +115 -0
  81. guidellm-0.4.0a155/src/guidellm/utils/pydantic_utils.py +411 -0
  82. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/random.py +3 -4
  83. guidellm-0.4.0a155/src/guidellm/utils/registry.py +220 -0
  84. guidellm-0.4.0a155/src/guidellm/utils/singleton.py +133 -0
  85. {guidellm-0.4.0a18/src/guidellm/objects → guidellm-0.4.0a155/src/guidellm/utils}/statistics.py +341 -247
  86. guidellm-0.4.0a155/src/guidellm/utils/synchronous.py +159 -0
  87. guidellm-0.4.0a155/src/guidellm/utils/text.py +336 -0
  88. guidellm-0.4.0a155/src/guidellm/utils/typing.py +41 -0
  89. guidellm-0.4.0a155/src/guidellm/version.py +6 -0
  90. {guidellm-0.4.0a18 → guidellm-0.4.0a155/src/guidellm.egg-info}/PKG-INFO +33 -10
  91. guidellm-0.4.0a155/src/guidellm.egg-info/SOURCES.txt +101 -0
  92. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm.egg-info/requires.txt +32 -4
  93. guidellm-0.4.0a18/pyproject.toml +0 -250
  94. guidellm-0.4.0a18/src/guidellm/__main__.py +0 -515
  95. guidellm-0.4.0a18/src/guidellm/backend/__init__.py +0 -23
  96. guidellm-0.4.0a18/src/guidellm/backend/backend.py +0 -259
  97. guidellm-0.4.0a18/src/guidellm/backend/openai.py +0 -705
  98. guidellm-0.4.0a18/src/guidellm/backend/response.py +0 -136
  99. guidellm-0.4.0a18/src/guidellm/benchmark/__init__.py +0 -67
  100. guidellm-0.4.0a18/src/guidellm/benchmark/aggregator.py +0 -760
  101. guidellm-0.4.0a18/src/guidellm/benchmark/benchmark.py +0 -837
  102. guidellm-0.4.0a18/src/guidellm/benchmark/benchmarker.py +0 -334
  103. guidellm-0.4.0a18/src/guidellm/benchmark/entrypoints.py +0 -165
  104. guidellm-0.4.0a18/src/guidellm/benchmark/output.py +0 -997
  105. guidellm-0.4.0a18/src/guidellm/benchmark/profile.py +0 -409
  106. guidellm-0.4.0a18/src/guidellm/benchmark/progress.py +0 -720
  107. guidellm-0.4.0a18/src/guidellm/benchmark/scenario.py +0 -104
  108. guidellm-0.4.0a18/src/guidellm/benchmark/scenarios/__init__.py +0 -0
  109. guidellm-0.4.0a18/src/guidellm/data/__init__.py +0 -4
  110. guidellm-0.4.0a18/src/guidellm/data/prideandprejudice.txt.gz +0 -0
  111. guidellm-0.4.0a18/src/guidellm/dataset/__init__.py +0 -22
  112. guidellm-0.4.0a18/src/guidellm/dataset/creator.py +0 -213
  113. guidellm-0.4.0a18/src/guidellm/dataset/entrypoints.py +0 -42
  114. guidellm-0.4.0a18/src/guidellm/dataset/file.py +0 -92
  115. guidellm-0.4.0a18/src/guidellm/dataset/hf_datasets.py +0 -62
  116. guidellm-0.4.0a18/src/guidellm/dataset/in_memory.py +0 -132
  117. guidellm-0.4.0a18/src/guidellm/dataset/synthetic.py +0 -287
  118. guidellm-0.4.0a18/src/guidellm/objects/__init__.py +0 -18
  119. guidellm-0.4.0a18/src/guidellm/objects/pydantic.py +0 -89
  120. guidellm-0.4.0a18/src/guidellm/request/__init__.py +0 -18
  121. guidellm-0.4.0a18/src/guidellm/request/loader.py +0 -284
  122. guidellm-0.4.0a18/src/guidellm/request/request.py +0 -79
  123. guidellm-0.4.0a18/src/guidellm/request/types.py +0 -10
  124. guidellm-0.4.0a18/src/guidellm/scheduler/__init__.py +0 -47
  125. guidellm-0.4.0a18/src/guidellm/scheduler/queues.py +0 -25
  126. guidellm-0.4.0a18/src/guidellm/scheduler/result.py +0 -155
  127. guidellm-0.4.0a18/src/guidellm/scheduler/scheduler.py +0 -390
  128. guidellm-0.4.0a18/src/guidellm/scheduler/strategy.py +0 -495
  129. guidellm-0.4.0a18/src/guidellm/scheduler/worker.py +0 -472
  130. guidellm-0.4.0a18/src/guidellm/utils/__init__.py +0 -39
  131. guidellm-0.4.0a18/src/guidellm/utils/text.py +0 -223
  132. guidellm-0.4.0a18/src/guidellm/version.py +0 -6
  133. guidellm-0.4.0a18/src/guidellm.egg-info/SOURCES.txt +0 -67
  134. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/LICENSE +0 -0
  135. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/MANIFEST.in +0 -0
  136. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/setup.cfg +0 -0
  137. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/preprocess/__init__.py +0 -0
  138. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/presentation/__init__.py +0 -0
  139. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/colors.py +0 -0
  140. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/default_group.py +0 -0
  141. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm/utils/dict.py +0 -0
  142. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm.egg-info/dependency_links.txt +0 -0
  143. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/src/guidellm.egg-info/entry_points.txt +0 -0
  144. {guidellm-0.4.0a18 → guidellm-0.4.0a155}/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.0a18
3
+ Version: 0.4.0a155
4
4
  Summary: Guidance platform for deploying and managing large language models.
5
5
  Author: Red Hat
6
- License-Expression: Apache-2.0
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.9.0
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: numpy
21
- Requires-Dist: pillow
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: tiktoken>=0.11.0; extra == "recommended"
30
- Requires-Dist: blobfile>=3.1.0; extra == "recommended"
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~=0.23.8; extra == "dev"
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
- [![GitHub Release](https://img.shields.io/github/release/vllm-project/guidellm.svg?label=Version)](https://github.com/vllm-project/guidellm/releases) [![Documentation](https://img.shields.io/badge/Documentation-8A2BE2?logo=read-the-docs&logoColor=%23ffffff&color=%231BC070)](https://github.com/vllm-project/guidellm/tree/main/docs) [![License](https://img.shields.io/github/license/vllm-project/guidellm.svg)](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [![PyPI Release](https://img.shields.io/pypi/v/guidellm.svg?label=PyPI%20Release)](https://pypi.python.org/pypi/guidellm) [![Python Versions](https://img.shields.io/badge/Python-3.9--3.13-orange)](https://pypi.python.org/pypi/guidellm) [![Nightly Build](https://img.shields.io/github/actions/workflow/status/vllm-project/guidellm/nightly.yml?branch=main&label=Nightly%20Build)](https://github.com/vllm-project/guidellm/actions/workflows/nightly.yml)
92
+ [![GitHub Release](https://img.shields.io/github/release/vllm-project/guidellm.svg?label=Version)](https://github.com/vllm-project/guidellm/releases) [![Documentation](https://img.shields.io/badge/Documentation-8A2BE2?logo=read-the-docs&logoColor=%23ffffff&color=%231BC070)](https://github.com/vllm-project/guidellm/tree/main/docs) [![License](https://img.shields.io/github/license/vllm-project/guidellm.svg)](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [![PyPI Release](https://img.shields.io/pypi/v/guidellm.svg?label=PyPI%20Release)](https://pypi.python.org/pypi/guidellm) [![Python Versions](https://img.shields.io/badge/Python-3.10--3.13-orange)](https://pypi.python.org/pypi/guidellm) [![Nightly Build](https://img.shields.io/github/actions/workflow/status/vllm-project/guidellm/nightly.yml?branch=main&label=Nightly%20Build)](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.9 – 3.13
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
- [![GitHub Release](https://img.shields.io/github/release/vllm-project/guidellm.svg?label=Version)](https://github.com/vllm-project/guidellm/releases) [![Documentation](https://img.shields.io/badge/Documentation-8A2BE2?logo=read-the-docs&logoColor=%23ffffff&color=%231BC070)](https://github.com/vllm-project/guidellm/tree/main/docs) [![License](https://img.shields.io/github/license/vllm-project/guidellm.svg)](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [![PyPI Release](https://img.shields.io/pypi/v/guidellm.svg?label=PyPI%20Release)](https://pypi.python.org/pypi/guidellm) [![Python Versions](https://img.shields.io/badge/Python-3.9--3.13-orange)](https://pypi.python.org/pypi/guidellm) [![Nightly Build](https://img.shields.io/github/actions/workflow/status/vllm-project/guidellm/nightly.yml?branch=main&label=Nightly%20Build)](https://github.com/vllm-project/guidellm/actions/workflows/nightly.yml)
12
+ [![GitHub Release](https://img.shields.io/github/release/vllm-project/guidellm.svg?label=Version)](https://github.com/vllm-project/guidellm/releases) [![Documentation](https://img.shields.io/badge/Documentation-8A2BE2?logo=read-the-docs&logoColor=%23ffffff&color=%231BC070)](https://github.com/vllm-project/guidellm/tree/main/docs) [![License](https://img.shields.io/github/license/vllm-project/guidellm.svg)](https://github.com/vllm-project/guidellm/blob/main/LICENSE) [![PyPI Release](https://img.shields.io/pypi/v/guidellm.svg?label=PyPI%20Release)](https://pypi.python.org/pypi/guidellm) [![Python Versions](https://img.shields.io/badge/Python-3.10--3.13-orange)](https://pypi.python.org/pypi/guidellm) [![Nightly Build](https://img.shields.io/github/actions/workflow/status/vllm-project/guidellm/nightly.yml?branch=main&label=Nightly%20Build)](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.9 – 3.13
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.0.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, Optional[str], Optional[int]]:
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: Optional[Union[str, int]]
42
- ) -> tuple[Version, Optional[str], int]:
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 .config import (
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",