in tensorflow_decision_forests/keras/core.py [0:0]
def _get_matching_template(
template_name: str,
all_templates: List[HyperParameterTemplate]) -> HyperParameterTemplate:
"""Returns the template that matches a template name.
Args:
template_name: User specified template.
all_templates: Candidate templates.
Returns:
The matching template.
"""
# Extract the base name and version of the template.
template_base, template_version = _parse_hp_template(template_name)
if template_version is not None:
# Template with version.
# Matching templates.
matching = [
template for template in all_templates if
template.name == template_base and template.version == template_version
]
if not matching:
available = [
f"{template.name}@v{template.version}" for template in all_templates
]
raise ValueError(f"No template is matching {template_name}. "
f"The available templates are: {available}")
if len(matching) > 1:
raise ValueError("Internal error. Multiple matching templates")
return matching[0]
else:
# Template without version?
matching = [
template for template in all_templates if template.name == template_base
]
matching.sort(key=lambda x: x.version, reverse=True)
if not matching:
available = list(set([template.name for template in all_templates]))
raise ValueError(f"No template is matching {template_name}. "
f"Available template names are: {available}")
return matching[0]