code: def _unpack_tuple(self, buff):
          
          cardinality = struct_L.unpack_from(buff)[0]
          _tuple = ['']*cardinality
          offset = 4    # The first 4 bytes in the response body is the <count> we have already read
          for i in xrange(cardinality):
              field_size, offset = self._unpack_int_base128(buff, offset)
              field_data = struct.unpack_from("<%ds" % field_size, buff, offset)[0]
              _tuple[i] = field(field_data)
              offset += field_size
  
          return tuple(_tuple)
docs: Unpacks the tuple from byte buffer
          <tuple> ::= <cardinality><field>+
  
          :param buff: byte array of the form <cardinality><field>+
          :type buff: ctypes buffer or bytes
  
          :return: tuple of unpacked values
          :rtype: tuple