SILENT KILLERPanel

Current Path: > > opt > alt > > python35 > lib64 > python3.5 > idlelib


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt//python35/lib64/python3.5/idlelib

NameTypeSizeLast ModifiedActions
Icons Directory - -
__pycache__ Directory - -
idle_test Directory - -
AutoComplete.py File 9201 bytes May 31 2024 13:51:41.
AutoCompleteWindow.py File 17739 bytes May 31 2024 13:51:41.
AutoExpand.py File 3395 bytes May 31 2024 13:51:41.
Bindings.py File 3111 bytes May 31 2024 13:51:41.
CREDITS.txt File 1866 bytes November 01 2019 23:02:34.
CallTipWindow.py File 6035 bytes May 31 2024 13:51:41.
CallTips.py File 5932 bytes May 31 2024 13:51:41.
ChangeLog File 56388 bytes November 01 2019 23:02:34.
ClassBrowser.py File 6999 bytes May 31 2024 13:51:41.
CodeContext.py File 8357 bytes May 31 2024 13:51:41.
ColorDelegator.py File 10598 bytes May 31 2024 13:51:41.
Debugger.py File 18758 bytes May 31 2024 13:51:41.
Delegator.py File 1043 bytes May 31 2024 13:51:41.
EditorWindow.py File 65595 bytes May 31 2024 13:51:41.
FileList.py File 3813 bytes May 31 2024 13:51:41.
FormatParagraph.py File 7287 bytes May 31 2024 13:51:41.
GrepDialog.py File 5124 bytes May 31 2024 13:51:41.
HISTORY.txt File 10312 bytes November 01 2019 23:02:34.
HyperParser.py File 12877 bytes May 31 2024 13:51:41.
IOBinding.py File 20599 bytes May 31 2024 13:51:41.
IdleHistory.py File 4052 bytes May 31 2024 13:51:41.
MultiCall.py File 18571 bytes May 31 2024 13:51:41.
MultiStatusBar.py File 1348 bytes May 31 2024 13:51:41.
NEWS.txt File 15536 bytes November 01 2019 23:02:34.
NEWS2x.txt File 27172 bytes November 01 2019 23:02:34.
ObjectBrowser.py File 3975 bytes May 31 2024 13:51:41.
OutputWindow.py File 4394 bytes May 31 2024 13:51:41.
ParenMatch.py File 6714 bytes May 31 2024 13:51:41.
PathBrowser.py File 3207 bytes May 31 2024 13:51:41.
Percolator.py File 3179 bytes May 31 2024 13:51:41.
PyParse.py File 20461 bytes May 31 2024 13:51:41.
PyShell.py File 58846 bytes May 31 2024 13:51:41.
README.txt File 7891 bytes November 01 2019 23:02:34.
RemoteDebugger.py File 12007 bytes May 31 2024 13:51:41.
RemoteObjectBrowser.py File 964 bytes May 31 2024 13:51:41.
ReplaceDialog.py File 7481 bytes May 31 2024 13:51:41.
RstripExtension.py File 1050 bytes May 31 2024 13:51:41.
ScriptBinding.py File 8061 bytes May 31 2024 13:51:41.
ScrolledList.py File 4375 bytes May 31 2024 13:51:41.
SearchDialog.py File 3127 bytes May 31 2024 13:51:41.
SearchDialogBase.py File 7009 bytes May 31 2024 13:51:41.
SearchEngine.py File 7485 bytes May 31 2024 13:51:41.
StackViewer.py File 4426 bytes May 31 2024 13:51:41.
TODO.txt File 8478 bytes November 01 2019 23:02:34.
ToolTip.py File 3173 bytes May 31 2024 13:51:41.
TreeWidget.py File 15024 bytes May 31 2024 13:51:41.
UndoDelegator.py File 10980 bytes May 31 2024 13:51:41.
WidgetRedirector.py File 6939 bytes May 31 2024 13:51:41.
WindowList.py File 2472 bytes May 31 2024 13:51:41.
ZoomHeight.py File 1300 bytes May 31 2024 13:51:41.
__init__.py File 335 bytes May 31 2024 13:51:41.
__main__.py File 159 bytes May 31 2024 13:51:41.
aboutDialog.py File 6987 bytes May 31 2024 13:51:41.
config-extensions.def File 2965 bytes November 01 2019 23:02:34.
config-highlight.def File 2515 bytes November 01 2019 23:02:34.
config-keys.def File 7777 bytes November 01 2019 23:02:34.
config-main.def File 2563 bytes November 01 2019 23:02:34.
configDialog.py File 65061 bytes May 31 2024 13:51:41.
configHandler.py File 32451 bytes May 31 2024 13:51:41.
configHelpSourceEdit.py File 6817 bytes May 31 2024 13:51:41.
configSectionNameDialog.py File 4007 bytes May 31 2024 13:51:41.
dynOptionMenuWidget.py File 1990 bytes May 31 2024 13:51:41.
extend.txt File 3642 bytes November 01 2019 23:02:34.
help.html File 43411 bytes November 01 2019 23:02:34.
help.py File 10952 bytes May 31 2024 13:51:41.
help.txt File 17900 bytes November 01 2019 23:02:34.
idle.py File 453 bytes May 31 2024 13:51:41.
idle.pyw File 570 bytes November 01 2019 23:02:34.
idlever.py File 415 bytes May 31 2024 13:51:41.
keybindingDialog.py File 12416 bytes May 31 2024 13:51:41.
macosxSupport.py File 8684 bytes May 31 2024 13:51:41.
rpc.py File 20784 bytes May 31 2024 13:51:41.
run.py File 13869 bytes May 31 2024 13:51:41.
tabbedpages.py File 18418 bytes May 31 2024 13:51:41.
textView.py File 3419 bytes May 31 2024 13:51:41.

Reading File: //opt/alt//python35/lib64/python3.5/idlelib/IdleHistory.py

"Implement Idle Shell history mechanism with History class"

from idlelib.configHandler import idleConf

class History:
    ''' Implement Idle Shell history mechanism.

    store - Store source statement (called from PyShell.resetoutput).
    fetch - Fetch stored statement matching prefix already entered.
    history_next - Bound to <<history-next>> event (default Alt-N).
    history_prev - Bound to <<history-prev>> event (default Alt-P).
    '''
    def __init__(self, text):
        '''Initialize data attributes and bind event methods.

        .text - Idle wrapper of tk Text widget, with .bell().
        .history - source statements, possibly with multiple lines.
        .prefix - source already entered at prompt; filters history list.
        .pointer - index into history.
        .cyclic - wrap around history list (or not).
        '''
        self.text = text
        self.history = []
        self.prefix = None
        self.pointer = None
        self.cyclic = idleConf.GetOption("main", "History", "cyclic", 1, "bool")
        text.bind("<<history-previous>>", self.history_prev)
        text.bind("<<history-next>>", self.history_next)

    def history_next(self, event):
        "Fetch later statement; start with ealiest if cyclic."
        self.fetch(reverse=False)
        return "break"

    def history_prev(self, event):
        "Fetch earlier statement; start with most recent."
        self.fetch(reverse=True)
        return "break"

    def fetch(self, reverse):
        '''Fetch statememt and replace current line in text widget.

        Set prefix and pointer as needed for successive fetches.
        Reset them to None, None when returning to the start line.
        Sound bell when return to start line or cannot leave a line
        because cyclic is False.
        '''
        nhist = len(self.history)
        pointer = self.pointer
        prefix = self.prefix
        if pointer is not None and prefix is not None:
            if self.text.compare("insert", "!=", "end-1c") or \
                    self.text.get("iomark", "end-1c") != self.history[pointer]:
                pointer = prefix = None
                self.text.mark_set("insert", "end-1c")  # != after cursor move
        if pointer is None or prefix is None:
            prefix = self.text.get("iomark", "end-1c")
            if reverse:
                pointer = nhist  # will be decremented
            else:
                if self.cyclic:
                    pointer = -1  # will be incremented
                else:  # abort history_next
                    self.text.bell()
                    return
        nprefix = len(prefix)
        while 1:
            pointer += -1 if reverse else 1
            if pointer < 0 or pointer >= nhist:
                self.text.bell()
                if not self.cyclic and pointer < 0:  # abort history_prev
                    return
                else:
                    if self.text.get("iomark", "end-1c") != prefix:
                        self.text.delete("iomark", "end-1c")
                        self.text.insert("iomark", prefix)
                    pointer = prefix = None
                break
            item = self.history[pointer]
            if item[:nprefix] == prefix and len(item) > nprefix:
                self.text.delete("iomark", "end-1c")
                self.text.insert("iomark", item)
                break
        self.text.see("insert")
        self.text.tag_remove("sel", "1.0", "end")
        self.pointer = pointer
        self.prefix = prefix

    def store(self, source):
        "Store Shell input statement into history list."
        source = source.strip()
        if len(source) > 2:
            # avoid duplicates
            try:
                self.history.remove(source)
            except ValueError:
                pass
            self.history.append(source)
        self.pointer = None
        self.prefix = None

if __name__ == "__main__":
    from unittest import main
    main('idlelib.idle_test.test_idlehistory', verbosity=2, exit=False)

SILENT KILLER Tool