def run(self, command, arguments=(), console_mode_stdin=True, skip_cmd_shell=False):
logging.info('<STR_LIT>' + command)<EOL>resource = ResourceLocator(CommandShell.ShellResource)<EOL>resource.add_selector('<STR_LIT>', self.__shell_id)<EOL>resource.add_option('<STR_LIT>', ['<STR_LIT>', '<STR_LIT>'][bool(skip_cmd_shell)], True)<EOL>resource.add_option('<STR_LIT>', ['<STR_LIT>', '<STR_LIT>'][bool(console_mode_stdin)], True)<EOL>command = OrderedDict([('<STR_LIT>', command)])<EOL>command['<STR_LIT>'] = list(arguments)<EOL>response = self.session.command(resource, {'<STR_LIT>': command})<EOL>command_id = response['<STR_LIT>']['<STR_LIT>']<EOL>logging.info('<STR_LIT>' + command_id)<EOL>return command_id<EOL>
This function does something.
        :param command: The command to be executed
        :type name: str.
        :param arguments: A list of arguments to be passed to the command
        :type state: str.
        :returns:  int -- the return code.
        :raises: AttributeError, KeyError

        iclegg: blocking i/o operations are slow, doesnt Python have a moden 'async' mechanism
        rather than replying on 80's style callbacks?