gamelib.py
def say(self, message: str, msg_type: str='info') -> Optional[bool]:
        """
        Present the user with the given `message` in a dialog box, depending on the type.
        Available types are `info`, `warning`, `error`, `question`, `okcancel`, `yesno`,
        `yesnocancel` or `retry`.
        The default is `info`.
        """

        done = Queue()
        self.send_command_to_tk('say', message, msg_type, done, notify=True)
        return done.get()

        Present the user with the given `message` in a dialog box, depending on the type.
        Available types are `info`, `warning`, `error`, `question`, `okcancel`, `yesno`,
        `yesnocancel` or `retry`.
        The default is `info`.
        
Present the user with the given `message` in a dialog box, depending on the type.
Present the user with the given ` message ` in a dialog box depending on the type .
def say(self, message: str, msg_type: str='info') -> Optional[bool]:
        done = Queue()
        self.send_command_to_tk('say', message, msg_type, done, notify=True)
        return done.get()
def say ( self , message : str , msg_type : str = 'info' ) -> Optional [ bool ] : done = Queue ( ) self . send_command_to_tk ( 'say' , message , msg_type , done , notify = True ) return done . get ( )
Present the user with the given `message` in a dialog box, depending on the type.
Present the user with the given ` message ` in a dialog box depending on the type .
"""
        Present the user with the given `message` in a dialog box, depending on the type.
        Available types are `info`, `warning`, `error`, `question`, `okcancel`, `yesno`,
        `yesnocancel` or `retry`.
        The default is `info`.
        """
self
message
str
msg_type
str