def _assert_valid_item_level_keys()

in tools/tags_validator.py [0:0]


  def _assert_valid_item_level_keys(self, item: Mapping[str, str]) -> None:
    """Validates the keys of the given item.

    Args:
      item: Mapping representing a tag item e.g. {id=mnist, display_name=MNIST}.

    Raises:
      TagDefinitionError:
        - if not all required item-level keys are set.
        - if keys are different from the supported item-level keys.
        - if the id does not match ID_PATTERN.
    """
    missing_required_field = self.required_item_keys - set(item.keys())
    if missing_required_field:
      raise TagDefinitionError(f"Missing required item-level keys: "
                               f"{sorted(missing_required_field)}.")
    unsupported_field = set(item.keys()) - self.supported_item_keys
    if unsupported_field:
      raise TagDefinitionError(
          f"Unsupported item-level keys: {unsupported_field}.")

    if re.fullmatch(ID_PATTERN, item[ID_KEY]) is None:
      raise TagDefinitionError(f"The value of an id must match {ID_PATTERN} but"
                               f" was {item[ID_KEY]}.")