def run(self):
        """Loops and executes commands in interactive mode."""
        if self._skip_delims:
            delims = readline.get_completer_delims()
            for delim in self._skip_delims:
                delims = delims.replace(delim, '')
            readline.set_completer_delims(delims)

        readline.parse_and_bind("tab: complete")
        readline.set_completer(self._completer.complete)

        if self._history_file:
            # Ensure history file exists
            if not os.path.isfile(self._history_file):
                open(self._history_file, 'w').close()

            readline.read_history_file(self._history_file)

        self._running = True
        try:
            while self._running:
                try:
                    command = input(self._format_prompt())
                    if command:
                        result = self.execute(*shlex.split(command))
                        if result:
                            print(result)
                except CLIException as exc:
                    print(exc)
                except (KeyboardInterrupt, EOFError):
                    self._running = False
                    print()
                except Exception as exc:
                    if self._verbose:
                        traceback.print_exc()
                    else:
                        print(exc)
        finally:
            if self._history_file:
                readline.write_history_file(self._history_file)
def run ( self ) : if self . _skip_delims : delims = readline . get_completer_delims ( ) for delim in self . _skip_delims : delims = delims . replace ( delim , '' ) readline . set_completer_delims ( delims ) readline . parse_and_bind ( "tab: complete" ) readline . set_completer ( self . _completer . complete ) if self . _history_file : if not os . path . isfile ( self . _history_file ) : open ( self . _history_file , 'w' ) . close ( ) readline . read_history_file ( self . _history_file ) self . _running = True try : while self . _running : try : command = input ( self . _format_prompt ( ) ) if command : result = self . execute ( * shlex . split ( command ) ) if result : print ( result ) except CLIException as exc : print ( exc ) except ( KeyboardInterrupt , EOFError ) : self . _running = False print ( ) except Exception as exc : if self . _verbose : traceback . print_exc ( ) else : print ( exc ) finally : if self . _history_file : readline . write_history_file ( self . _history_file )
Loops and executes commands in interactive mode.