code: def _permuted_dicts_of_specs(specs):
      
      permuter = itertools.product(*specs.values())
      return [dict(zip(specs.keys(), perm)) for perm in permuter]
docs: Create {name: value} dict, one each for every permutation.
  
      Each permutation becomes a dictionary, with the keys being the attr names
      and the values being the corresponding value for that permutation.  These
      dicts can then be directly passed to the Calc constructor.