code: def _ParseAttributesGroup(self, file_object):
      
      tag_value_map = self._GetDataTypeMap('int8')
      tag_value = 0
  
      while tag_value != self._DELIMITER_TAG_END_OF_ATTRIBUTES:
        file_offset = file_object.tell()
  
        tag_value, _ = self._ReadStructureFromFileObject(
            file_object, file_offset, tag_value_map)
  
        if tag_value >= 0x10:
          file_object.seek(file_offset, os.SEEK_SET)
  
          yield self._ParseAttribute(file_object)
  
        elif (tag_value != self._DELIMITER_TAG_END_OF_ATTRIBUTES and
              tag_value not in self._DELIMITER_TAGS):
          raise errors.ParseError((
              'Unsupported attributes groups start tag value: '
              '0x{0:02x}.').format(tag_value))
docs: Parses a CUPS IPP attributes group from a file-like object.
  
      Args:
        file_object (dfvfs.FileIO): file-like object.
  
      Yields:
        tuple[str, object]: attribute name and value.
  
      Raises:
        ParseError: if the attributes group cannot be parsed.