def build_tree_to_requirements(scoring_function, build_tree=build_tree):
params = getattr(scoring_function, '__params', ())
if len(params) != 1:
raise ValueError("Scoring function must accept a single parameter.")
return_type, = params
for __ in xrange(9999):
with recursion_limit(500):
tree = build_tree(return_type, convert=False)
requirements = getattr(scoring_function, 'required_inputs', ())
if not all(req in tree for req in requirements):
continue
return tree
raise UnsatisfiableType("Could not meet input requirements.")
评论列表
文章目录