PEP 751: one last time

[[packages]]
name = "pkg_a"
version = "2.0"
extras = {include = ["extra-1"], exclude = ["extra-2"]}

[[packages]]
name = "pkg_a"
version = "1.5"

extras = {include = ["extra-2"], exclude = ["extra-1"]}

[[packages]]
name = "pkg_a"
version = "1.0"
extras = {include = ["extra-1", "extra-2"]}

Well, @kapinga is right, so that kills the idea as-is. One possible way to tweak this is to make it three keys: any, all, and exclude:

[[packages]]
name = "pkg_a"
version = "2.0"
extras = {any = ["extra-1"], exclude = ["extra-2"]}

[[packages]]
name = "pkg_a"
version = "1.5"

extras = {any = ["extra-2"], exclude = ["extra-1"]}

[[packages]]
name = "pkg_a"
version = "1.0"
extras = {all = ["extra-1", "extra-2"]}

Does that cover all necessary cases? Another option is to have only and simply be more verbose.

2 Likes