@@ -24,9 +24,8 @@ name = "guidellm"
2424description  = " Guidance platform for deploying and managing large language models." 
2525readme  = { file  = " README.md" content-type  = " text/markdown" 
2626requires-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" 
3029keywords  = [
3130    " ai" 
3231    " benchmarking" 
@@ -47,18 +46,24 @@ keywords = [
4746]
4847dependencies  = [
4948    " click>=8.0.0,<8.2.0" 
49+     " culsans~=0.9.0" 
5050    " datasets" 
51+     " eval_type_backport" 
52+     " faker" 
5153    " ftfy>=6.0.0" 
5254    " httpx[http2]<1.0.0" 
5355    " loguru" 
56+     " msgpack" 
5457    " numpy" 
5558    " pillow" 
5659    " protobuf" 
5760    " pydantic>=2.11.7" 
5861    " pydantic-settings>=2.0.0" 
5962    " pyyaml>=6.0.0" 
6063    " rich" 
64+     " sanic" 
6165    " transformers" 
66+     " uvloop>=0.18" 
6267]
6368
6469[project .optional-dependencies ]
@@ -81,7 +86,7 @@ dev = [
8186    #  testing
8287    " lorem~=0.1.1" 
8388    " pytest~=8.2.2" 
84-     " pytest-asyncio~=0.23.8 " 
89+     " pytest-asyncio~=1.1.0 " 
8590    " pytest-cov~=5.0.0" 
8691    " pytest-mock~=3.14.0" 
8792    " pytest-rerunfailures~=14.0" 
@@ -143,11 +148,17 @@ exclude = ["venv", ".tox"]
143148follow_imports  = ' silent' 
144149
145150[[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 
148158
149159
150160[tool .ruff ]
161+ target-version  = " py39" 
151162line-length  = 88 
152163indent-width  = 4 
153164exclude  = [" build" " dist" " env" " .venv" 
@@ -158,82 +169,83 @@ indent-style = "space"
158169
159170[tool .ruff .lint ]
160171ignore  = [
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
166175    " 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
170182]
171183select  = [
172184    #  Rules reference: https://docs.astral.sh/ruff/rules/
173185
174186    #  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
191203    " RUF022" #  flake8-ruff: enforce sorting of __all__ in modules
192204
193205    #  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
195207    " C90" #  mccabe: checks for overly complex code using cyclomatic complexity
196208    " ISC" #  flake8-implicit-str-concat: prevents implicit string concatenation
197209    " 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
199211    " SIM" #  flake8-simplify: simplifies complex expressions and improves code readability
200212
201213    #  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
203215    " 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
219231
220232    #  Code Documentation
221233    " FIX" #  flake8-fixme: detects FIXMEs and other temporary comments that should be resolved
222234]
223235
224236[tool .ruff .lint .extend-per-file-ignores ]
225237"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
228240    " 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
237249    " PLR0915" #  allow complext statements in tests
238250]
239251
@@ -246,5 +258,5 @@ addopts = '-s -vvv --cache-clear'
246258markers  = [
247259    " smoke: quick tests to check basic functionality" 
248260    " 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" , 
250262]
0 commit comments