def __iter__(self):
tally = []
values = (pair[1] for pair in self.of)
keys = [pair[0] for pair in self.of]
# evaluate any transformers in order
for i, v in enumerate(values):
if callable(v): # then create a permutation for everything
for p in [x for x in AllPerms(*tally)]:
tally.append((keys[i], v(**p)))
else:
tally.append((keys[i], v))
values = (pair[1] for pair in tally)
for tup in itertools.product(*values):
yield dict(zip(keys, tup))
评论列表
文章目录