@@ -24,9 +24,8 @@ name = "guidellm"
24
24
description = " Guidance platform for deploying and managing large language models."
25
25
readme = { file = " README.md" , content-type = " text/markdown" }
26
26
requires-python = " >=3.9.0,<4.0"
27
- license = " Apache-2.0"
28
- license-files = [" LICENSE" ]
29
- authors = [ { name = " Red Hat" } ]
27
+ license = { text = " Apache-2.0" }
28
+ authors = [{ name = " Red Hat" }]
30
29
keywords = [
31
30
" ai" ,
32
31
" benchmarking" ,
@@ -47,18 +46,24 @@ keywords = [
47
46
]
48
47
dependencies = [
49
48
" click>=8.0.0,<8.2.0" ,
49
+ " culsans~=0.9.0" ,
50
50
" datasets" ,
51
+ " eval_type_backport" ,
52
+ " faker" ,
51
53
" ftfy>=6.0.0" ,
52
54
" httpx[http2]<1.0.0" ,
53
55
" loguru" ,
56
+ " msgpack" ,
54
57
" numpy" ,
55
58
" pillow" ,
56
59
" protobuf" ,
57
60
" pydantic>=2.11.7" ,
58
61
" pydantic-settings>=2.0.0" ,
59
62
" pyyaml>=6.0.0" ,
60
63
" rich" ,
64
+ " sanic" ,
61
65
" transformers" ,
66
+ " uvloop>=0.18" ,
62
67
]
63
68
64
69
[project .optional-dependencies ]
@@ -81,7 +86,7 @@ dev = [
81
86
# testing
82
87
" lorem~=0.1.1" ,
83
88
" pytest~=8.2.2" ,
84
- " pytest-asyncio~=0.23.8 " ,
89
+ " pytest-asyncio~=1.1.0 " ,
85
90
" pytest-cov~=5.0.0" ,
86
91
" pytest-mock~=3.14.0" ,
87
92
" pytest-rerunfailures~=14.0" ,
@@ -143,11 +148,17 @@ exclude = ["venv", ".tox"]
143
148
follow_imports = ' silent'
144
149
145
150
[[tool .mypy .overrides ]]
146
- module = [" datasets.*" , " transformers.*" , " setuptools.*" , " setuptools_git_versioning.*" ]
147
- ignore_missing_imports =true
151
+ module = [
152
+ " datasets.*" ,
153
+ " transformers.*" ,
154
+ " setuptools.*" ,
155
+ " setuptools_git_versioning.*" ,
156
+ ]
157
+ ignore_missing_imports = true
148
158
149
159
150
160
[tool .ruff ]
161
+ target-version = " py39"
151
162
line-length = 88
152
163
indent-width = 4
153
164
exclude = [" build" , " dist" , " env" , " .venv" ]
@@ -158,82 +169,83 @@ indent-style = "space"
158
169
159
170
[tool .ruff .lint ]
160
171
ignore = [
161
- " PLR0913" ,
162
- " TC001" ,
163
- " COM812" ,
164
- " ISC001" ,
165
- " TC002" ,
172
+ " COM812" , # ignore trailing comma errors due to older Python versions
173
+ " PD011" , # ignore .values usage since ruff assumes it's a Pandas DataFrame
174
+ " PLR0913" , # ignore too many arguments in function definitions
166
175
" PLW1514" , # allow Path.open without encoding
167
- " RET505" , # allow `else` blocks
168
- " RET506" , # allow `else` blocks
169
- " PD011" , # ignore .values usage since ruff assumes it's a Pandas DataFrame
176
+ " RET505" , # allow `else` blocks
177
+ " RET506" , # allow `else` blocks
178
+ " S311" , # allow standard pseudo-random generators
179
+ " TC001" , # ignore imports used only for type checking
180
+ " TC002" , # ignore imports used only for type checking
181
+ " TC003" , # ignore imports used only for type checking
170
182
]
171
183
select = [
172
184
# Rules reference: https://docs.astral.sh/ruff/rules/
173
185
174
186
# Code Style / Formatting
175
- " E" , # pycodestyle: checks adherence to PEP 8 conventions including spacing, indentation, and line length
176
- " W" , # pycodestyle: checks adherence to PEP 8 conventions including spacing, indentation, and line length
177
- " A" , # flake8-builtins: prevents shadowing of Python built-in names
178
- " C" , # Convention: ensures code adheres to specific style and formatting conventions
179
- " COM" , # flake8-commas: enforces the correct use of trailing commas
180
- " ERA" , # eradicate: detects commented-out code that should be removed
181
- " I" , # isort: ensures imports are sorted in a consistent manner
182
- " ICN" , # flake8-import-conventions: enforces import conventions for better readability
183
- " N" , # pep8-naming: enforces PEP 8 naming conventions for classes, functions, and variables
184
- " NPY" , # NumPy: enforces best practices for using the NumPy library
185
- " PD" , # pandas-vet: enforces best practices for using the pandas library
186
- " PT" , # flake8-pytest-style: enforces best practices and style conventions for pytest tests
187
- " PTH" , # flake8-use-pathlib: encourages the use of pathlib over os.path for file system operations
188
- " Q" , # flake8-quotes: enforces consistent use of single or double quotes
189
- " TCH" , # flake8-type-checking: enforces type checking practices and standards
190
- " TID" , # flake8-tidy-imports: enforces tidy and well-organized imports
187
+ " E" , # pycodestyle: checks adherence to PEP 8 conventions including spacing, indentation, and line length
188
+ " W" , # pycodestyle: checks adherence to PEP 8 conventions including spacing, indentation, and line length
189
+ " A" , # flake8-builtins: prevents shadowing of Python built-in names
190
+ " C" , # Convention: ensures code adheres to specific style and formatting conventions
191
+ " COM" , # flake8-commas: enforces the correct use of trailing commas
192
+ " ERA" , # eradicate: detects commented-out code that should be removed
193
+ " I" , # isort: ensures imports are sorted in a consistent manner
194
+ " ICN" , # flake8-import-conventions: enforces import conventions for better readability
195
+ " N" , # pep8-naming: enforces PEP 8 naming conventions for classes, functions, and variables
196
+ " NPY" , # NumPy: enforces best practices for using the NumPy library
197
+ " PD" , # pandas-vet: enforces best practices for using the pandas library
198
+ " PT" , # flake8-pytest-style: enforces best practices and style conventions for pytest tests
199
+ " PTH" , # flake8-use-pathlib: encourages the use of pathlib over os.path for file system operations
200
+ " Q" , # flake8-quotes: enforces consistent use of single or double quotes
201
+ " TCH" , # flake8-type-checking: enforces type checking practices and standards
202
+ " TID" , # flake8-tidy-imports: enforces tidy and well-organized imports
191
203
" RUF022" , # flake8-ruff: enforce sorting of __all__ in modules
192
204
193
205
# Code Structure / Complexity
194
- " C4" , # flake8-comprehensions: improves readability and performance of list, set, and dict comprehensions
206
+ " C4" , # flake8-comprehensions: improves readability and performance of list, set, and dict comprehensions
195
207
" C90" , # mccabe: checks for overly complex code using cyclomatic complexity
196
208
" ISC" , # flake8-implicit-str-concat: prevents implicit string concatenation
197
209
" PIE" , # flake8-pie: identifies and corrects common code inefficiencies and mistakes
198
- " R" , # Refactor: suggests improvements to code structure and readability
210
+ " R" , # Refactor: suggests improvements to code structure and readability
199
211
" SIM" , # flake8-simplify: simplifies complex expressions and improves code readability
200
212
201
213
# Code Security / Bug Prevention
202
- " ARG" , # flake8-unused-arguments: detects unused function and method arguments
214
+ " ARG" , # flake8-unused-arguments: detects unused function and method arguments
203
215
" ASYNC" , # flake8-async: identifies incorrect or inefficient usage patterns in asynchronous code
204
- " B" , # flake8-bugbear: detects common programming mistakes and potential bugs
205
- " BLE" , # flake8-blind-except: prevents blind exceptions that catch all exceptions without handling
206
- " E" , # Error: detects and reports errors in the code
207
- " F" , # Pyflakes: detects unused imports, shadowed imports, undefined variables, and various formatting errors in string operations
208
- " INP" , # flake8-no-pep420: prevents implicit namespace packages by requiring __init__.py
209
- " PGH" , # pygrep-hooks: detects deprecated and dangerous code patterns
210
- " PL" , # Pylint: comprehensive source code analyzer for enforcing coding standards and detecting errors
211
- " RSE" , # flake8-raise: ensures exceptions are raised correctly
212
- " S" , # flake8-bandit: detects security issues and vulnerabilities in the code
213
- " SLF" , # flake8-self: prevents incorrect usage of the self argument in class methods
214
- " T10" , # flake8-debugger: detects the presence of debugging tools such as pdb
215
- " T20" , # flake8-print: detects print statements left in the code
216
- " UP" , # pyupgrade: automatically upgrades syntax for newer versions of Python
217
- " W" , # Warning: provides warnings about potential issues in the code
218
- " YTT" , # flake8-2020: identifies code that will break with future Python releases
216
+ " B" , # flake8-bugbear: detects common programming mistakes and potential bugs
217
+ " BLE" , # flake8-blind-except: prevents blind exceptions that catch all exceptions without handling
218
+ " E" , # Error: detects and reports errors in the code
219
+ " F" , # Pyflakes: detects unused imports, shadowed imports, undefined variables, and various formatting errors in string operations
220
+ " INP" , # flake8-no-pep420: prevents implicit namespace packages by requiring __init__.py
221
+ " PGH" , # pygrep-hooks: detects deprecated and dangerous code patterns
222
+ " PL" , # Pylint: comprehensive source code analyzer for enforcing coding standards and detecting errors
223
+ " RSE" , # flake8-raise: ensures exceptions are raised correctly
224
+ " S" , # flake8-bandit: detects security issues and vulnerabilities in the code
225
+ " SLF" , # flake8-self: prevents incorrect usage of the self argument in class methods
226
+ " T10" , # flake8-debugger: detects the presence of debugging tools such as pdb
227
+ " T20" , # flake8-print: detects print statements left in the code
228
+ " UP" , # pyupgrade: automatically upgrades syntax for newer versions of Python
229
+ " W" , # Warning: provides warnings about potential issues in the code
230
+ " YTT" , # flake8-2020: identifies code that will break with future Python releases
219
231
220
232
# Code Documentation
221
233
" FIX" , # flake8-fixme: detects FIXMEs and other temporary comments that should be resolved
222
234
]
223
235
224
236
[tool .ruff .lint .extend-per-file-ignores ]
225
237
"tests/**/*.py" = [
226
- " S101" , # asserts allowed in tests
227
- " ARG" , # Unused function args allowed in tests
238
+ " S101" , # asserts allowed in tests
239
+ " ARG" , # Unused function args allowed in tests
228
240
" PLR2004" , # Magic value used in comparison
229
- " TCH002" , # No import only type checking in tests
230
- " SLF001" , # enable private member access in tests
231
- " S105" , # allow hardcoded passwords in tests
232
- " S311" , # allow standard pseudo-random generators in tests
233
- " PT011" , # allow generic exceptions in tests
234
- " N806" , # allow uppercase variable names in tests
235
- " PGH003" , # allow general ignores in tests
236
- " S106" , # allow hardcoded passwords in tests
241
+ " TCH002" , # No import only type checking in tests
242
+ " SLF001" , # enable private member access in tests
243
+ " S105" , # allow hardcoded passwords in tests
244
+ " S311" , # allow standard pseudo-random generators in tests
245
+ " PT011" , # allow generic exceptions in tests
246
+ " N806" , # allow uppercase variable names in tests
247
+ " PGH003" , # allow general ignores in tests
248
+ " S106" , # allow hardcoded passwords in tests
237
249
" PLR0915" , # allow complext statements in tests
238
250
]
239
251
@@ -246,5 +258,5 @@ addopts = '-s -vvv --cache-clear'
246
258
markers = [
247
259
" smoke: quick tests to check basic functionality" ,
248
260
" sanity: detailed tests to ensure major functions work correctly" ,
249
- " regression: tests to ensure that new changes do not break existing functionality"
261
+ " regression: tests to ensure that new changes do not break existing functionality" ,
250
262
]
0 commit comments