SILENT KILLERPanel

Current Path: > > > lib64 > python2.7 > > 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: ///lib64/python2.7//idlelib

NameTypeSizeLast ModifiedActions
Icons Directory - -
idle_test Directory - -
AutoComplete.py File 8964 bytes April 10 2024 04:58:35.
AutoComplete.pyc File 8012 bytes April 10 2024 04:58:46.
AutoComplete.pyo File 8012 bytes April 10 2024 04:58:46.
AutoCompleteWindow.py File 17318 bytes April 10 2024 04:58:35.
AutoCompleteWindow.pyc File 12480 bytes April 10 2024 04:58:46.
AutoCompleteWindow.pyo File 12421 bytes April 10 2024 04:58:43.
AutoExpand.py File 3395 bytes April 10 2024 04:58:35.
AutoExpand.pyc File 3502 bytes April 10 2024 04:58:46.
AutoExpand.pyo File 3502 bytes April 10 2024 04:58:46.
Bindings.py File 2976 bytes April 10 2024 04:58:35.
Bindings.pyc File 4695 bytes April 10 2024 04:58:46.
Bindings.pyo File 4695 bytes April 10 2024 04:58:46.
CREDITS.txt File 1866 bytes April 10 2024 04:58:35.
CallTipWindow.py File 6065 bytes April 10 2024 04:58:35.
CallTipWindow.pyc File 6136 bytes April 10 2024 04:58:46.
CallTipWindow.pyo File 6136 bytes April 10 2024 04:58:46.
CallTips.py File 7740 bytes April 10 2024 04:58:35.
CallTips.pyc File 8133 bytes April 10 2024 04:58:46.
CallTips.pyo File 8133 bytes April 10 2024 04:58:46.
ChangeLog File 56393 bytes April 10 2024 04:58:35.
ClassBrowser.py File 6999 bytes April 10 2024 04:58:35.
ClassBrowser.pyc File 9500 bytes April 10 2024 04:58:46.
ClassBrowser.pyo File 9500 bytes April 10 2024 04:58:46.
CodeContext.py File 8342 bytes April 10 2024 04:58:35.
CodeContext.pyc File 6658 bytes April 10 2024 04:58:46.
CodeContext.pyo File 6614 bytes April 10 2024 04:58:43.
ColorDelegator.py File 9762 bytes April 10 2024 04:58:35.
ColorDelegator.pyc File 8898 bytes April 10 2024 04:58:46.
ColorDelegator.pyo File 8898 bytes April 10 2024 04:58:46.
Debugger.py File 18236 bytes April 10 2024 04:58:35.
Debugger.pyc File 17546 bytes April 10 2024 04:58:46.
Debugger.pyo File 17546 bytes April 10 2024 04:58:46.
Delegator.py File 665 bytes April 10 2024 04:58:35.
Delegator.pyc File 1268 bytes April 10 2024 04:58:46.
Delegator.pyo File 1268 bytes April 10 2024 04:58:46.
EditorWindow.py File 65498 bytes April 10 2024 04:58:35.
EditorWindow.pyc File 56858 bytes April 10 2024 04:58:46.
EditorWindow.pyo File 56756 bytes April 10 2024 04:58:43.
FileList.py File 3718 bytes April 10 2024 04:58:35.
FileList.pyc File 4025 bytes April 10 2024 04:58:46.
FileList.pyo File 3992 bytes April 10 2024 04:58:43.
FormatParagraph.py File 7287 bytes April 10 2024 04:58:35.
FormatParagraph.pyc File 7142 bytes April 10 2024 04:58:46.
FormatParagraph.pyo File 7142 bytes April 10 2024 04:58:46.
GrepDialog.py File 5145 bytes April 10 2024 04:58:35.
GrepDialog.pyc File 6425 bytes April 10 2024 04:58:46.
GrepDialog.pyo File 6425 bytes April 10 2024 04:58:46.
HISTORY.txt File 10317 bytes April 10 2024 04:58:35.
HyperParser.py File 10497 bytes April 10 2024 04:58:35.
HyperParser.pyc File 6673 bytes April 10 2024 04:58:46.
HyperParser.pyo File 6673 bytes April 10 2024 04:58:46.
IOBinding.py File 21911 bytes April 10 2024 04:58:35.
IOBinding.pyc File 18535 bytes April 10 2024 04:58:46.
IOBinding.pyo File 18535 bytes April 10 2024 04:58:46.
IdleHistory.py File 4052 bytes April 10 2024 04:58:35.
IdleHistory.pyc File 4060 bytes April 10 2024 04:58:46.
IdleHistory.pyo File 4060 bytes April 10 2024 04:58:46.
MultiCall.py File 17701 bytes April 10 2024 04:58:35.
MultiCall.pyc File 16351 bytes April 10 2024 04:58:46.
MultiCall.pyo File 16277 bytes April 10 2024 04:58:43.
MultiStatusBar.py File 1348 bytes April 10 2024 04:58:35.
MultiStatusBar.pyc File 2279 bytes April 10 2024 04:58:46.
MultiStatusBar.pyo File 2279 bytes April 10 2024 04:58:46.
NEWS.txt File 47247 bytes April 10 2024 04:58:35.
ObjectBrowser.py File 4376 bytes April 10 2024 04:58:35.
ObjectBrowser.pyc File 7067 bytes April 10 2024 04:58:46.
ObjectBrowser.pyo File 7067 bytes April 10 2024 04:58:46.
OutputWindow.py File 4576 bytes April 10 2024 04:58:35.
OutputWindow.pyc File 5232 bytes April 10 2024 04:58:46.
OutputWindow.pyo File 5232 bytes April 10 2024 04:58:46.
ParenMatch.py File 6714 bytes April 10 2024 04:58:35.
ParenMatch.pyc File 7129 bytes April 10 2024 04:58:46.
ParenMatch.pyo File 7129 bytes April 10 2024 04:58:46.
PathBrowser.py File 3009 bytes April 10 2024 04:58:35.
PathBrowser.pyc File 4486 bytes April 10 2024 04:58:46.
PathBrowser.pyo File 4486 bytes April 10 2024 04:58:46.
Percolator.py File 3222 bytes April 10 2024 04:58:35.
Percolator.pyc File 4608 bytes April 10 2024 04:58:46.
Percolator.pyo File 4424 bytes April 10 2024 04:58:43.
PyParse.py File 19510 bytes April 10 2024 04:58:35.
PyParse.pyc File 10005 bytes April 10 2024 04:58:46.
PyParse.pyo File 9567 bytes April 10 2024 04:58:43.
PyShell.py File 58862 bytes April 10 2024 04:58:35.
PyShell.pyc File 52826 bytes April 10 2024 04:58:46.
PyShell.pyo File 52724 bytes April 10 2024 04:58:43.
README.txt File 7890 bytes April 10 2024 04:58:35.
RemoteDebugger.py File 11632 bytes April 10 2024 04:58:35.
RemoteDebugger.pyc File 16325 bytes April 10 2024 04:58:46.
RemoteDebugger.pyo File 16171 bytes April 10 2024 04:58:43.
RemoteObjectBrowser.py File 942 bytes April 10 2024 04:58:35.
RemoteObjectBrowser.pyc File 2150 bytes April 10 2024 04:58:46.
RemoteObjectBrowser.pyo File 2150 bytes April 10 2024 04:58:46.
ReplaceDialog.py File 6639 bytes April 10 2024 04:58:35.
ReplaceDialog.pyc File 7756 bytes April 10 2024 04:58:46.
ReplaceDialog.pyo File 7756 bytes April 10 2024 04:58:46.
RstripExtension.py File 1050 bytes April 10 2024 04:58:35.
RstripExtension.pyc File 1613 bytes April 10 2024 04:58:46.
RstripExtension.pyo File 1613 bytes April 10 2024 04:58:46.
ScriptBinding.py File 8459 bytes April 10 2024 04:58:35.
ScriptBinding.pyc File 8201 bytes April 10 2024 04:58:46.
ScriptBinding.pyo File 8201 bytes April 10 2024 04:58:46.
ScrolledList.py File 4373 bytes April 10 2024 04:58:35.
ScrolledList.pyc File 6482 bytes April 10 2024 04:58:46.
ScrolledList.pyo File 6482 bytes April 10 2024 04:58:46.
SearchDialog.py File 2630 bytes April 10 2024 04:58:35.
SearchDialog.pyc File 3983 bytes April 10 2024 04:58:46.
SearchDialog.pyo File 3983 bytes April 10 2024 04:58:46.
SearchDialogBase.py File 7094 bytes April 10 2024 04:58:35.
SearchDialogBase.pyc File 8462 bytes April 10 2024 04:58:46.
SearchDialogBase.pyo File 8462 bytes April 10 2024 04:58:46.
SearchEngine.py File 7463 bytes April 10 2024 04:58:35.
SearchEngine.pyc File 8302 bytes April 10 2024 04:58:46.
SearchEngine.pyo File 8302 bytes April 10 2024 04:58:46.
StackViewer.py File 4431 bytes April 10 2024 04:58:35.
StackViewer.pyc File 6404 bytes April 10 2024 04:58:46.
StackViewer.pyo File 6404 bytes April 10 2024 04:58:46.
TODO.txt File 8478 bytes April 10 2024 04:58:35.
ToolTip.py File 3173 bytes April 10 2024 04:58:35.
ToolTip.pyc File 4669 bytes April 10 2024 04:58:46.
ToolTip.pyo File 4669 bytes April 10 2024 04:58:46.
TreeWidget.py File 15037 bytes April 10 2024 04:58:35.
TreeWidget.pyc File 17694 bytes April 10 2024 04:58:46.
TreeWidget.pyo File 17694 bytes April 10 2024 04:58:46.
UndoDelegator.py File 10787 bytes April 10 2024 04:58:35.
UndoDelegator.pyc File 13555 bytes April 10 2024 04:58:46.
UndoDelegator.pyo File 13555 bytes April 10 2024 04:58:46.
WidgetRedirector.py File 6906 bytes April 10 2024 04:58:35.
WidgetRedirector.pyc File 7769 bytes April 10 2024 04:58:46.
WidgetRedirector.pyo File 7769 bytes April 10 2024 04:58:46.
WindowList.py File 2473 bytes April 10 2024 04:58:35.
WindowList.pyc File 3636 bytes April 10 2024 04:58:46.
WindowList.pyo File 3636 bytes April 10 2024 04:58:46.
ZoomHeight.py File 1300 bytes April 10 2024 04:58:35.
ZoomHeight.pyc File 1646 bytes April 10 2024 04:58:46.
ZoomHeight.pyo File 1646 bytes April 10 2024 04:58:46.
__init__.py File 288 bytes April 10 2024 04:58:35.
__init__.pyc File 431 bytes April 10 2024 04:58:46.
__init__.pyo File 431 bytes April 10 2024 04:58:46.
aboutDialog.py File 7014 bytes April 10 2024 04:58:35.
aboutDialog.pyc File 6848 bytes April 10 2024 04:58:46.
aboutDialog.pyo File 6848 bytes April 10 2024 04:58:46.
config-extensions.def File 2965 bytes April 10 2024 04:58:35.
config-highlight.def File 2515 bytes April 10 2024 04:58:35.
config-keys.def File 7777 bytes April 10 2024 04:58:35.
config-main.def File 2561 bytes April 10 2024 04:58:35.
configDialog.py File 65958 bytes April 10 2024 04:58:35.
configDialog.pyc File 53291 bytes April 10 2024 04:58:46.
configDialog.pyo File 53291 bytes April 10 2024 04:58:46.
configHandler.py File 32485 bytes April 10 2024 04:58:35.
configHandler.pyc File 29361 bytes April 10 2024 04:58:46.
configHandler.pyo File 29361 bytes April 10 2024 04:58:46.
configHelpSourceEdit.py File 6686 bytes April 10 2024 04:58:35.
configHelpSourceEdit.pyc File 6595 bytes April 10 2024 04:58:46.
configHelpSourceEdit.pyo File 6595 bytes April 10 2024 04:58:46.
configSectionNameDialog.py File 4040 bytes April 10 2024 04:58:35.
configSectionNameDialog.pyc File 4419 bytes April 10 2024 04:58:46.
configSectionNameDialog.pyo File 4419 bytes April 10 2024 04:58:46.
dynOptionMenuWidget.py File 1984 bytes April 10 2024 04:58:35.
dynOptionMenuWidget.pyc File 2790 bytes April 10 2024 04:58:46.
dynOptionMenuWidget.pyo File 2790 bytes April 10 2024 04:58:46.
extend.txt File 3642 bytes April 10 2024 04:58:35.
help.html File 42414 bytes April 10 2024 04:58:35.
help.py File 11035 bytes April 10 2024 04:58:35.
help.pyc File 12270 bytes April 10 2024 04:58:46.
help.pyo File 12270 bytes April 10 2024 04:58:46.
help.txt File 12144 bytes April 10 2024 04:58:35.
idle.py File 453 bytes April 10 2024 04:58:35.
idle.pyc File 410 bytes April 10 2024 04:58:46.
idle.pyo File 410 bytes April 10 2024 04:58:46.
idle.pyw File 563 bytes April 10 2024 04:58:35.
idlever.py File 415 bytes April 10 2024 04:58:35.
idlever.pyc File 578 bytes April 10 2024 04:58:46.
idlever.pyo File 578 bytes April 10 2024 04:58:46.
keybindingDialog.py File 12468 bytes April 10 2024 04:58:35.
keybindingDialog.pyc File 12173 bytes April 10 2024 04:58:46.
keybindingDialog.pyo File 12173 bytes April 10 2024 04:58:46.
macosxSupport.py File 8435 bytes April 10 2024 04:58:35.
macosxSupport.pyc File 8351 bytes April 10 2024 04:58:46.
macosxSupport.pyo File 8213 bytes April 10 2024 04:58:43.
rpc.py File 20150 bytes April 10 2024 04:58:35.
rpc.pyc File 21728 bytes April 10 2024 04:58:46.
rpc.pyo File 21622 bytes April 10 2024 04:58:43.
run.py File 12917 bytes April 10 2024 04:58:35.
run.pyc File 13419 bytes April 10 2024 04:58:46.
run.pyo File 13361 bytes April 10 2024 04:58:43.
tabbedpages.py File 18439 bytes April 10 2024 04:58:35.
tabbedpages.pyc File 18561 bytes April 10 2024 04:58:46.
tabbedpages.pyo File 18561 bytes April 10 2024 04:58:46.
textView.py File 3520 bytes April 10 2024 04:58:35.
textView.pyc File 4025 bytes April 10 2024 04:58:46.
textView.pyo File 4025 bytes April 10 2024 04:58:46.

Reading File: ///lib64/python2.7//idlelib/ScriptBinding.py

"""Extension to execute code outside the Python shell window.

This adds the following commands:

- Check module does a full syntax check of the current module.
  It also runs the tabnanny to catch any inconsistent tabs.

- Run module executes the module's code in the __main__ namespace.  The window
  must have been saved previously. The module is added to sys.modules, and is
  also added to the __main__ namespace.

XXX GvR Redesign this interface (yet again) as follows:

- Present a dialog box for ``Run Module''

- Allow specify command line arguments in the dialog box

"""

import os
import re
import string
import tabnanny
import tokenize
import tkMessageBox
from idlelib import PyShell

from idlelib.configHandler import idleConf
from idlelib import macosxSupport

IDENTCHARS = string.ascii_letters + string.digits + "_"

indent_message = """Error: Inconsistent indentation detected!

1) Your indentation is outright incorrect (easy to fix), OR

2) Your indentation mixes tabs and spaces.

To fix case 2, change all tabs to spaces by using Edit->Select All followed \
by Format->Untabify Region and specify the number of columns used by each tab.
"""

class ScriptBinding:

    menudefs = [
        ('run', [None,
                 ('Check Module', '<<check-module>>'),
                 ('Run Module', '<<run-module>>'), ]), ]

    def __init__(self, editwin):
        self.editwin = editwin
        # Provide instance variables referenced by Debugger
        # XXX This should be done differently
        self.flist = self.editwin.flist
        self.root = self.editwin.root

        if macosxSupport.isCocoaTk():
            self.editwin.text_frame.bind('<<run-module-event-2>>', self._run_module_event)

    def check_module_event(self, event):
        filename = self.getfilename()
        if not filename:
            return 'break'
        if not self.checksyntax(filename):
            return 'break'
        if not self.tabnanny(filename):
            return 'break'

    def tabnanny(self, filename):
        f = open(filename, 'r')
        try:
            tabnanny.process_tokens(tokenize.generate_tokens(f.readline))
        except tokenize.TokenError as msg:
            msgtxt, (lineno, start) = msg.args
            self.editwin.gotoline(lineno)
            self.errorbox("Tabnanny Tokenizing Error",
                          "Token Error: %s" % msgtxt)
            return False
        except tabnanny.NannyNag as nag:
            # The error messages from tabnanny are too confusing...
            self.editwin.gotoline(nag.get_lineno())
            self.errorbox("Tab/space error", indent_message)
            return False
        return True

    def checksyntax(self, filename):
        self.shell = shell = self.flist.open_shell()
        saved_stream = shell.get_warning_stream()
        shell.set_warning_stream(shell.stderr)
        with open(filename, 'r') as f:
            source = f.read()
        if '\r' in source:
            source = re.sub(r"\r\n", "\n", source)
            source = re.sub(r"\r", "\n", source)
        if source and source[-1] != '\n':
            source = source + '\n'
        text = self.editwin.text
        text.tag_remove("ERROR", "1.0", "end")
        try:
            try:
                # If successful, return the compiled code
                return compile(source, filename, "exec")
            except (SyntaxError, OverflowError, ValueError) as err:
                try:
                    msg, (errorfilename, lineno, offset, line) = err
                    if not errorfilename:
                        err.args = msg, (filename, lineno, offset, line)
                        err.filename = filename
                    self.colorize_syntax_error(msg, lineno, offset)
                except:
                    msg = "*** " + str(err)
                self.errorbox("Syntax error",
                              "There's an error in your program:\n" + msg)
                return False
        finally:
            shell.set_warning_stream(saved_stream)

    def colorize_syntax_error(self, msg, lineno, offset):
        text = self.editwin.text
        pos = "0.0 + %d lines + %d chars" % (lineno-1, offset-1)
        text.tag_add("ERROR", pos)
        char = text.get(pos)
        if char and char in IDENTCHARS:
            text.tag_add("ERROR", pos + " wordstart", pos)
        if '\n' == text.get(pos):   # error at line end
            text.mark_set("insert", pos)
        else:
            text.mark_set("insert", pos + "+1c")
        text.see(pos)

    def run_module_event(self, event):
        """Run the module after setting up the environment.

        First check the syntax.  If OK, make sure the shell is active and
        then transfer the arguments, set the run environment's working
        directory to the directory of the module being executed and also
        add that directory to its sys.path if not already included.

        """
        filename = self.getfilename()
        if not filename:
            return 'break'
        code = self.checksyntax(filename)
        if not code:
            return 'break'
        if not self.tabnanny(filename):
            return 'break'
        interp = self.shell.interp
        if PyShell.use_subprocess:
            interp.restart_subprocess(with_cwd=False, filename=code.co_filename)
        dirname = os.path.dirname(filename)
        # XXX Too often this discards arguments the user just set...
        interp.runcommand("""if 1:
            __file__ = {filename!r}
            import sys as _sys
            from os.path import basename as _basename
            if (not _sys.argv or
                _basename(_sys.argv[0]) != _basename(__file__)):
                _sys.argv = [__file__]
            import os as _os
            _os.chdir({dirname!r})
            del _sys, _basename, _os
            \n""".format(filename=filename, dirname=dirname))
        interp.prepend_syspath(filename)
        # XXX KBK 03Jul04 When run w/o subprocess, runtime warnings still
        #         go to __stderr__.  With subprocess, they go to the shell.
        #         Need to change streams in PyShell.ModifiedInterpreter.
        interp.runcode(code)
        return 'break'

    if macosxSupport.isCocoaTk():
        # Tk-Cocoa in MacOSX is broken until at least
        # Tk 8.5.9, and without this rather
        # crude workaround IDLE would hang when a user
        # tries to run a module using the keyboard shortcut
        # (the menu item works fine).
        _run_module_event = run_module_event

        def run_module_event(self, event):
            self.editwin.text_frame.after(200,
                lambda: self.editwin.text_frame.event_generate('<<run-module-event-2>>'))
            return 'break'

    def getfilename(self):
        """Get source filename.  If not saved, offer to save (or create) file

        The debugger requires a source file.  Make sure there is one, and that
        the current version of the source buffer has been saved.  If the user
        declines to save or cancels the Save As dialog, return None.

        If the user has configured IDLE for Autosave, the file will be
        silently saved if it already exists and is dirty.

        """
        filename = self.editwin.io.filename
        if not self.editwin.get_saved():
            autosave = idleConf.GetOption('main', 'General',
                                          'autosave', type='bool')
            if autosave and filename:
                self.editwin.io.save(None)
            else:
                confirm = self.ask_save_dialog()
                self.editwin.text.focus_set()
                if confirm:
                    self.editwin.io.save(None)
                    filename = self.editwin.io.filename
                else:
                    filename = None
        return filename

    def ask_save_dialog(self):
        msg = "Source Must Be Saved\n" + 5*' ' + "OK to Save?"
        confirm = tkMessageBox.askokcancel(title="Save Before Run or Check",
                                           message=msg,
                                           default=tkMessageBox.OK,
                                           parent=self.editwin.text)
        return confirm

    def errorbox(self, title, message):
        # XXX This should really be a function of EditorWindow...
        tkMessageBox.showerror(title, message, parent=self.editwin.text)
        self.editwin.text.focus_set()

SILENT KILLER Tool