def matches(self, *args, **kwargs):
        """Test if a request matches a :ref:`message spec <message spec>`.

        Returns ``True`` or ``False``.
        """
        request = make_prototype_request(*args, **kwargs)
        if self._prototype.opcode not in (None, request.opcode):
            return False
        if self._prototype.is_command not in (None, request.is_command):
            return False
        for name in dir(self._prototype):
            if name.startswith('_') or name in request._non_matched_attrs:
                # Ignore privates, and handle documents specially.
                continue
            prototype_value = getattr(self._prototype, name, None)
            if inspect.ismethod(prototype_value):
                continue
            actual_value = getattr(request, name, None)
            if prototype_value not in (None, actual_value):
                return False
        if len(self._prototype.docs) not in (0, len(request.docs)):
            return False

        return self._prototype._matches_docs(self._prototype.docs, request.docs)
def matches ( self , * args , ** kwargs ) : request = make_prototype_request ( * args , ** kwargs ) if self . _prototype . opcode not in ( None , request . opcode ) : return False if self . _prototype . is_command not in ( None , request . is_command ) : return False for name in dir ( self . _prototype ) : if name . startswith ( '_' ) or name in request . _non_matched_attrs : continue prototype_value = getattr ( self . _prototype , name , None ) if inspect . ismethod ( prototype_value ) : continue actual_value = getattr ( request , name , None ) if prototype_value not in ( None , actual_value ) : return False if len ( self . _prototype . docs ) not in ( 0 , len ( request . docs ) ) : return False return self . _prototype . _matches_docs ( self . _prototype . docs , request . docs )
Test if a request matches a :ref:`message spec <message spec>`.

        Returns ``True`` or ``False``.