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/SearchDialogBase.py

'''Define SearchDialogBase used by Search, Replace, and Grep dialogs.'''

from tkinter import (Toplevel, Frame, Entry, Label, Button,
                     Checkbutton, Radiobutton)

class SearchDialogBase:
    '''Create most of a 3 or 4 row, 3 column search dialog.

    The left and wide middle column contain:
    1 or 2 labeled text entry lines (make_entry, create_entries);
    a row of standard Checkbuttons (make_frame, create_option_buttons),
    each of which corresponds to a search engine Variable;
    a row of dialog-specific Check/Radiobuttons (create_other_buttons).

    The narrow right column contains command buttons
    (make_button, create_command_buttons).
    These are bound to functions that execute the command.

    Except for command buttons, this base class is not limited to items
    common to all three subclasses.  Rather, it is the Find dialog minus
    the "Find Next" command, its execution function, and the
    default_command attribute needed in create_widgets. The other
    dialogs override attributes and methods, the latter to replace and
    add widgets.
    '''

    title = "Search Dialog"  # replace in subclasses
    icon = "Search"
    needwrapbutton = 1  # not in Find in Files

    def __init__(self, root, engine):
        '''Initialize root, engine, and top attributes.

        top (level widget): set in create_widgets() called from open().
        text (Text searched): set in open(), only used in subclasses().
        ent (ry): created in make_entry() called from create_entry().
        row (of grid): 0 in create_widgets(), +1 in make_entry/frame().
        default_command: set in subclasses, used in create_widgers().

        title (of dialog): class attribute, override in subclasses.
        icon (of dialog): ditto, use unclear if cannot minimize dialog.
        '''
        self.root = root
        self.engine = engine
        self.top = None

    def open(self, text, searchphrase=None):
        "Make dialog visible on top of others and ready to use."
        self.text = text
        if not self.top:
            self.create_widgets()
        else:
            self.top.deiconify()
            self.top.tkraise()
        if searchphrase:
            self.ent.delete(0,"end")
            self.ent.insert("end",searchphrase)
        self.ent.focus_set()
        self.ent.selection_range(0, "end")
        self.ent.icursor(0)
        self.top.grab_set()

    def close(self, event=None):
        "Put dialog away for later use."
        if self.top:
            self.top.grab_release()
            self.top.withdraw()

    def create_widgets(self):
        '''Create basic 3 row x 3 col search (find) dialog.

        Other dialogs override subsidiary create_x methods as needed.
        Replace and Find-in-Files add another entry row.
        '''
        top = Toplevel(self.root)
        top.bind("<Return>", self.default_command)
        top.bind("<Escape>", self.close)
        top.protocol("WM_DELETE_WINDOW", self.close)
        top.wm_title(self.title)
        top.wm_iconname(self.icon)
        self.top = top

        self.row = 0
        self.top.grid_columnconfigure(0, pad=2, weight=0)
        self.top.grid_columnconfigure(1, pad=2, minsize=100, weight=100)

        self.create_entries()  # row 0 (and maybe 1), cols 0, 1
        self.create_option_buttons()  # next row, cols 0, 1
        self.create_other_buttons()  # next row, cols 0, 1
        self.create_command_buttons()  # col 2, all rows

    def make_entry(self, label_text, var):
        '''Return (entry, label), .

        entry - gridded labeled Entry for text entry.
        label - Label widget, returned for testing.
        '''
        label = Label(self.top, text=label_text)
        label.grid(row=self.row, column=0, sticky="nw")
        entry = Entry(self.top, textvariable=var, exportselection=0)
        entry.grid(row=self.row, column=1, sticky="nwe")
        self.row = self.row + 1
        return entry, label

    def create_entries(self):
        "Create one or more entry lines with make_entry."
        self.ent = self.make_entry("Find:", self.engine.patvar)[0]

    def make_frame(self,labeltext=None):
        '''Return (frame, label).

        frame - gridded labeled Frame for option or other buttons.
        label - Label widget, returned for testing.
        '''
        if labeltext:
            label = Label(self.top, text=labeltext)
            label.grid(row=self.row, column=0, sticky="nw")
        else:
            label = ''
        frame = Frame(self.top)
        frame.grid(row=self.row, column=1, columnspan=1, sticky="nwe")
        self.row = self.row + 1
        return frame, label

    def create_option_buttons(self):
        '''Return (filled frame, options) for testing.

        Options is a list of SearchEngine booleanvar, label pairs.
        A gridded frame from make_frame is filled with a Checkbutton
        for each pair, bound to the var, with the corresponding label.
        '''
        frame = self.make_frame("Options")[0]
        engine = self.engine
        options = [(engine.revar, "Regular expression"),
                   (engine.casevar, "Match case"),
                   (engine.wordvar, "Whole word")]
        if self.needwrapbutton:
            options.append((engine.wrapvar, "Wrap around"))
        for var, label in options:
            btn = Checkbutton(frame, anchor="w", variable=var, text=label)
            btn.pack(side="left", fill="both")
            if var.get():
                btn.select()
        return frame, options

    def create_other_buttons(self):
        '''Return (frame, others) for testing.

        Others is a list of value, label pairs.
        A gridded frame from make_frame is filled with radio buttons.
        '''
        frame = self.make_frame("Direction")[0]
        var = self.engine.backvar
        others = [(1, 'Up'), (0, 'Down')]
        for val, label in others:
            btn = Radiobutton(frame, anchor="w",
                              variable=var, value=val, text=label)
            btn.pack(side="left", fill="both")
            if var.get() == val:
                btn.select()
        return frame, others

    def make_button(self, label, command, isdef=0):
        "Return command button gridded in command frame."
        b = Button(self.buttonframe,
                   text=label, command=command,
                   default=isdef and "active" or "normal")
        cols,rows=self.buttonframe.grid_size()
        b.grid(pady=1,row=rows,column=0,sticky="ew")
        self.buttonframe.grid(rowspan=rows+1)
        return b

    def create_command_buttons(self):
        "Place buttons in vertical command frame gridded on right."
        f = self.buttonframe = Frame(self.top)
        f.grid(row=0,column=2,padx=2,pady=2,ipadx=2,ipady=2)

        b = self.make_button("close", self.close)
        b.lower()

if __name__ == '__main__':
    import unittest
    unittest.main(
        'idlelib.idle_test.test_searchdialogbase', verbosity=2)

SILENT KILLER Tool