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

"Dialog to specify or edit the parameters for a user configured help source."

import os
import sys

from tkinter import *
import tkinter.messagebox as tkMessageBox
import tkinter.filedialog as tkFileDialog

class GetHelpSourceDialog(Toplevel):
    def __init__(self, parent, title, menuItem='', filePath='', _htest=False):
        """Get menu entry and url/ local file location for Additional Help

        User selects a name for the Help resource and provides a web url
        or a local file as its source.  The user can enter a url or browse
        for the file.

        _htest - bool, change box location when running htest
        """
        Toplevel.__init__(self, parent)
        self.configure(borderwidth=5)
        self.resizable(height=FALSE, width=FALSE)
        self.title(title)
        self.transient(parent)
        self.grab_set()
        self.protocol("WM_DELETE_WINDOW", self.cancel)
        self.parent = parent
        self.result = None
        self.create_widgets()
        self.menu.set(menuItem)
        self.path.set(filePath)
        self.withdraw() #hide while setting geometry
        #needs to be done here so that the winfo_reqwidth is valid
        self.update_idletasks()
        #centre dialog over parent. below parent if running htest.
        self.geometry(
                "+%d+%d" % (
                    parent.winfo_rootx() +
                    (parent.winfo_width()/2 - self.winfo_reqwidth()/2),
                    parent.winfo_rooty() +
                    ((parent.winfo_height()/2 - self.winfo_reqheight()/2)
                    if not _htest else 150)))
        self.deiconify() #geometry set, unhide
        self.bind('<Return>', self.ok)
        self.wait_window()

    def create_widgets(self):
        self.menu = StringVar(self)
        self.path = StringVar(self)
        self.fontSize = StringVar(self)
        self.frameMain = Frame(self, borderwidth=2, relief=GROOVE)
        self.frameMain.pack(side=TOP, expand=TRUE, fill=BOTH)
        labelMenu = Label(self.frameMain, anchor=W, justify=LEFT,
                          text='Menu Item:')
        self.entryMenu = Entry(self.frameMain, textvariable=self.menu,
                               width=30)
        self.entryMenu.focus_set()
        labelPath = Label(self.frameMain, anchor=W, justify=LEFT,
                          text='Help File Path: Enter URL or browse for file')
        self.entryPath = Entry(self.frameMain, textvariable=self.path,
                               width=40)
        self.entryMenu.focus_set()
        labelMenu.pack(anchor=W, padx=5, pady=3)
        self.entryMenu.pack(anchor=W, padx=5, pady=3)
        labelPath.pack(anchor=W, padx=5, pady=3)
        self.entryPath.pack(anchor=W, padx=5, pady=3)
        browseButton = Button(self.frameMain, text='Browse', width=8,
                              command=self.browse_file)
        browseButton.pack(pady=3)
        frameButtons = Frame(self)
        frameButtons.pack(side=BOTTOM, fill=X)
        self.buttonOk = Button(frameButtons, text='OK',
                               width=8, default=ACTIVE,  command=self.ok)
        self.buttonOk.grid(row=0, column=0, padx=5,pady=5)
        self.buttonCancel = Button(frameButtons, text='Cancel',
                                   width=8, command=self.cancel)
        self.buttonCancel.grid(row=0, column=1, padx=5, pady=5)

    def browse_file(self):
        filetypes = [
            ("HTML Files", "*.htm *.html", "TEXT"),
            ("PDF Files", "*.pdf", "TEXT"),
            ("Windows Help Files", "*.chm"),
            ("Text Files", "*.txt", "TEXT"),
            ("All Files", "*")]
        path = self.path.get()
        if path:
            dir, base = os.path.split(path)
        else:
            base = None
            if sys.platform[:3] == 'win':
                dir = os.path.join(os.path.dirname(sys.executable), 'Doc')
                if not os.path.isdir(dir):
                    dir = os.getcwd()
            else:
                dir = os.getcwd()
        opendialog = tkFileDialog.Open(parent=self, filetypes=filetypes)
        file = opendialog.show(initialdir=dir, initialfile=base)
        if file:
            self.path.set(file)

    def menu_ok(self):
        "Simple validity check for a sensible menu item name"
        menu_ok = True
        menu = self.menu.get()
        menu.strip()
        if not menu:
            tkMessageBox.showerror(title='Menu Item Error',
                                   message='No menu item specified',
                                   parent=self)
            self.entryMenu.focus_set()
            menu_ok = False
        elif len(menu) > 30:
            tkMessageBox.showerror(title='Menu Item Error',
                                   message='Menu item too long:'
                                           '\nLimit 30 characters.',
                                   parent=self)
            self.entryMenu.focus_set()
            menu_ok = False
        return menu_ok

    def path_ok(self):
        "Simple validity check for menu file path"
        path_ok = True
        path = self.path.get()
        path.strip()
        if not path: #no path specified
            tkMessageBox.showerror(title='File Path Error',
                                   message='No help file path specified.',
                                   parent=self)
            self.entryPath.focus_set()
            path_ok = False
        elif path.startswith(('www.', 'http')):
            pass
        else:
            if path[:5] == 'file:':
                path = path[5:]
            if not os.path.exists(path):
                tkMessageBox.showerror(title='File Path Error',
                                       message='Help file path does not exist.',
                                       parent=self)
                self.entryPath.focus_set()
                path_ok = False
        return path_ok

    def ok(self, event=None):
        if self.menu_ok() and self.path_ok():
            self.result = (self.menu.get().strip(),
                           self.path.get().strip())
            if sys.platform == 'darwin':
                path = self.result[1]
                if path.startswith(('www', 'file:', 'http:', 'https:')):
                    pass
                else:
                    # Mac Safari insists on using the URI form for local files
                    self.result = list(self.result)
                    self.result[1] = "file://" + path
            self.destroy()

    def cancel(self, event=None):
        self.result = None
        self.destroy()

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

    from idlelib.idle_test.htest import run
    run(GetHelpSourceDialog)

SILENT KILLER Tool