I have just read the recent release that added supported for PEP-735 and immediately went on to try it on my project. So far I have something like this:
[dependency-groups]
groupA = [
"pytest",
"ruff"
]
groupB = [
"cool-stuff-1",
"cool-stuff-2",
"cool-stuff-3",
"cool-stuff-4",
"cool-stuff-5",
"cool-stuff-6",
"cool-stuff-7",
"cool-stuff-8",
"cool-stuff-9",
"cool-stuff-10"
]
groupMACOS = [
"apple-stuff-1",
"apple-stuff-2",
"apple-stuff-3"
]
[tool.uv.sources]
pytest = { index = "groupA" }
cool-stuff-1 = { index = "groupB" }
cool-stuff-2 = { index = "groupB" }
cool-stuff-3 = { index = "groupB" }
cool-stuff-4 = { index = "groupB" }
cool-stuff-5 = { index = "groupB" }
cool-stuff-6 = { index = "groupB" }
cool-stuff-7 = { index = "groupB" }
cool-stuff-8 = { index = "groupB" }
cool-stuff-9 = { index = "groupB" }
cool-stuff-10 = { index = "groupB" }
apple-stuff-1 = { index = "groupA", marker = "sys_platform == 'darwin'" }
apple-stuff-2 = { index = "groupA", marker = "sys_platform == 'darwin'" }
apple-stuff-3 = { index = "groupA", marker = "sys_platform == 'darwin'" }
[[tool.uv.index]]
name = "groupA"
url = "https://download.mypypi.org/whl/group/A"
[[tool.uv.index]]
name = "groupB"
url = "https://download.mypypi.org/whl/group/B"
As you can see, it's easy to make a wall of similar text when you need specific sources and specifiers for a couple or more dependencies. But most are just sharing the same 2 unique values: { index = "groupB" }, { index = "groupA", marker = "sys_platform == 'darwin'" }
To simplify this, it seems that next improvement is to have a group share a sources setting.
I have just read the recent release that added supported for PEP-735 and immediately went on to try it on my project. So far I have something like this:
As you can see, it's easy to make a wall of similar text when you need specific sources and specifiers for a couple or more dependencies. But most are just sharing the same 2 unique values:
{ index = "groupB" }
,{ index = "groupA", marker = "sys_platform == 'darwin'" }
To simplify this, it seems that next improvement is to have a group share a
sources
setting.