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