@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] == Error.MESSAGE_TYPE))
    if (len(wmsg) not in (5, 6, 7)):
        raise ProtocolError('invalid message length {0} for ERROR'.format(len(wmsg)))
    request_type = wmsg[1]
    if (type(request_type) not in six.integer_types):
        raise ProtocolError("invalid type {0} for 'request_type' in ERROR".format(request_type))
    if (request_type not in [Subscribe.MESSAGE_TYPE, Unsubscribe.MESSAGE_TYPE, Publish.MESSAGE_TYPE, Register.MESSAGE_TYPE, Unregister.MESSAGE_TYPE, Call.MESSAGE_TYPE, Invocation.MESSAGE_TYPE]):
        raise ProtocolError("invalid value {0} for 'request_type' in ERROR".format(request_type))
    request = check_or_raise_id(wmsg[2], "'request' in ERROR")
    _ = check_or_raise_extra(wmsg[3], "'details' in ERROR")
    error = check_or_raise_uri(wmsg[4], "'error' in ERROR")
    args = None
    if (len(wmsg) > 5):
        args = wmsg[5]
        if (type(args) != list):
            raise ProtocolError("invalid type {0} for 'args' in ERROR".format(type(args)))
    kwargs = None
    if (len(wmsg) > 6):
        kwargs = wmsg[6]
        if (type(kwargs) != dict):
            raise ProtocolError("invalid type {0} for 'kwargs' in ERROR".format(type(kwargs)))
    obj = Error(request_type, request, error, args=args, kwargs=kwargs)
    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] == Error.MESSAGE_TYPE))
    if (len(wmsg) not in (5, 6, 7)):
        raise ProtocolError('invalid message length {0} for ERROR'.format(len(wmsg)))
    request_type = wmsg[1]
    if (type(request_type) not in six.integer_types):
        raise ProtocolError("invalid type {0} for 'request_type' in ERROR".format(request_type))
    if (request_type not in [Subscribe.MESSAGE_TYPE, Unsubscribe.MESSAGE_TYPE, Publish.MESSAGE_TYPE, Register.MESSAGE_TYPE, Unregister.MESSAGE_TYPE, Call.MESSAGE_TYPE, Invocation.MESSAGE_TYPE]):
        raise ProtocolError("invalid value {0} for 'request_type' in ERROR".format(request_type))
    request = check_or_raise_id(wmsg[2], "'request' in ERROR")
    _ = check_or_raise_extra(wmsg[3], "'details' in ERROR")
    error = check_or_raise_uri(wmsg[4], "'error' in ERROR")
    args = None
    if (len(wmsg) > 5):
        args = wmsg[5]
        if (type(args) != list):
            raise ProtocolError("invalid type {0} for 'args' in ERROR".format(type(args)))
    kwargs = None
    if (len(wmsg) > 6):
        kwargs = wmsg[6]
        if (type(kwargs) != dict):
            raise ProtocolError("invalid type {0} for 'kwargs' in ERROR".format(type(kwargs)))
    obj = Error(request_type, request, error, args=args, kwargs=kwargs)
    return obj