p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.216.202
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib64/python2.7/idlelib/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /lib64/python2.7/idlelib//SearchEngine.py
import re
from Tkinter import *
import tkMessageBox

def get(root):
    if not hasattr(root, "_searchengine"):
        root._searchengine = SearchEngine(root)
        # XXX This will never garbage-collect -- who cares
    return root._searchengine

class SearchEngine:

    def __init__(self, root):
        self.root = root
        # State shared by search, replace, and grep;
        # the search dialogs bind these to UI elements.
        self.patvar = StringVar(root)           # search pattern
        self.revar = BooleanVar(root)           # regular expression?
        self.casevar = BooleanVar(root)         # match case?
        self.wordvar = BooleanVar(root)         # match whole word?
        self.wrapvar = BooleanVar(root)         # wrap around buffer?
        self.wrapvar.set(1)                     # (on by default)
        self.backvar = BooleanVar(root)         # search backwards?

    # Access methods

    def getpat(self):
        return self.patvar.get()

    def setpat(self, pat):
        self.patvar.set(pat)

    def isre(self):
        return self.revar.get()

    def iscase(self):
        return self.casevar.get()

    def isword(self):
        return self.wordvar.get()

    def iswrap(self):
        return self.wrapvar.get()

    def isback(self):
        return self.backvar.get()

    # Higher level access methods

    def getcookedpat(self):
        pat = self.getpat()
        if not self.isre():
            pat = re.escape(pat)
        if self.isword():
            pat = r"\b%s\b" % pat
        return pat

    def getprog(self):
        pat = self.getpat()
        if not pat:
            self.report_error(pat, "Empty regular expression")
            return None
        pat = self.getcookedpat()
        flags = 0
        if not self.iscase():
            flags = flags | re.IGNORECASE
        try:
            prog = re.compile(pat, flags)
        except re.error, what:
            try:
                msg, col = what
            except:
                msg = str(what)
                col = -1
            self.report_error(pat, msg, col)
            return None
        return prog

    def report_error(self, pat, msg, col=-1):
        # Derived class could overrid this with something fancier
        msg = "Error: " + str(msg)
        if pat:
            msg = msg + "\np\Pattern: " + str(pat)
        if col >= 0:
            msg = msg + "\nOffset: " + str(col)
        tkMessageBox.showerror("Regular expression error",
                               msg, master=self.root)

    def setcookedpat(self, pat):
        if self.isre():
            pat = re.escape(pat)
        self.setpat(pat)

    def search_text(self, text, prog=None, ok=0):
        """Search a text widget for the pattern.

        If prog is given, it should be the precompiled pattern.
        Return a tuple (lineno, matchobj); None if not found.

        This obeys the wrap and direction (back) settings.

        The search starts at the selection (if there is one) or
        at the insert mark (otherwise).  If the search is forward,
        it starts at the right of the selection; for a backward
        search, it starts at the left end.  An empty match exactly
        at either end of the selection (or at the insert mark if
        there is no selection) is ignored  unless the ok flag is true
        -- this is done to guarantee progress.

        If the search is allowed to wrap around, it will return the
        original selection if (and only if) it is the only match.

        """
        if not prog:
            prog = self.getprog()
            if not prog:
                return None # Compilation failed -- stop
        wrap = self.wrapvar.get()
        first, last = get_selection(text)
        if self.isback():
            if ok:
                start = last
            else:
                start = first
            line, col = get_line_col(start)
            res = self.search_backward(text, prog, line, col, wrap, ok)
        else:
            if ok:
                start = first
            else:
                start = last
            line, col = get_line_col(start)
            res = self.search_forward(text, prog, line, col, wrap, ok)
        return res

    def search_forward(self, text, prog, line, col, wrap, ok=0):
        wrapped = 0
        startline = line
        chars = text.get("%d.0" % line, "%d.0" % (line+1))
        while chars:
            m = prog.search(chars[:-1], col)
            if m:
                if ok or m.end() > col:
                    return line, m
            line = line + 1
            if wrapped and line > startline:
                break
            col = 0
            ok = 1
            chars = text.get("%d.0" % line, "%d.0" % (line+1))
            if not chars and wrap:
                wrapped = 1
                wrap = 0
                line = 1
                chars = text.get("1.0", "2.0")
        return None

    def search_backward(self, text, prog, line, col, wrap, ok=0):
        wrapped = 0
        startline = line
        chars = text.get("%d.0" % line, "%d.0" % (line+1))
        while 1:
            m = search_reverse(prog, chars[:-1], col)
            if m:
                if ok or m.start() < col:
                    return line, m
            line = line - 1
            if wrapped and line < startline:
                break
            ok = 1
            if line <= 0:
                if not wrap:
                    break
                wrapped = 1
                wrap = 0
                pos = text.index("end-1c")
                line, col = map(int, pos.split("."))
            chars = text.get("%d.0" % line, "%d.0" % (line+1))
            col = len(chars) - 1
        return None

# Helper to search backwards in a string.
# (Optimized for the case where the pattern isn't found.)

def search_reverse(prog, chars, col):
    m = prog.search(chars)
    if not m:
        return None
    found = None
    i, j = m.span()
    while i < col and j <= col:
        found = m
        if i == j:
            j = j+1
        m = prog.search(chars, j)
        if not m:
            break
        i, j = m.span()
    return found

# Helper to get selection end points, defaulting to insert mark.
# Return a tuple of indices ("line.col" strings).

def get_selection(text):
    try:
        first = text.index("sel.first")
        last = text.index("sel.last")
    except TclError:
        first = last = None
    if not first:
        first = text.index("insert")
    if not last:
        last = first
    return first, last

# Helper to parse a text index into a (line, col) tuple.

def get_line_col(index):
    line, col = map(int, index.split(".")) # Fails on invalid index
    return line, col
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
December 20 2023 04:52:59
0 / 0
0755
Icons
--
December 20 2023 04:52:58
0 / 0
0755
AutoComplete.py
8.786 KB
November 14 2023 16:14:19
0 / 0
0644
AutoComplete.pyc
7.693 KB
November 14 2023 16:14:41
0 / 0
0644
AutoComplete.pyo
7.693 KB
November 14 2023 16:14:41
0 / 0
0644
AutoCompleteWindow.py
16.798 KB
November 14 2023 16:14:19
0 / 0
0644
AutoCompleteWindow.pyc
12.15 KB
November 14 2023 16:14:41
0 / 0
0644
AutoCompleteWindow.pyo
12.093 KB
November 14 2023 16:14:43
0 / 0
0644
AutoExpand.py
2.425 KB
November 14 2023 16:14:19
0 / 0
0644
AutoExpand.pyc
2.5 KB
November 14 2023 16:14:41
0 / 0
0644
AutoExpand.pyo
2.5 KB
November 14 2023 16:14:41
0 / 0
0644
Bindings.py
3.218 KB
November 14 2023 16:14:19
0 / 0
0644
Bindings.pyc
4.763 KB
November 14 2023 16:14:41
0 / 0
0644
Bindings.pyo
4.763 KB
November 14 2023 16:14:41
0 / 0
0644
CREDITS.txt
1.821 KB
November 14 2023 16:14:19
0 / 0
0644
CallTipWindow.py
5.981 KB
November 14 2023 16:14:19
0 / 0
0644
CallTipWindow.pyc
6.139 KB
November 14 2023 16:14:41
0 / 0
0644
CallTipWindow.pyo
6.139 KB
November 14 2023 16:14:41
0 / 0
0644
CallTips.py
7.755 KB
November 14 2023 16:14:19
0 / 0
0644
CallTips.pyc
10.141 KB
November 14 2023 16:14:41
0 / 0
0644
CallTips.pyo
10.141 KB
November 14 2023 16:14:41
0 / 0
0644
ChangeLog
55.071 KB
November 14 2023 16:14:19
0 / 0
0644
ClassBrowser.py
6.22 KB
November 14 2023 16:14:19
0 / 0
0644
ClassBrowser.pyc
8.946 KB
November 14 2023 16:14:41
0 / 0
0644
ClassBrowser.pyo
8.946 KB
November 14 2023 16:14:41
0 / 0
0644
CodeContext.py
8.151 KB
November 14 2023 16:14:19
0 / 0
0644
CodeContext.pyc
6.516 KB
November 14 2023 16:14:41
0 / 0
0644
CodeContext.pyo
6.473 KB
November 14 2023 16:14:44
0 / 0
0644
ColorDelegator.py
10.13 KB
November 14 2023 16:14:19
0 / 0
0644
ColorDelegator.pyc
8.71 KB
November 14 2023 16:14:41
0 / 0
0644
ColorDelegator.pyo
8.71 KB
November 14 2023 16:14:41
0 / 0
0644
Debugger.py
15.447 KB
November 14 2023 16:14:19
0 / 0
0644
Debugger.pyc
16.548 KB
November 14 2023 16:14:41
0 / 0
0644
Debugger.pyo
16.548 KB
November 14 2023 16:14:41
0 / 0
0644
Delegator.py
0.812 KB
November 14 2023 16:14:19
0 / 0
0644
Delegator.pyc
1.581 KB
November 14 2023 16:14:41
0 / 0
0644
Delegator.pyo
1.581 KB
November 14 2023 16:14:41
0 / 0
0644
EditorWindow.py
63.29 KB
November 14 2023 16:14:19
0 / 0
0644
EditorWindow.pyc
55.128 KB
November 14 2023 16:14:41
0 / 0
0644
EditorWindow.pyo
55.028 KB
November 14 2023 16:14:44
0 / 0
0644
FileList.py
3.57 KB
November 14 2023 16:14:19
0 / 0
0644
FileList.pyc
3.855 KB
November 14 2023 16:14:41
0 / 0
0644
FileList.pyo
3.823 KB
November 14 2023 16:14:44
0 / 0
0644
FormatParagraph.py
5.658 KB
November 14 2023 16:14:19
0 / 0
0644
FormatParagraph.pyc
4.687 KB
November 14 2023 16:14:41
0 / 0
0644
FormatParagraph.pyo
4.687 KB
November 14 2023 16:14:41
0 / 0
0644
GrepDialog.py
3.957 KB
November 14 2023 16:14:19
0 / 0
0644
GrepDialog.pyc
4.901 KB
November 14 2023 16:14:41
0 / 0
0644
GrepDialog.pyo
4.901 KB
November 14 2023 16:14:41
0 / 0
0644
HISTORY.txt
10.075 KB
November 14 2023 16:14:19
0 / 0
0644
HyperParser.py
10.314 KB
November 14 2023 16:14:19
0 / 0
0644
HyperParser.pyc
6.488 KB
November 14 2023 16:14:41
0 / 0
0644
HyperParser.pyo
6.488 KB
November 14 2023 16:14:41
0 / 0
0644
IOBinding.py
20.688 KB
November 14 2023 16:14:19
0 / 0
0644
IOBinding.pyc
17.16 KB
November 14 2023 16:14:41
0 / 0
0644
IOBinding.pyo
17.16 KB
November 14 2023 16:14:41
0 / 0
0644
IdleHistory.py
3.071 KB
November 14 2023 16:14:19
0 / 0
0644
IdleHistory.pyc
3.126 KB
November 14 2023 16:14:41
0 / 0
0644
IdleHistory.pyo
3.126 KB
November 14 2023 16:14:41
0 / 0
0644
MultiCall.py
17.073 KB
November 14 2023 16:14:19
0 / 0
0644
MultiCall.pyc
15.549 KB
November 14 2023 16:14:41
0 / 0
0644
MultiCall.pyo
15.477 KB
November 14 2023 16:14:44
0 / 0
0644
MultiStatusBar.py
0.765 KB
November 14 2023 16:14:19
0 / 0
0644
MultiStatusBar.pyc
1.491 KB
November 14 2023 16:14:41
0 / 0
0644
MultiStatusBar.pyo
1.491 KB
November 14 2023 16:14:41
0 / 0
0644
NEWS.txt
28.315 KB
November 14 2023 16:14:19
0 / 0
0644
ObjectBrowser.py
4.053 KB
November 14 2023 16:14:19
0 / 0
0644
ObjectBrowser.pyc
6.56 KB
November 14 2023 16:14:41
0 / 0
0644
ObjectBrowser.pyo
6.56 KB
November 14 2023 16:14:41
0 / 0
0644
OutputWindow.py
4.469 KB
November 14 2023 16:14:19
0 / 0
0644
OutputWindow.pyc
5.109 KB
November 14 2023 16:14:41
0 / 0
0644
OutputWindow.pyo
5.109 KB
November 14 2023 16:14:41
0 / 0
0644
ParenMatch.py
6.472 KB
November 14 2023 16:14:19
0 / 0
0644
ParenMatch.pyc
6.816 KB
November 14 2023 16:14:41
0 / 0
0644
ParenMatch.pyo
6.816 KB
November 14 2023 16:14:41
0 / 0
0644
PathBrowser.py
2.578 KB
November 14 2023 16:14:19
0 / 0
0644
PathBrowser.pyc
4.024 KB
November 14 2023 16:14:41
0 / 0
0644
PathBrowser.pyo
4.024 KB
November 14 2023 16:14:41
0 / 0
0644
Percolator.py
2.555 KB
November 14 2023 16:14:19
0 / 0
0644
Percolator.pyc
3.553 KB
November 14 2023 16:14:41
0 / 0
0644
Percolator.pyo
3.373 KB
November 14 2023 16:14:44
0 / 0
0644
PyParse.py
19.053 KB
November 14 2023 16:14:19
0 / 0
0644
PyParse.pyc
9.77 KB
November 14 2023 16:14:41
0 / 0
0644
PyParse.pyo
9.342 KB
November 14 2023 16:14:44
0 / 0
0644
PyShell.py
54.809 KB
November 14 2023 16:14:19
0 / 0
0644
PyShell.pyc
49.144 KB
November 14 2023 16:14:41
0 / 0
0644
PyShell.pyo
49.044 KB
November 14 2023 16:14:44
0 / 0
0644
README.txt
2.562 KB
November 14 2023 16:14:19
0 / 0
0644
RemoteDebugger.py
11.381 KB
November 14 2023 16:14:19
0 / 0
0644
RemoteDebugger.pyc
15.967 KB
November 14 2023 16:14:41
0 / 0
0644
RemoteDebugger.pyo
15.816 KB
November 14 2023 16:14:44
0 / 0
0644
RemoteObjectBrowser.py
0.92 KB
November 14 2023 16:14:19
0 / 0
0644
RemoteObjectBrowser.pyc
2.1 KB
November 14 2023 16:14:41
0 / 0
0644
RemoteObjectBrowser.pyo
2.1 KB
November 14 2023 16:14:41
0 / 0
0644
ReplaceDialog.py
5.691 KB
November 14 2023 16:14:19
0 / 0
0644
ReplaceDialog.pyc
6.32 KB
November 14 2023 16:14:41
0 / 0
0644
ReplaceDialog.pyo
6.32 KB
November 14 2023 16:14:41
0 / 0
0644
RstripExtension.py
0.805 KB
November 14 2023 16:14:19
0 / 0
0644
RstripExtension.pyc
1.445 KB
November 14 2023 16:14:41
0 / 0
0644
RstripExtension.pyo
1.445 KB
November 14 2023 16:14:41
0 / 0
0644
ScriptBinding.py
8.217 KB
November 14 2023 16:14:19
0 / 0
0644
ScriptBinding.pyc
7.962 KB
November 14 2023 16:14:41
0 / 0
0644
ScriptBinding.pyo
7.962 KB
November 14 2023 16:14:41
0 / 0
0644
ScrolledList.py
3.901 KB
November 14 2023 16:14:19
0 / 0
0644
ScrolledList.pyc
6.03 KB
November 14 2023 16:14:41
0 / 0
0644
ScrolledList.pyo
6.03 KB
November 14 2023 16:14:41
0 / 0
0644
SearchDialog.py
1.992 KB
November 14 2023 16:14:19
0 / 0
0644
SearchDialog.pyc
2.935 KB
November 14 2023 16:14:41
0 / 0
0644
SearchDialog.pyo
2.935 KB
November 14 2023 16:14:41
0 / 0
0644
SearchDialogBase.py
4.282 KB
November 14 2023 16:14:19
0 / 0
0644
SearchDialogBase.pyc
5.365 KB
November 14 2023 16:14:41
0 / 0
0644
SearchDialogBase.pyo
5.365 KB
November 14 2023 16:14:41
0 / 0
0644
SearchEngine.py
6.573 KB
November 14 2023 16:14:19
0 / 0
0644
SearchEngine.pyc
7.017 KB
November 14 2023 16:14:41
0 / 0
0644
SearchEngine.pyo
7.017 KB
November 14 2023 16:14:41
0 / 0
0644
StackViewer.py
3.767 KB
November 14 2023 16:14:19
0 / 0
0644
StackViewer.pyc
5.788 KB
November 14 2023 16:14:41
0 / 0
0644
StackViewer.pyo
5.788 KB
November 14 2023 16:14:41
0 / 0
0644
TODO.txt
8.279 KB
November 14 2023 16:14:19
0 / 0
0644
ToolTip.py
2.672 KB
November 14 2023 16:14:19
0 / 0
0644
ToolTip.pyc
4.053 KB
November 14 2023 16:14:41
0 / 0
0644
ToolTip.pyo
4.053 KB
November 14 2023 16:14:41
0 / 0
0644
TreeWidget.py
14.874 KB
November 14 2023 16:14:19
0 / 0
0644
TreeWidget.pyc
17.477 KB
November 14 2023 16:14:41
0 / 0
0644
TreeWidget.pyo
17.477 KB
November 14 2023 16:14:41
0 / 0
0644
UndoDelegator.py
10.036 KB
November 14 2023 16:14:19
0 / 0
0644
UndoDelegator.pyc
12.274 KB
November 14 2023 16:14:41
0 / 0
0644
UndoDelegator.pyo
12.274 KB
November 14 2023 16:14:41
0 / 0
0644
WidgetRedirector.py
4.371 KB
November 14 2023 16:14:19
0 / 0
0644
WidgetRedirector.pyc
5.229 KB
November 14 2023 16:14:41
0 / 0
0644
WidgetRedirector.pyo
5.229 KB
November 14 2023 16:14:41
0 / 0
0644
WindowList.py
2.415 KB
November 14 2023 16:14:19
0 / 0
0644
WindowList.pyc
3.551 KB
November 14 2023 16:14:41
0 / 0
0644
WindowList.pyo
3.551 KB
November 14 2023 16:14:41
0 / 0
0644
ZoomHeight.py
1.276 KB
November 14 2023 16:14:19
0 / 0
0644
ZoomHeight.pyc
1.614 KB
November 14 2023 16:14:41
0 / 0
0644
ZoomHeight.pyo
1.614 KB
November 14 2023 16:14:41
0 / 0
0644
__init__.py
0.036 KB
November 14 2023 16:14:19
0 / 0
0644
__init__.pyc
0.124 KB
November 14 2023 16:14:41
0 / 0
0644
__init__.pyo
0.124 KB
November 14 2023 16:14:41
0 / 0
0644
aboutDialog.py
6.421 KB
November 14 2023 16:14:19
0 / 0
0644
aboutDialog.pyc
6.632 KB
November 14 2023 16:14:41
0 / 0
0644
aboutDialog.pyo
6.632 KB
November 14 2023 16:14:41
0 / 0
0644
config-extensions.def
2.723 KB
November 14 2023 16:14:19
0 / 0
0644
config-highlight.def
1.699 KB
November 14 2023 16:14:19
0 / 0
0644
config-keys.def
7.348 KB
November 14 2023 16:14:19
0 / 0
0644
config-main.def
2.453 KB
November 14 2023 16:14:19
0 / 0
0644
configDialog.py
52.232 KB
November 14 2023 16:14:19
0 / 0
0644
configDialog.pyc
43.814 KB
November 14 2023 16:14:41
0 / 0
0644
configDialog.pyo
43.814 KB
November 14 2023 16:14:41
0 / 0
0644
configHandler.py
28.679 KB
November 14 2023 16:14:19
0 / 0
0644
configHandler.pyc
26.834 KB
November 14 2023 16:14:41
0 / 0
0644
configHandler.pyo
26.834 KB
November 14 2023 16:14:41
0 / 0
0644
configHelpSourceEdit.py
6.523 KB
November 14 2023 16:14:19
0 / 0
0644
configHelpSourceEdit.pyc
6.564 KB
November 14 2023 16:14:41
0 / 0
0644
configHelpSourceEdit.pyo
6.564 KB
November 14 2023 16:14:41
0 / 0
0644
configSectionNameDialog.py
3.633 KB
November 14 2023 16:14:19
0 / 0
0644
configSectionNameDialog.pyc
4.21 KB
November 14 2023 16:14:41
0 / 0
0644
configSectionNameDialog.pyo
4.21 KB
November 14 2023 16:14:41
0 / 0
0644
dynOptionMenuWidget.py
1.271 KB
November 14 2023 16:14:19
0 / 0
0644
dynOptionMenuWidget.pyc
1.661 KB
November 14 2023 16:14:41
0 / 0
0644
dynOptionMenuWidget.pyo
1.661 KB
November 14 2023 16:14:41
0 / 0
0644
extend.txt
3.557 KB
November 14 2023 16:14:19
0 / 0
0644
help.txt
11.719 KB
November 14 2023 16:14:19
0 / 0
0644
idle.py
0.391 KB
November 14 2023 16:14:19
0 / 0
0644
idle.pyc
0.396 KB
November 14 2023 16:14:41
0 / 0
0644
idle.pyo
0.396 KB
November 14 2023 16:14:41
0 / 0
0644
idle.pyw
0.648 KB
November 14 2023 16:14:19
0 / 0
0644
idlever.py
0.022 KB
November 14 2023 16:14:19
0 / 0
0644
idlever.pyc
0.155 KB
November 14 2023 16:14:41
0 / 0
0644
idlever.pyo
0.155 KB
November 14 2023 16:14:41
0 / 0
0644
keybindingDialog.py
12.116 KB
November 14 2023 16:14:19
0 / 0
0644
keybindingDialog.pyc
12.054 KB
November 14 2023 16:14:41
0 / 0
0644
keybindingDialog.pyo
12.054 KB
November 14 2023 16:14:41
0 / 0
0644
macosxSupport.py
6.076 KB
November 14 2023 16:14:19
0 / 0
0644
macosxSupport.pyc
6.249 KB
November 14 2023 16:14:41
0 / 0
0644
macosxSupport.pyo
6.249 KB
November 14 2023 16:14:41
0 / 0
0644
rpc.py
19.751 KB
November 14 2023 16:14:19
0 / 0
0644
rpc.pyc
21.262 KB
November 14 2023 16:14:41
0 / 0
0644
rpc.pyo
21.158 KB
November 14 2023 16:14:44
0 / 0
0644
run.py
11.54 KB
November 14 2023 16:14:19
0 / 0
0644
run.pyc
12.137 KB
November 14 2023 16:14:41
0 / 0
0644
run.pyo
12.08 KB
November 14 2023 16:14:44
0 / 0
0644
tabbedpages.py
17.762 KB
November 14 2023 16:14:19
0 / 0
0644
tabbedpages.pyc
17.665 KB
November 14 2023 16:14:41
0 / 0
0644
tabbedpages.pyo
17.665 KB
November 14 2023 16:14:41
0 / 0
0644
textView.py
3.462 KB
November 14 2023 16:14:19
0 / 0
0644
textView.pyc
4.199 KB
November 14 2023 16:14:41
0 / 0
0644
textView.pyo
4.199 KB
November 14 2023 16:14:41
0 / 0
0644