(self, argsDocs: ArgsDocs, required: Sequence[str] = ())
Specify the message data for topic messages.
        :param argsDocs: a dictionary of keyword names (message data name) and data 'docstring'; cannot be None
        :param required: a list of those keyword names, appearing in argsDocs,
        which are required (all others are assumed optional)

        Can only be called if this info has not been already set at construction
        or in a previous call.
        :raise RuntimeError: if MDS already set at construction or previous call.
Specify the message data for topic messages.
        :param argsDocs: a dictionary of keyword names (message data name) and data 'docstring'; cannot be None
        :param required: a list of those keyword names, appearing in argsDocs,
        which are required (all others are assumed optional)
Specify the message data for topic messages . : param argsDocs : a dictionary of keyword names ( message data name ) and data docstring ; cannot be None : param required : a list of those keyword names appearing in argsDocs which are required ( all others are assumed optional )
def setMsgArgSpec(self, argsDocs: ArgsDocs, required: Sequence[str] = ()):
        """
        Specify the message data for topic messages.
        :param argsDocs: a dictionary of keyword names (message data name) and data 'docstring'; cannot be None
        :param required: a list of those keyword names, appearing in argsDocs,
        which are required (all others are assumed optional)

        Can only be called if this info has not been already set at construction
        or in a previous call.
        :raise RuntimeError: if MDS already set at construction or previous call.
        """
        assert self.__parentTopic is not None  # for root of tree, this method never called!
        if argsDocs is None:
            raise ValueError('Cannot set listener spec to None')

        if self.__msgArgs is None or not self.__msgArgs.isComplete():
            try:
                specGiven = ArgSpecGiven(argsDocs, required)
                self.__msgArgs = ArgsInfo(self.__tupleName, specGiven,
                                          self.__parentTopic().__msgArgs)
            except MessageDataSpecError:
                # discard the lower part of the stack trace
                exc = sys.exc_info()[1]
                raise exc
            self.__finalize()

        else:
            raise RuntimeError('Not allowed to call this: msg spec already set!')
def setMsgArgSpec ( self , argsDocs : ArgsDocs , required : Sequence [ str ] = ( ) ) : assert self . __parentTopic is not None # for root of tree, this method never called! if argsDocs is None : raise ValueError ( 'Cannot set listener spec to None' ) if self . __msgArgs is None or not self . __msgArgs . isComplete ( ) : try : specGiven = ArgSpecGiven ( argsDocs , required ) self . __msgArgs = ArgsInfo ( self . __tupleName , specGiven , self . __parentTopic ( ) . __msgArgs ) except MessageDataSpecError : # discard the lower part of the stack trace exc = sys . exc_info ( ) [ 1 ] raise exc self . __finalize ( ) else : raise RuntimeError ( 'Not allowed to call this: msg spec already set!' )