Python readline 模块,get_history_item() 实例源码

我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用readline.get_history_item()

项目:pymotw3    作者:reingart    | 项目源码 | 文件源码
def get_history_items():
    num_items = readline.get_current_history_length() + 1
    return [
        readline.get_history_item(i)
        for i in range(1, num_items)
    ]
项目:AlphaHooks    作者:AlphaHooks    | 项目源码 | 文件源码
def eventFilter(self, source, event):

        # Console Input
        if source is self.ui.console_input:
            if event.type() == QEvent.KeyPress:
                if event.key() in (Qt.Key_Enter, Qt.Key_Return):
                    command = self.ui.console_input.text()
                    if command != "":
                        readline.add_history(
                            command
                        )
                    self.length = readline.get_current_history_length()
                    self.index = -1

                if event.key() == Qt.Key_Up:
                    if self.index < self.length:
                        self.index += 1
                        command = readline.get_history_item(
                            self.length - self.index
                        )
                        self.ui.console_input.setText(
                            command
                        )

                if event.key() == Qt.Key_Down:
                    if self.index > 0:
                        self.index -= 1
                        command = readline.get_history_item(
                            self.length - self.index
                        )

                        self.ui.console_input.setText(
                            command
                        )

            return False
        return False
项目:pysession    作者:FallibleInc    | 项目源码 | 文件源码
def process_history():
    """Processes python shell history to an array of code lines"""
    end_index = len(PySession.ipython_history) - 1 if PySession.is_ipython \
        else readline.get_current_history_length()

    lines_of_code = []
    for i in range(PySession.start_index, end_index):
        if i in PySession.wrong_code_lines:
            continue
        if PySession.is_ipython:
            line = PySession.ipython_history[i]
        else:
            line = readline.get_history_item(i)

        # remove 'exit' and PySession keywords from code
        if line.strip() in ['PySession.local()',
                            'PySession.gist()',
                            'PySession.off()',
                            'exit',
                            'exit()']:
            continue
        lines_of_code.append(line)

    if len(
            lines_of_code) > 0 and lines_of_code[-1] != '\n':  # adding extra last newline
        lines_of_code.append('\n')

    return lines_of_code
项目:trex-http-proxy    作者:alwye    | 项目源码 | 文件源码
def print_history (self):

        length = readline.get_current_history_length()

        for i in range(1, length + 1):
            cmd = readline.get_history_item(i)
            print("{:<5}   {:}".format(i, cmd))
项目:trex-http-proxy    作者:alwye    | 项目源码 | 文件源码
def get_history_item (self, index):
        length = readline.get_current_history_length()
        if index > length:
            print(format_text("please select an index between {0} and {1}".format(0, length)))
            return None

        return readline.get_history_item(index)
项目:trex-http-proxy    作者:alwye    | 项目源码 | 文件源码
def do_history (self, line):
        '''Manage the command history\n'''

        item = parsing_opts.ArgumentPack(['item'],
                                         {"nargs": '?',
                                          'metavar': 'item',
                                          'type': parsing_opts.check_negative,
                                          'help': "an history item index",
                                          'default': 0})

        parser = parsing_opts.gen_parser(self,
                                         "history",
                                         self.do_history.__doc__,
                                         item)

        opts = parser.parse_args(line.split())
        if opts is None:
            return

        if opts.item == 0:
            self.print_history()
        else:
            cmd = self.get_history_item(opts.item)
            if cmd == None:
                return

            print("Executing '{0}'".format(cmd))

            return self.onecmd(cmd)



    ############### connect
项目:My-Web-Server-Framework-With-Python2.7    作者:syjsu    | 项目源码 | 文件源码
def get_item(self, index):
        return readline.get_history_item(index)
项目:EvilTwinFramework    作者:Esser420    | 项目源码 | 文件源码
def postcmd(self, stop, line):
        complete_line = readline.get_history_item(readline.get_current_history_length())
        if complete_line.strip() != "":
            SessionManager().log_command(complete_line)
项目:Atrophy    作者:Thiefyface    | 项目源码 | 文件源码
def print_history(self,count=0):
        buf = ""
        length = readline.get_current_history_length()
        if count == 0:
            count = self.DEFAULT_HIST_DISPLAY_LEN

        for i in range(length-count,length):
            tmp = readline.get_history_item(i)
            if tmp:
                buf += tmp
                buf += "\n"
        return buf
项目:Atrophy    作者:Thiefyface    | 项目源码 | 文件源码
def save_project(self,proj_name):
        session_length = readline.get_current_history_length()

        project_file = ".atrophy-project-%s" % proj_name
        project_buff = ""

        try:
            # same directory
            with open(project_file,"r") as f:
                project_buff = f.read()
        except:
            # project == full path???
            try:   
                with open(proj_name,"r") as f:
                    project_buff = f.read()
                project_file = proj_name
            except: ## no file found
                pass  

        for i in range(self.session_start_index,session_length,-1):
            buf = readline.get_history_item(i)

            if buf:
                cmd = buf.split(" ")[0]
            if cmd in self.project_cmds:
                project_buff += buf
                project_buff += "\n" 

        with open(project_file,"w") as f:
            f.write(project_buff)
项目:pyspinel    作者:openthread    | 项目源码 | 文件源码
def do_history(self, _line):
        """
        history

          Show previously executed commands.
        """

        try:
            import readline
            hist = readline.get_current_history_length()
            for idx in range(1, hist + 1):
                self.log(readline.get_history_item(idx))
        except ImportError:
            pass