in tools/validator.py [0:0]
def _assert_correct_tag_values(
self, metadata: Mapping[str, AbstractSet[str]]) -> None:
"""Checks that all tag values are defined in the respective YAML files.
Args:
metadata: Mapping of metadata fields to their values e.g.
{"language": {"en", "fr"}}.
Raises:
FileNotFoundError: if a YAML file containing the parser config does not
exist.
yaml.parser.ParserError: if a YAML file containing the parser config is no
valid YAML file.
MarkdownDocumentationError: if a tag value from `metadata` is invalid as
determined by its respective parser from `yaml_parser_by_tag_name`.
"""
for tag_name in metadata:
if tag_name not in self._yaml_parser_by_tag_name:
# Not every tag has a parser associated with it.
continue
yaml_parser = self._yaml_parser_by_tag_name[tag_name]
try:
yaml_parser.assert_tag_values_are_correct(metadata[tag_name])
except ValueError as e:
raise MarkdownDocumentationError(
f"Validating {tag_name} failed: {e}") from e