AI coding workspace
Bounded option combinations
A few options can produce many combinations. VariantOak brings product-option logic and its allocation limit into the same coding conversation, anchored to the files you select.
● ● ●VariantOak●
A concrete starting point · Bounded option combinations ×
from itertools import product
from math import prod
def variants(groups, limit):
if type(limit) is not int or limit < 0:
raise ValueError("limit")
if not groups: return []
if any(len(set(g)) != len(g) for g in groups):
raise ValueError("duplicate option")
if prod(map(len, groups)) > limit:
raise ValueError("too many variants")
return list(product(*groups))✳Enumerate combinations of ordered product options only after checking the result limit.
✓ ChangesReview before applying ↗
Illustrative workspace
Connection
Base URL, credentials and a reachable server.
Project
Test an empty group and duplicate option labels, rejecting excess combinations before allocating the output.
Review before applying
Compare actual behavior with the expected result. If a check fails, investigate it before applying more changes.
A concrete starting point
from itertools import product
from math import prod
def variants(groups, limit):
if type(limit) is not int or limit < 0:
raise ValueError("limit")
if not groups: return []
if any(len(set(g)) != len(g) for g in groups):
raise ValueError("duplicate option")
if prod(map(len, groups)) > limit:
raise ValueError("too many variants")
return list(product(*groups))