def _ParseAttributesGroup(self, file_object):
    """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.
    """
    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))
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 ) )
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.