當前位置: 首頁>>代碼示例>>Python>>正文


Python readline.get_current_history_length方法代碼示例

本文整理匯總了Python中readline.get_current_history_length方法的典型用法代碼示例。如果您正苦於以下問題:Python readline.get_current_history_length方法的具體用法?Python readline.get_current_history_length怎麽用?Python readline.get_current_history_length使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在readline的用法示例。


在下文中一共展示了readline.get_current_history_length方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: _history_update

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def _history_update(self, array=None):
        if array is None:
            array = []
        try:
            import readline
            # add array elements to readline history
            for command in array:
                readline.add_history(command)
            # recreate Hist from readline history (UGLY)
            self.Hist.clear()
            history_len = readline.get_current_history_length()
            for i in range(1, history_len + 1):
                line = readline.get_history_item(i)
                self.Hist.append(line)
        except ImportError:
            pass
        # By default, hist max size is 20% of CACHE_SIZE
        max_size = int(self.Conf["CACHE_SIZE"]() * 0.2)
        # Settle Hist object to its max size
        while self.Hist.size > max_size:
            self.Hist.pop(0) 
開發者ID:nil0x42,項目名稱:phpsploit,代碼行數:23,代碼來源:__init__.py

示例2: refreshFromReadline

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def refreshFromReadline(self):
        """Consume as much content as possible from the line buffer.

        Returns self, so that we can chain calls to this function and 'getlines'.
        """
        newLines = []

        #for some reason, this import segfaults if we do it as part of our routine
        #setup in the test harness. Putting the import here ensures we only
        #import it when we are actively using it (e.g. there is a terminal connected
        #to stdin)
        import readline

        while len(self.lines) + len(newLines) < readline.get_current_history_length():
            newLines.append(readline.get_history_item(len(self.lines) + len(newLines) + 1) + "\n")

        self.lines += newLines
        for block in self.divideIntoBlocks(newLines):
            self.addBlock(block)

        return self 
開發者ID:ufora,項目名稱:ufora,代碼行數:23,代碼來源:StdinCache.py

示例3: testHistoryUpdates

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def testHistoryUpdates(self):
        readline.clear_history()

        readline.add_history("first line")
        readline.add_history("second line")

        self.assertEqual(readline.get_history_item(0), None)
        self.assertEqual(readline.get_history_item(1), "first line")
        self.assertEqual(readline.get_history_item(2), "second line")

        readline.replace_history_item(0, "replaced line")
        self.assertEqual(readline.get_history_item(0), None)
        self.assertEqual(readline.get_history_item(1), "replaced line")
        self.assertEqual(readline.get_history_item(2), "second line")

        self.assertEqual(readline.get_current_history_length(), 2)

        readline.remove_history_item(0)
        self.assertEqual(readline.get_history_item(0), None)
        self.assertEqual(readline.get_history_item(1), "second line")

        self.assertEqual(readline.get_current_history_length(), 1) 
開發者ID:ShikyoKira,項目名稱:Project-New-Reign---Nemesis-Main,代碼行數:24,代碼來源:test_readline.py

示例4: setupReadline

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def setupReadline(local):
    """Initialize the readline library and command history.

    @return: A C{bool} to indicate whether standard input is a terminal
        (and therefore interactive).
    """
    readline.parse_and_bind('tab: complete')
    readline.set_completer_delims(' \t\n')
    readline.set_completer(Completer(local).complete)

    # Readline code from https://docs.python.org/3.7/library/readline.html
    histfile = os.path.join(os.path.expanduser('~'), '.daudin_history')

    try:
        readline.read_history_file(histfile)
        historyLen = readline.get_current_history_length()
    except FileNotFoundError:
        open(histfile, 'wb').close()
        historyLen = 0

    try:
        readline.append_history_file
    except AttributeError:
        # We won't be able to save readline history. This can happen on
        # Python 3.5 at least - not sure why.
        pass
    else:
        import atexit

        def saveHistory(prevHistoryLen, histfile):
            newHistoryLen = readline.get_current_history_length()
            readline.set_history_length(1000)
            readline.append_history_file(newHistoryLen - prevHistoryLen,
                                         histfile)

        atexit.register(saveHistory, historyLen, histfile)

    return True 
開發者ID:terrycojones,項目名稱:daudin,代碼行數:40,代碼來源:readline.py

示例5: do_exit

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def do_exit(self, line):
        self.close()
        if not self.execute_only_mode and readline.get_current_history_length() > 0:
            readline.write_history_file(self.admin_history)

        return True 
開發者ID:aerospike,項目名稱:aerospike-admin,代碼行數:8,代碼來源:asadm.py

示例6: get_history

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def get_history(self):
        hist = []
        for i in range(readline.get_current_history_length()):
             hist.append(readline.get_history_item(i + 1))
        return hist 
開發者ID:plasma-disassembler,項目名稱:plasma,代碼行數:7,代碼來源:console.py

示例7: do_history

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def do_history(self, argv):
        """Command line history

        SYNOPSIS:
            history [<COUNT>]

        DESCRIPTION:
            Returns a formatted string giving the event number and
            contents for each of the events in the history list
            except for current event.

            If [COUNT] is specified, only the [COUNT] most recent
            events are displayed.

            > history
              - Display the full history of events.
            > history 10
              - Display last 10 commands of the history.
        """
        import readline

        argv.append('9999999999')

        try:
            count = int(argv[1])
        except ValueError:
            return self.interpret("help history")

        last = readline.get_current_history_length()
        while last > session.Hist.MAX_SIZE:
            readline.remove_history_item(0)
            last -= 1
        first = last - count
        if first < 1:
            first = 1
        for i in range(first, last):
            cmd = readline.get_history_item(i)
            print("{:4d}  {:s}".format(i, cmd))

    ####################
    # COMMAND: exploit # 
開發者ID:nil0x42,項目名稱:phpsploit,代碼行數:43,代碼來源:interface.py

示例8: _call

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def _call(self, objs: Iterable[drgn.Object]) -> None:
        stop = readline.get_current_history_length() + 1
        if self.args.count is not None:
            start = stop - self.args.count
        else:
            start = 1
        for i in range(start, stop):
            print(f"{i:5}  {readline.get_history_item(i)}") 
開發者ID:delphix,項目名稱:sdb,代碼行數:10,代碼來源:history.py

示例9: get_history_items

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def get_history_items() -> List[str]:
    return list(map(readline.get_history_item, range(1, readline.get_current_history_length() + 1))) 
開發者ID:kovidgoyal,項目名稱:kitty,代碼行數:4,代碼來源:main.py

示例10: do_history

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
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 
開發者ID:openthread,項目名稱:pyspinel,代碼行數:16,代碼來源:spinel-cli.py

示例11: process_history

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
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 
開發者ID:FallibleInc,項目名稱:pysession,代碼行數:30,代碼來源:pysession.py

示例12: test_write_read_append

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def test_write_read_append(self):
        hfile = tempfile.NamedTemporaryFile(delete=False)
        hfile.close()
        hfilename = hfile.name
        self.addCleanup(unlink, hfilename)

        # test write-clear-read == nop
        readline.clear_history()
        readline.add_history("first line")
        readline.add_history("second line")
        readline.write_history_file(hfilename)

        readline.clear_history()
        self.assertEqual(readline.get_current_history_length(), 0)

        readline.read_history_file(hfilename)
        self.assertEqual(readline.get_current_history_length(), 2)
        self.assertEqual(readline.get_history_item(1), "first line")
        self.assertEqual(readline.get_history_item(2), "second line")

        # test append
        readline.append_history_file(1, hfilename)
        readline.clear_history()
        readline.read_history_file(hfilename)
        self.assertEqual(readline.get_current_history_length(), 3)
        self.assertEqual(readline.get_history_item(1), "first line")
        self.assertEqual(readline.get_history_item(2), "second line")
        self.assertEqual(readline.get_history_item(3), "second line")

        # test 'no such file' behaviour
        os.unlink(hfilename)
        with self.assertRaises(FileNotFoundError):
            readline.append_history_file(1, hfilename)

        # write_history_file can create the target
        readline.write_history_file(hfilename) 
開發者ID:ShikyoKira,項目名稱:Project-New-Reign---Nemesis-Main,代碼行數:38,代碼來源:test_readline.py

示例13: get_history_items

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def get_history_items():
    """
    Get all history item
    """
    return [
        readline.get_history_item(i)
        for i in xrange(1, readline.get_current_history_length() + 1)
    ] 
開發者ID:orakaro,項目名稱:rainbowstream,代碼行數:10,代碼來源:interactive.py

示例14: remove_last_history_item

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def remove_last_history_item() -> None:
    """The user just typed a password..."""
    last = readline.get_current_history_length() - 1
    readline.remove_history_item(last) 
開發者ID:innogames,項目名稱:polysh,代碼行數:6,代碼來源:completion.py

示例15: isolate_io_context

# 需要導入模塊: import readline [as 別名]
# 或者: from readline import get_current_history_length [as 別名]
def isolate_io_context(function):
    """A decorator for separating I/O context.

    This decorator isolates I/O context of target
    function or method.

    I/O Context is a mix of terminal related elements,
    such as current stdout and readline completer
    attributes.

    This decorator is useful if you run something
    that reconfigures the readline completer, or
    needs to use the default stdout file descriptor
    instead of the phpsploit's stdout wrapper.
    """
    def wrapper(*args, **kwargs):
        try:
            import readline
            handle_readline = True
        except ImportError:
            handle_readline = False

        if handle_readline:
            # backup & reset readline completer
            old_readline_completer = readline.get_completer()
            readline.set_completer((lambda x: x))
            # backup & reset readline history
            old_readline_history = []
            hist_sz = readline.get_current_history_length()
            for i in range(1, hist_sz + 1):
                line = readline.get_history_item(i)
                old_readline_history.append(line)
            readline.clear_history()
        # backup & reset stdout
        old_stdout = sys.stdout
        sys.stdout = sys.__stdout__

        try:
            retval = function(*args, **kwargs)
        finally:

            if handle_readline:
                # restore old readline completer
                readline.set_completer(old_readline_completer)
                # restore old readline history
                readline.clear_history()
                for line in old_readline_history:
                    readline.add_history(line)
            # restore old stdout
            sys.stdout = old_stdout

        return retval
    return wrapper 
開發者ID:nil0x42,項目名稱:phpsploit,代碼行數:55,代碼來源:isolate_io_context.py


注:本文中的readline.get_current_history_length方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。