MCPcopy Create free account
hub / github.com/dblalock/bolt / expand_params

Function expand_params

experiments/python/pyience.py:151–172  ·  view source on GitHub ↗

dict of kv pairs -> list of dicts with one option selected for each key whose value is an instance of Options.

(params)

Source from the content-addressed store, hash-verified

149# ------------------------------------------------ parameter generation
150
151def expand_params(params):
152 """dict of kv pairs -> list of dicts with one option selected for
153 each key whose value is an instance of Options."""
154
155 # keys with values that are Options; try all combos of these
156 options_keys = [key for key in params if isinstance(params[key], Options)]
157 options_keys = sorted(options_keys) # sort for reproducibility
158 options_vals = [params[key].values for key in options_keys]
159
160 # keys with values that aren't Options; these are the same every time
161 no_options_keys = [key for key in params if not isinstance(params[key], Options)]
162 no_options_vals = [params[key] for key in no_options_keys]
163 no_options_params = dict(zip(no_options_keys, no_options_vals))
164
165 # make a list of all possible combos of values for each key with Options
166 expanded_params_list = []
167 for v in itertools.product(*options_vals):
168 expanded_params = dict(zip(options_keys, v)) # pick one option for each
169 expanded_params.update(no_options_params) # add in fixed params
170 expanded_params_list.append(expanded_params)
171
172 return expanded_params_list
173
174
175def update_func_from_dict(d):

Callers 1

Calls 2

appendMethod · 0.80
updateMethod · 0.45

Tested by

no test coverage detected