GRAYBYTE WORDPRESS FILE MANAGER6803

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/python37/lib64/python3.7/idlelib/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/python37/lib64/python3.7/idlelib//outwin.py
"""Editor window that can serve as an output file.
"""

import re

from tkinter import messagebox

from idlelib.editor import EditorWindow
from idlelib import iomenu


file_line_pats = [
    # order of patterns matters
    r'file "([^"]*)", line (\d+)',
    r'([^\s]+)\((\d+)\)',
    r'^(\s*\S.*?):\s*(\d+):',  # Win filename, maybe starting with spaces
    r'([^\s]+):\s*(\d+):',     # filename or path, ltrim
    r'^\s*(\S.*?):\s*(\d+):',  # Win abs path with embedded spaces, ltrim
]

file_line_progs = None


def compile_progs():
    "Compile the patterns for matching to file name and line number."
    global file_line_progs
    file_line_progs = [re.compile(pat, re.IGNORECASE)
                       for pat in file_line_pats]


def file_line_helper(line):
    """Extract file name and line number from line of text.

    Check if line of text contains one of the file/line patterns.
    If it does and if the file and line are valid, return
    a tuple of the file name and line number.  If it doesn't match
    or if the file or line is invalid, return None.
    """
    if not file_line_progs:
        compile_progs()
    for prog in file_line_progs:
        match = prog.search(line)
        if match:
            filename, lineno = match.group(1, 2)
            try:
                f = open(filename, "r")
                f.close()
                break
            except OSError:
                continue
    else:
        return None
    try:
        return filename, int(lineno)
    except TypeError:
        return None


class OutputWindow(EditorWindow):
    """An editor window that can serve as an output file.

    Also the future base class for the Python shell window.
    This class has no input facilities.

    Adds binding to open a file at a line to the text widget.
    """

    # Our own right-button menu
    rmenu_specs = [
        ("Cut", "<<cut>>", "rmenu_check_cut"),
        ("Copy", "<<copy>>", "rmenu_check_copy"),
        ("Paste", "<<paste>>", "rmenu_check_paste"),
        (None, None, None),
        ("Go to file/line", "<<goto-file-line>>", None),
    ]

    allow_code_context = False

    def __init__(self, *args):
        EditorWindow.__init__(self, *args)
        self.text.bind("<<goto-file-line>>", self.goto_file_line)

    # Customize EditorWindow
    def ispythonsource(self, filename):
        "Python source is only part of output: do not colorize."
        return False

    def short_title(self):
        "Customize EditorWindow title."
        return "Output"

    def maybesave(self):
        "Customize EditorWindow to not display save file messagebox."
        return 'yes' if self.get_saved() else 'no'

    # Act as output file
    def write(self, s, tags=(), mark="insert"):
        """Write text to text widget.

        The text is inserted at the given index with the provided
        tags.  The text widget is then scrolled to make it visible
        and updated to display it, giving the effect of seeing each
        line as it is added.

        Args:
            s: Text to insert into text widget.
            tags: Tuple of tag strings to apply on the insert.
            mark: Index for the insert.

        Return:
            Length of text inserted.
        """
        if isinstance(s, bytes):
            s = s.decode(iomenu.encoding, "replace")
        self.text.insert(mark, s, tags)
        self.text.see(mark)
        self.text.update()
        return len(s)

    def writelines(self, lines):
        "Write each item in lines iterable."
        for line in lines:
            self.write(line)

    def flush(self):
        "No flushing needed as write() directly writes to widget."
        pass

    def showerror(self, *args, **kwargs):
        messagebox.showerror(*args, **kwargs)

    def goto_file_line(self, event=None):
        """Handle request to open file/line.

        If the selected or previous line in the output window
        contains a file name and line number, then open that file
        name in a new window and position on the line number.

        Otherwise, display an error messagebox.
        """
        line = self.text.get("insert linestart", "insert lineend")
        result = file_line_helper(line)
        if not result:
            # Try the previous line.  This is handy e.g. in tracebacks,
            # where you tend to right-click on the displayed source line
            line = self.text.get("insert -1line linestart",
                                 "insert -1line lineend")
            result = file_line_helper(line)
            if not result:
                self.showerror(
                    "No special line",
                    "The line you point at doesn't look like "
                    "a valid file name followed by a line number.",
                    parent=self.text)
                return
        filename, lineno = result
        self.flist.gotofileline(filename, lineno)


# These classes are currently not used but might come in handy
class OnDemandOutputWindow:

    tagdefs = {
        # XXX Should use IdlePrefs.ColorPrefs
        "stdout":  {"foreground": "blue"},
        "stderr":  {"foreground": "#007700"},
    }

    def __init__(self, flist):
        self.flist = flist
        self.owin = None

    def write(self, s, tags, mark):
        if not self.owin:
            self.setup()
        self.owin.write(s, tags, mark)

    def setup(self):
        self.owin = owin = OutputWindow(self.flist)
        text = owin.text
        for tag, cnf in self.tagdefs.items():
            if cnf:
                text.tag_configure(tag, **cnf)
        text.tag_raise('sel')
        self.write = self.owin.write

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

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 20 2024 08:32:20
root / linksafe
0755
Icons
--
May 20 2024 08:32:19
root / linksafe
0755
__pycache__
--
May 20 2024 08:32:19
root / linksafe
0755
idle_test
--
May 20 2024 08:32:19
root / linksafe
0755
CREDITS.txt
1.822 KB
June 05 2023 20:45:13
root / linksafe
0644
ChangeLog
55.039 KB
June 05 2023 20:45:13
root / linksafe
0644
HISTORY.txt
10.07 KB
June 05 2023 20:45:13
root / linksafe
0644
NEWS.txt
47.647 KB
June 05 2023 20:45:13
root / linksafe
0644
NEWS2x.txt
26.535 KB
June 05 2023 20:45:13
root / linksafe
0644
README.txt
9.374 KB
June 05 2023 20:45:13
root / linksafe
0644
TODO.txt
8.279 KB
June 05 2023 20:45:13
root / linksafe
0644
__init__.py
0.387 KB
April 17 2024 17:36:04
root / linksafe
0644
__main__.py
0.155 KB
April 17 2024 17:36:04
root / linksafe
0644
autocomplete.py
8.744 KB
April 17 2024 17:36:04
root / linksafe
0644
autocomplete_w.py
19.638 KB
April 17 2024 17:36:04
root / linksafe
0644
autoexpand.py
3.141 KB
April 17 2024 17:36:04
root / linksafe
0644
browser.py
8.119 KB
April 17 2024 17:36:04
root / linksafe
0644
calltip.py
6.17 KB
April 17 2024 17:36:04
root / linksafe
0644
calltip_w.py
6.99 KB
April 17 2024 17:36:04
root / linksafe
0644
codecontext.py
11.061 KB
April 17 2024 17:36:04
root / linksafe
0644
colorizer.py
12.688 KB
April 17 2024 17:36:04
root / linksafe
0644
config-extensions.def
2.213 KB
June 05 2023 20:45:13
root / linksafe
0644
config-highlight.def
2.797 KB
June 05 2023 20:45:13
root / linksafe
0644
config-keys.def
10.654 KB
June 05 2023 20:45:13
root / linksafe
0644
config-main.def
3.094 KB
June 05 2023 20:45:13
root / linksafe
0644
config.py
37.278 KB
April 17 2024 17:36:04
root / linksafe
0644
config_key.py
14.126 KB
April 17 2024 17:36:04
root / linksafe
0644
configdialog.py
102.074 KB
April 17 2024 17:36:04
root / linksafe
0644
debugger.py
18.656 KB
April 17 2024 17:36:04
root / linksafe
0644
debugger_r.py
11.855 KB
April 17 2024 17:36:04
root / linksafe
0644
debugobj.py
3.96 KB
April 17 2024 17:36:04
root / linksafe
0644
debugobj_r.py
1.057 KB
April 17 2024 17:36:04
root / linksafe
0644
delegator.py
1.019 KB
April 17 2024 17:36:04
root / linksafe
0644
dynoption.py
1.97 KB
April 17 2024 17:36:04
root / linksafe
0644
editor.py
64.076 KB
April 17 2024 17:36:04
root / linksafe
0644
extend.txt
3.557 KB
June 05 2023 20:45:13
root / linksafe
0644
filelist.py
3.805 KB
April 17 2024 17:36:04
root / linksafe
0644
format.py
15.407 KB
April 17 2024 17:36:04
root / linksafe
0644
grep.py
7.304 KB
April 17 2024 17:36:04
root / linksafe
0644
help.html
60.756 KB
June 05 2023 20:45:13
root / linksafe
0644
help.py
11.459 KB
April 17 2024 17:36:04
root / linksafe
0644
help_about.py
8.771 KB
April 17 2024 17:36:04
root / linksafe
0644
history.py
3.948 KB
April 17 2024 17:36:04
root / linksafe
0644
hyperparser.py
12.581 KB
April 17 2024 17:36:04
root / linksafe
0644
idle.py
0.443 KB
April 17 2024 17:36:04
root / linksafe
0644
idle.pyw
0.557 KB
June 05 2023 20:45:13
root / linksafe
0644
iomenu.py
20.148 KB
April 17 2024 17:36:04
root / linksafe
0644
macosx.py
9.436 KB
April 17 2024 17:36:04
root / linksafe
0644
mainmenu.py
3.826 KB
April 17 2024 17:36:04
root / linksafe
0644
multicall.py
18.211 KB
April 17 2024 17:36:04
root / linksafe
0644
outwin.py
5.652 KB
April 17 2024 17:36:04
root / linksafe
0644
parenmatch.py
7.035 KB
April 17 2024 17:36:04
root / linksafe
0644
pathbrowser.py
3.118 KB
April 17 2024 17:36:04
root / linksafe
0644
percolator.py
3.057 KB
April 17 2024 17:36:04
root / linksafe
0644
pyparse.py
19.479 KB
April 17 2024 17:36:04
root / linksafe
0644
pyshell.py
55.905 KB
April 17 2024 17:36:04
root / linksafe
0755
query.py
14.549 KB
April 17 2024 17:36:04
root / linksafe
0644
redirector.py
6.714 KB
April 17 2024 17:36:04
root / linksafe
0644
replace.py
9.657 KB
April 17 2024 17:36:04
root / linksafe
0644
rpc.py
20.642 KB
April 17 2024 17:36:04
root / linksafe
0644
run.py
19.817 KB
April 17 2024 17:36:04
root / linksafe
0644
runscript.py
8.575 KB
April 17 2024 17:36:04
root / linksafe
0644
scrolledlist.py
4.36 KB
April 17 2024 17:36:04
root / linksafe
0644
search.py
5.436 KB
April 17 2024 17:36:04
root / linksafe
0644
searchbase.py
7.36 KB
April 17 2024 17:36:04
root / linksafe
0644
searchengine.py
7.297 KB
April 17 2024 17:36:04
root / linksafe
0644
sidebar.py
13.267 KB
April 17 2024 17:36:04
root / linksafe
0644
squeezer.py
12.539 KB
April 17 2024 17:36:04
root / linksafe
0644
stackviewer.py
4.35 KB
April 17 2024 17:36:04
root / linksafe
0644
statusbar.py
1.407 KB
April 17 2024 17:36:04
root / linksafe
0644
textview.py
6.653 KB
April 17 2024 17:36:04
root / linksafe
0644
tooltip.py
6.411 KB
April 17 2024 17:36:04
root / linksafe
0644
tree.py
15.974 KB
April 17 2024 17:36:04
root / linksafe
0644
undo.py
10.787 KB
April 17 2024 17:36:04
root / linksafe
0644
window.py
2.555 KB
April 17 2024 17:36:04
root / linksafe
0644
zoomheight.py
4.104 KB
April 17 2024 17:36:04
root / linksafe
0644
zzdummy.py
0.938 KB
April 17 2024 17:36:04
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF