@@ -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