chore: use dependency-groups for dev (#2287)

# What does this PR do?

The previous `[project.optional-dependencies]` was misrepresenting what
the packages were. They were NOT optional dependencies to the project
but development dependencies. Unlike optional dependencies, development
dependencies are local-only and will not be included in the project
requirements when published to PyPI or other indexes. As such,
development dependencies are not included in the [project] table.
Additionally, the dev group is synced by default.

Source:

https://docs.astral.sh/uv/concepts/projects/dependencies/#development-dependencies

Signed-off-by: Sébastien Han <seb@redhat.com>
This commit is contained in:
Sébastien Han 2025-05-27 23:00:17 +02:00 committed by GitHub
parent 484abe3116
commit 4f3f28f718
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 96 additions and 79 deletions

146
uv.lock generated
View file

@ -1477,6 +1477,14 @@ dependencies = [
]
[package.optional-dependencies]
ui = [
{ name = "llama-stack-client" },
{ name = "pandas" },
{ name = "streamlit" },
{ name = "streamlit-option-menu" },
]
[package.dev-dependencies]
codegen = [
{ name = "jinja2" },
{ name = "pydantic" },
@ -1533,12 +1541,6 @@ test = [
{ name = "torchvision", version = "0.21.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
{ name = "transformers" },
]
ui = [
{ name = "llama-stack-client" },
{ name = "pandas" },
{ name = "streamlit" },
{ name = "streamlit-option-menu" },
]
unit = [
{ name = "aiohttp" },
{ name = "aiosqlite" },
@ -1555,89 +1557,101 @@ unit = [
[package.metadata]
requires-dist = [
{ name = "aiohttp", marker = "extra == 'test'" },
{ name = "aiohttp", marker = "extra == 'unit'" },
{ name = "aiosqlite", marker = "extra == 'test'" },
{ name = "aiosqlite", marker = "extra == 'unit'" },
{ name = "autoevals", marker = "extra == 'test'" },
{ name = "black", marker = "extra == 'dev'" },
{ name = "blobfile", marker = "extra == 'unit'" },
{ name = "chardet", marker = "extra == 'test'" },
{ name = "chardet", marker = "extra == 'unit'" },
{ name = "datasets", marker = "extra == 'test'" },
{ name = "fastapi", marker = "extra == 'dev'" },
{ name = "fire" },
{ name = "h11", specifier = ">=0.16.0" },
{ name = "httpx" },
{ name = "huggingface-hub" },
{ name = "jinja2", specifier = ">=3.1.6" },
{ name = "jinja2", marker = "extra == 'codegen'", specifier = ">=3.1.6" },
{ name = "jsonschema" },
{ name = "linkify", marker = "extra == 'docs'" },
{ name = "llama-stack-client", specifier = ">=0.2.8" },
{ name = "llama-stack-client", marker = "extra == 'ui'", specifier = ">=0.2.8" },
{ name = "mcp", marker = "extra == 'test'" },
{ name = "mcp", marker = "extra == 'unit'" },
{ name = "myst-parser", marker = "extra == 'docs'" },
{ name = "nbval", marker = "extra == 'dev'" },
{ name = "openai", specifier = ">=1.66" },
{ name = "openai", marker = "extra == 'test'" },
{ name = "openai", marker = "extra == 'unit'" },
{ name = "opentelemetry-exporter-otlp-proto-http", marker = "extra == 'test'" },
{ name = "opentelemetry-exporter-otlp-proto-http", marker = "extra == 'unit'" },
{ name = "opentelemetry-sdk", marker = "extra == 'test'" },
{ name = "pandas", marker = "extra == 'ui'" },
{ name = "pillow" },
{ name = "pre-commit", marker = "extra == 'dev'" },
{ name = "prompt-toolkit" },
{ name = "pydantic", specifier = ">=2" },
{ name = "pydantic", marker = "extra == 'codegen'" },
{ name = "pypdf", marker = "extra == 'test'" },
{ name = "pypdf", marker = "extra == 'unit'" },
{ name = "pytest", marker = "extra == 'dev'" },
{ name = "pytest-asyncio", marker = "extra == 'dev'" },
{ name = "pytest-cov", marker = "extra == 'dev'" },
{ name = "pytest-html", marker = "extra == 'dev'" },
{ name = "pytest-json-report", marker = "extra == 'dev'" },
{ name = "pytest-timeout", marker = "extra == 'dev'" },
{ name = "python-dotenv" },
{ name = "python-jose" },
{ name = "qdrant-client", marker = "extra == 'unit'" },
{ name = "requests" },
{ name = "rich" },
{ name = "rich", marker = "extra == 'codegen'" },
{ name = "ruamel-yaml", marker = "extra == 'dev'" },
{ name = "ruff", marker = "extra == 'dev'" },
{ name = "setuptools" },
{ name = "sphinx", marker = "extra == 'docs'" },
{ name = "sphinx-autobuild", marker = "extra == 'docs'" },
{ name = "sphinx-copybutton", marker = "extra == 'docs'" },
{ name = "sphinx-design", marker = "extra == 'docs'" },
{ name = "sphinx-rtd-dark-mode", marker = "extra == 'docs'" },
{ name = "sphinx-rtd-theme", marker = "extra == 'docs'" },
{ name = "sphinx-tabs", marker = "extra == 'docs'" },
{ name = "sphinxcontrib-mermaid", marker = "extra == 'docs'" },
{ name = "sphinxcontrib-openapi", marker = "extra == 'docs'" },
{ name = "sphinxcontrib-redoc", marker = "extra == 'docs'" },
{ name = "sphinxcontrib-video", marker = "extra == 'docs'" },
{ name = "sqlalchemy", marker = "extra == 'test'" },
{ name = "sqlalchemy", marker = "extra == 'unit'" },
{ name = "sqlalchemy", extras = ["asyncio"], marker = "extra == 'test'", specifier = ">=2.0.41" },
{ name = "sqlalchemy", extras = ["asyncio"], marker = "extra == 'unit'", specifier = ">=2.0.41" },
{ name = "sqlite-vec", marker = "extra == 'unit'" },
{ name = "streamlit", marker = "extra == 'ui'" },
{ name = "streamlit-option-menu", marker = "extra == 'ui'" },
{ name = "termcolor" },
{ name = "tiktoken" },
{ name = "tomli", marker = "extra == 'docs'" },
{ name = "torch", marker = "extra == 'test'", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/cpu" },
{ name = "torchvision", marker = "extra == 'test'", specifier = ">=0.21.0", index = "https://download.pytorch.org/whl/cpu" },
{ name = "transformers", marker = "extra == 'test'" },
{ name = "types-requests", marker = "extra == 'dev'" },
{ name = "types-setuptools", marker = "extra == 'dev'" },
{ name = "uvicorn", marker = "extra == 'dev'" },
]
provides-extras = ["dev", "unit", "test", "docs", "codegen", "ui"]
provides-extras = ["ui"]
[package.metadata.requires-dev]
codegen = [
{ name = "jinja2", specifier = ">=3.1.6" },
{ name = "pydantic" },
{ name = "rich" },
]
dev = [
{ name = "black" },
{ name = "fastapi" },
{ name = "nbval" },
{ name = "pre-commit" },
{ name = "pytest" },
{ name = "pytest-asyncio" },
{ name = "pytest-cov" },
{ name = "pytest-html" },
{ name = "pytest-json-report" },
{ name = "pytest-timeout" },
{ name = "ruamel-yaml" },
{ name = "ruff" },
{ name = "types-requests" },
{ name = "types-setuptools" },
{ name = "uvicorn" },
]
docs = [
{ name = "linkify" },
{ name = "myst-parser" },
{ name = "sphinx" },
{ name = "sphinx-autobuild" },
{ name = "sphinx-copybutton" },
{ name = "sphinx-design" },
{ name = "sphinx-rtd-dark-mode" },
{ name = "sphinx-rtd-theme" },
{ name = "sphinx-tabs" },
{ name = "sphinxcontrib-mermaid" },
{ name = "sphinxcontrib-openapi" },
{ name = "sphinxcontrib-redoc" },
{ name = "sphinxcontrib-video" },
{ name = "tomli" },
]
test = [
{ name = "aiohttp" },
{ name = "aiosqlite" },
{ name = "autoevals" },
{ name = "chardet" },
{ name = "datasets" },
{ name = "mcp" },
{ name = "openai" },
{ name = "opentelemetry-exporter-otlp-proto-http" },
{ name = "opentelemetry-sdk" },
{ name = "pypdf" },
{ name = "sqlalchemy" },
{ name = "sqlalchemy", extras = ["asyncio"], specifier = ">=2.0.41" },
{ name = "torch", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/cpu" },
{ name = "torchvision", specifier = ">=0.21.0", index = "https://download.pytorch.org/whl/cpu" },
{ name = "transformers" },
]
unit = [
{ name = "aiohttp" },
{ name = "aiosqlite" },
{ name = "blobfile" },
{ name = "chardet" },
{ name = "mcp" },
{ name = "openai" },
{ name = "opentelemetry-exporter-otlp-proto-http" },
{ name = "pypdf" },
{ name = "qdrant-client" },
{ name = "sqlalchemy" },
{ name = "sqlalchemy", extras = ["asyncio"], specifier = ">=2.0.41" },
{ name = "sqlite-vec" },
]
[[package]]
name = "llama-stack-client"