@staticmethod
def parse(wmsg):
    '\n      Verifies and parses an unserialized raw message into an actual WAMP message instance.\n\n      :param wmsg: The unserialized raw message.\n      :type wmsg: list\n\n      :returns: An instance of this class.\n      '
    assert ((len(wmsg) > 0) and (wmsg[0] == Subscribe.MESSAGE_TYPE))
    if (len(wmsg) != 4):
        raise ProtocolError('invalid message length {0} for SUBSCRIBE'.format(len(wmsg)))
    request = check_or_raise_id(wmsg[1], "'request' in SUBSCRIBE")
    options = check_or_raise_extra(wmsg[2], "'options' in SUBSCRIBE")
    topic = check_or_raise_uri(wmsg[3], "'topic' in SUBSCRIBE")
    match = Subscribe.MATCH_EXACT
    if (u'match' in options):
        option_match = options[u'match']
        if (type(option_match) != six.text_type):
            raise ProtocolError("invalid type {0} for 'match' option in SUBSCRIBE".format(type(option_match)))
        if (option_match not in [Subscribe.MATCH_EXACT, Subscribe.MATCH_PREFIX, Subscribe.MATCH_WILDCARD]):
            raise ProtocolError("invalid value {0} for 'match' option in SUBSCRIBE".format(option_match))
        match = option_match
    obj = Subscribe(request, topic, match)
    return obj
Verifies and parses an unserialized raw message into an actual WAMP message instance.

:param wmsg: The unserialized raw message.
:type wmsg: list

:returns: An instance of this class.
@staticmethod
def parse(wmsg):
    '\n      Verifies and parses an unserialized raw message into an actual WAMP message instance.\n\n      :param wmsg: The unserialized raw message.\n      :type wmsg: list\n\n      :returns: An instance of this class.\n      '
    assert ((len(wmsg) > 0) and (wmsg[0] == Subscribe.MESSAGE_TYPE))
    if (len(wmsg) != 4):
        raise ProtocolError('invalid message length {0} for SUBSCRIBE'.format(len(wmsg)))
    request = check_or_raise_id(wmsg[1], "'request' in SUBSCRIBE")
    options = check_or_raise_extra(wmsg[2], "'options' in SUBSCRIBE")
    topic = check_or_raise_uri(wmsg[3], "'topic' in SUBSCRIBE")
    match = Subscribe.MATCH_EXACT
    if (u'match' in options):
        option_match = options[u'match']
        if (type(option_match) != six.text_type):
            raise ProtocolError("invalid type {0} for 'match' option in SUBSCRIBE".format(type(option_match)))
        if (option_match not in [Subscribe.MATCH_EXACT, Subscribe.MATCH_PREFIX, Subscribe.MATCH_WILDCARD]):
            raise ProtocolError("invalid value {0} for 'match' option in SUBSCRIBE".format(option_match))
        match = option_match
    obj = Subscribe(request, topic, match)
    return obj