def __init__(self, **kw):
        """
        Create an instance of this command with specified values for its
        parameters.

        In Python 3, keyword arguments MUST be Unicode/native strings whereas
        in Python 2 they could be either byte strings or Unicode strings.

        A L{Command}'s arguments are defined in its schema using C{bytes}
        names. The values for those arguments are plucked from the keyword
        arguments using the name returned from L{_wireNameToPythonIdentifier}.
        In other words, keyword arguments should be named using the
        Python-side equivalent of the on-wire (C{bytes}) name.

        @param kw: a dict containing an appropriate value for each name
        specified in the L{arguments} attribute of my class.

        @raise InvalidSignature: if you forgot any required arguments.
        """
        self.structured = kw
        forgotten = []
        for name, arg in self.arguments:
            pythonName = _wireNameToPythonIdentifier(name)
            if pythonName not in self.structured and not arg.optional:
                forgotten.append(pythonName)
        if forgotten:
            raise InvalidSignature("forgot %s for %s" % (
                ', '.join(forgotten), self.commandName))
        forgotten = []

        Create an instance of this command with specified values for its
        parameters.

        In Python 3, keyword arguments MUST be Unicode/native strings whereas
        in Python 2 they could be either byte strings or Unicode strings.

        A L{Command}'s arguments are defined in its schema using C{bytes}
        names. The values for those arguments are plucked from the keyword
        arguments using the name returned from L{_wireNameToPythonIdentifier}.
        In other words, keyword arguments should be named using the
        Python-side equivalent of the on-wire (C{bytes}) name.

        @param kw: a dict containing an appropriate value for each name
        specified in the L{arguments} attribute of my class.

        @raise InvalidSignature: if you forgot any required arguments.
        
stackoverflow/venv/lib/python3.6/site-packages/twisted/protocols/amp.py