-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Closed
Labels
bugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomers
Description
Summary
I have a pretty standard pyproject.toml file:
[project]
name = "project-name"
version = "1.0.0"
description = ""
authors = [{ name = "ML team" }]
readme = "README.md"
requires-python = ">=3.12,<3.13"
dependencies = []
# select a CPU or GPU variant of PyTorch
pytorch_variant = {train_model = "pytorch-gpu", inference = "pytorch-cpu"}
[dependency-groups]
dev = [
"jupyter",
"pre-commit",
"ruff"
]
training = [
"accelerate==1.*",
"boto3==1.*",
"pillow==11.*",
"pydantic-settings==2.*",
"scikit-learn==1.7.*",
"tqdm",
"transformers==4.56.*",
]
jenkins = [
"boto3==1.*",
"pyyaml",
"sagemaker==2.*"
]
inference = [
"fastapi==0.116.*",
"opentelemetry-api==1.36.*",
"opentelemetry-exporter-otlp==1.36.*",
"opentelemetry-instrumentation-fastapi",
"opentelemetry-sdk==1.36.*",
"pandas==2.*",
"pillow==11.*",
"pydantic-settings==2.*",
"scikit-learn==1.7.*",
"sentry-sdk[fastapi]==2.*",
"transformers==4.56.*",
"uvicorn==0.35.*",
]
[project.optional-dependencies]
pytorch-cpu = ["torch==2.8.0"]
pytorch-gpu = ["torch==2.8.0"]
[tool.uv]
conflicts = [
[
{ extra = "pytorch-cpu" },
{ extra = "pytorch-gpu" }
]
]
[tool.uv.sources]
torch = [
{ index = "pytorch-cpu", extra = "pytorch-cpu" },
{ index = "pytorch-gpu", extra = "pytorch-gpu" }
]
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
[[tool.uv.index]]
name = "pytorch-gpu"
url = "https://download.pytorch.org/whl/cu126" # sync with PyTorch version
explicit = true
When I run uv sync --only-group inference --extra pytorch-cpu, my environment does not contain PyTorch at all, and extra is ignored. Result of uv pip list is:
annotated-types 0.7.0
anyio 4.10.0
asgiref 3.9.1
certifi 2025.8.3
charset-normalizer 3.4.3
click 8.2.1
fastapi 0.116.1
filelock 3.19.1
fsspec 2025.9.0
googleapis-common-protos 1.70.0
grpcio 1.74.0
h11 0.16.0
hf-xet 1.1.9
huggingface-hub 0.34.4
idna 3.10
importlib-metadata 6.11.0
joblib 1.5.2
numpy 1.26.4
opentelemetry-api 1.36.0
opentelemetry-exporter-otlp 1.36.0
opentelemetry-exporter-otlp-proto-common 1.36.0
opentelemetry-exporter-otlp-proto-grpc 1.36.0
opentelemetry-exporter-otlp-proto-http 1.36.0
opentelemetry-instrumentation 0.57b0
opentelemetry-instrumentation-asgi 0.57b0
opentelemetry-instrumentation-fastapi 0.57b0
opentelemetry-proto 1.36.0
opentelemetry-sdk 1.36.0
opentelemetry-semantic-conventions 0.57b0
opentelemetry-util-http 0.57b0
packaging 24.2
pandas 2.3.2
pillow 11.3.0
protobuf 6.31.1
pydantic 2.11.7
pydantic-core 2.33.2
pydantic-settings 2.10.1
python-dateutil 2.9.0.post0
python-dotenv 1.1.1
pytz 2025.2
pyyaml 6.0.2
regex 2025.9.1
requests 2.32.5
safetensors 0.6.2
scikit-learn 1.7.1
scipy 1.16.1
sentry-sdk 2.36.0
six 1.17.0
sniffio 1.3.1
starlette 0.47.3
threadpoolctl 3.6.0
tokenizers 0.22.0
tqdm 4.67.1
transformers 4.56.0
typing-extensions 4.15.0
typing-inspection 0.4.1
tzdata 2025.2
urllib3 2.5.0
uvicorn 0.35.0
wrapt 1.17.3
zipp 3.23.0
Meanwhile, uv sync --no-default-groups --group inference --extra pytorch-cpu is behaving properly:
annotated-types 0.7.0
anyio 4.10.0
asgiref 3.9.1
certifi 2025.8.3
charset-normalizer 3.4.3
click 8.2.1
fastapi 0.116.1
filelock 3.19.1
fsspec 2025.9.0
googleapis-common-protos 1.70.0
grpcio 1.74.0
h11 0.16.0
hf-xet 1.1.9
huggingface-hub 0.34.4
idna 3.10
importlib-metadata 6.11.0
jinja2 3.1.6
joblib 1.5.2
markupsafe 3.0.2
mpmath 1.3.0
networkx 3.5
numpy 1.26.4
opentelemetry-api 1.36.0
opentelemetry-exporter-otlp 1.36.0
opentelemetry-exporter-otlp-proto-common 1.36.0
opentelemetry-exporter-otlp-proto-grpc 1.36.0
opentelemetry-exporter-otlp-proto-http 1.36.0
opentelemetry-instrumentation 0.57b0
opentelemetry-instrumentation-asgi 0.57b0
opentelemetry-instrumentation-fastapi 0.57b0
opentelemetry-proto 1.36.0
opentelemetry-sdk 1.36.0
opentelemetry-semantic-conventions 0.57b0
opentelemetry-util-http 0.57b0
packaging 24.2
pandas 2.3.2
pillow 11.3.0
protobuf 6.31.1
pydantic 2.11.7
pydantic-core 2.33.2
pydantic-settings 2.10.1
python-dateutil 2.9.0.post0
python-dotenv 1.1.1
pytz 2025.2
pyyaml 6.0.2
regex 2025.9.1
requests 2.32.5
safetensors 0.6.2
scikit-learn 1.7.1
scipy 1.16.1
sentry-sdk 2.36.0
setuptools 80.9.0
six 1.17.0
sniffio 1.3.1
starlette 0.47.3
sympy 1.14.0
threadpoolctl 3.6.0
tokenizers 0.22.0
torch 2.8.0+cpu
tqdm 4.67.1
transformers 4.56.0
typing-extensions 4.15.0
typing-inspection 0.4.1
tzdata 2025.2
urllib3 2.5.0
uvicorn 0.35.0
wrapt 1.17.3
zipp 3.23.0
This is a bug, because when I explicitly specify an extra, it should override the --only-group. Those are two different things anyway (dependency groups vs optional dependencies).
Platform
Ubuntu 25.04
Version
0.8.15
Python version
3.12.11
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomers