GRAYBYTE WORDPRESS FILE MANAGER6814

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/python35/lib64/python3.5/idlelib/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/python35/lib64/python3.5/idlelib//help.py
""" help.py: Implement the Idle help menu.
Contents are subject to revision at any time, without notice.


Help => About IDLE: diplay About Idle dialog

<to be moved here from aboutDialog.py>


Help => IDLE Help: Display help.html with proper formatting.
Doc/library/idle.rst (Sphinx)=> Doc/build/html/library/idle.html
(help.copy_strip)=> Lib/idlelib/help.html

HelpParser - Parse help.html and render to tk Text.

HelpText - Display formatted help.html.

HelpFrame - Contain text, scrollbar, and table-of-contents.
(This will be needed for display in a future tabbed window.)

HelpWindow - Display HelpFrame in a standalone window.

copy_strip - Copy idle.html to help.html, rstripping each line.

show_idlehelp - Create HelpWindow.  Called in EditorWindow.help_dialog.
"""
from html.parser import HTMLParser
from os.path import abspath, dirname, isdir, isfile, join
from platform import python_version
from tkinter import Tk, Toplevel, Frame, Text, Scrollbar, Menu, Menubutton
from tkinter import font as tkfont
from idlelib.configHandler import idleConf

use_ttk = False # until available to import
if use_ttk:
    from tkinter.ttk import Menubutton

## About IDLE ##


## IDLE Help ##

class HelpParser(HTMLParser):
    """Render help.html into a text widget.

    The overridden handle_xyz methods handle a subset of html tags.
    The supplied text should have the needed tag configurations.
    The behavior for unsupported tags, such as table, is undefined.
    If the tags generated by Sphinx change, this class, especially
    the handle_starttag and handle_endtags methods, might have to also.
    """
    def __init__(self, text):
        HTMLParser.__init__(self, convert_charrefs=True)
        self.text = text         # text widget we're rendering into
        self.tags = ''           # current block level text tags to apply
        self.chartags = ''       # current character level text tags
        self.show = False        # used so we exclude page navigation
        self.hdrlink = False     # used so we don't show header links
        self.level = 0           # indentation level
        self.pre = False         # displaying preformatted text
        self.hprefix = ''        # prefix such as '25.5' to strip from headings
        self.nested_dl = False   # if we're in a nested <dl>
        self.simplelist = False  # simple list (no double spacing)
        self.toc = []            # pair headers with text indexes for toc
        self.header = ''         # text within header tags for toc

    def indent(self, amt=1):
        self.level += amt
        self.tags = '' if self.level == 0 else 'l'+str(self.level)

    def handle_starttag(self, tag, attrs):
        "Handle starttags in help.html."
        class_ = ''
        for a, v in attrs:
            if a == 'class':
                class_ = v
        s = ''
        if tag == 'div' and class_ == 'section':
            self.show = True    # start of main content
        elif tag == 'div' and class_ == 'sphinxsidebar':
            self.show = False   # end of main content
        elif tag == 'p' and class_ != 'first':
            s = '\n\n'
        elif tag == 'span' and class_ == 'pre':
            self.chartags = 'pre'
        elif tag == 'span' and class_ == 'versionmodified':
            self.chartags = 'em'
        elif tag == 'em':
            self.chartags = 'em'
        elif tag in ['ul', 'ol']:
            if class_.find('simple') != -1:
                s = '\n'
                self.simplelist = True
            else:
                self.simplelist = False
            self.indent()
        elif tag == 'dl':
            if self.level > 0:
                self.nested_dl = True
        elif tag == 'li':
            s = '\n* ' if self.simplelist else '\n\n* '
        elif tag == 'dt':
            s = '\n\n' if not self.nested_dl else '\n'  # avoid extra line
            self.nested_dl = False
        elif tag == 'dd':
            self.indent()
            s = '\n'
        elif tag == 'pre':
            self.pre = True
            if self.show:
                self.text.insert('end', '\n\n')
            self.tags = 'preblock'
        elif tag == 'a' and class_ == 'headerlink':
            self.hdrlink = True
        elif tag == 'h1':
            self.tags = tag
        elif tag in ['h2', 'h3']:
            if self.show:
                self.header = ''
                self.text.insert('end', '\n\n')
            self.tags = tag
        if self.show:
            self.text.insert('end', s, (self.tags, self.chartags))

    def handle_endtag(self, tag):
        "Handle endtags in help.html."
        if tag in ['h1', 'h2', 'h3']:
            self.indent(0)  # clear tag, reset indent
            if self.show:
                self.toc.append((self.header, self.text.index('insert')))
        elif tag in ['span', 'em']:
            self.chartags = ''
        elif tag == 'a':
            self.hdrlink = False
        elif tag == 'pre':
            self.pre = False
            self.tags = ''
        elif tag in ['ul', 'dd', 'ol']:
            self.indent(amt=-1)

    def handle_data(self, data):
        "Handle date segments in help.html."
        if self.show and not self.hdrlink:
            d = data if self.pre else data.replace('\n', ' ')
            if self.tags == 'h1':
                self.hprefix = d[0:d.index(' ')]
            if self.tags in ['h1', 'h2', 'h3'] and self.hprefix != '':
                if d[0:len(self.hprefix)] == self.hprefix:
                    d = d[len(self.hprefix):].strip()
                self.header += d
            self.text.insert('end', d, (self.tags, self.chartags))


class HelpText(Text):
    "Display help.html."
    def __init__(self, parent, filename):
        "Configure tags and feed file to parser."
        uwide = idleConf.GetOption('main', 'EditorWindow', 'width', type='int')
        uhigh = idleConf.GetOption('main', 'EditorWindow', 'height', type='int')
        uhigh = 3 * uhigh // 4  # lines average 4/3 of editor line height
        Text.__init__(self, parent, wrap='word', highlightthickness=0,
                      padx=5, borderwidth=0, width=uwide, height=uhigh)

        normalfont = self.findfont(['TkDefaultFont', 'arial', 'helvetica'])
        fixedfont = self.findfont(['TkFixedFont', 'monaco', 'courier'])
        self['font'] = (normalfont, 12)
        self.tag_configure('em', font=(normalfont, 12, 'italic'))
        self.tag_configure('h1', font=(normalfont, 20, 'bold'))
        self.tag_configure('h2', font=(normalfont, 18, 'bold'))
        self.tag_configure('h3', font=(normalfont, 15, 'bold'))
        self.tag_configure('pre', font=(fixedfont, 12), background='#f6f6ff')
        self.tag_configure('preblock', font=(fixedfont, 10), lmargin1=25,
                borderwidth=1, relief='solid', background='#eeffcc')
        self.tag_configure('l1', lmargin1=25, lmargin2=25)
        self.tag_configure('l2', lmargin1=50, lmargin2=50)
        self.tag_configure('l3', lmargin1=75, lmargin2=75)
        self.tag_configure('l4', lmargin1=100, lmargin2=100)

        self.parser = HelpParser(self)
        with open(filename, encoding='utf-8') as f:
            contents = f.read()
        self.parser.feed(contents)
        self['state'] = 'disabled'

    def findfont(self, names):
        "Return name of first font family derived from names."
        for name in names:
            if name.lower() in (x.lower() for x in tkfont.names(root=self)):
                font = tkfont.Font(name=name, exists=True, root=self)
                return font.actual()['family']
            elif name.lower() in (x.lower()
                                  for x in tkfont.families(root=self)):
                return name


class HelpFrame(Frame):
    "Display html text, scrollbar, and toc."
    def __init__(self, parent, filename):
        Frame.__init__(self, parent)
        text = HelpText(self, filename)
        self['background'] = text['background']
        scroll = Scrollbar(self, command=text.yview)
        text['yscrollcommand'] = scroll.set
        self.rowconfigure(0, weight=1)
        self.columnconfigure(1, weight=1)  # text
        self.toc_menu(text).grid(column=0, row=0, sticky='nw')
        text.grid(column=1, row=0, sticky='nsew')
        scroll.grid(column=2, row=0, sticky='ns')

    def toc_menu(self, text):
        "Create table of contents as drop-down menu."
        toc = Menubutton(self, text='TOC')
        drop = Menu(toc, tearoff=False)
        for lbl, dex in text.parser.toc:
            drop.add_command(label=lbl, command=lambda dex=dex:text.yview(dex))
        toc['menu'] = drop
        return toc


class HelpWindow(Toplevel):
    "Display frame with rendered html."
    def __init__(self, parent, filename, title):
        Toplevel.__init__(self, parent)
        self.wm_title(title)
        self.protocol("WM_DELETE_WINDOW", self.destroy)
        HelpFrame(self, filename).grid(column=0, row=0, sticky='nsew')
        self.grid_columnconfigure(0, weight=1)
        self.grid_rowconfigure(0, weight=1)


def copy_strip():
    """Copy idle.html to idlelib/help.html, stripping trailing whitespace.

    Files with trailing whitespace cannot be pushed to the hg cpython
    repository.  For 3.x (on Windows), help.html is generated, after
    editing idle.rst in the earliest maintenance version, with
      sphinx-build -bhtml . build/html
      python_d.exe -c "from idlelib.help import copy_strip; copy_strip()"
    After refreshing TortoiseHG workshop to generate a diff,
    check  both the diff and displayed text.  Push the diff along with
    the idle.rst change and merge both into default (or an intermediate
    maintenance version).

    When the 'earlist' version gets its final maintenance release,
    do an update as described above, without editing idle.rst, to
    rebase help.html on the next version of idle.rst.  Do not worry
    about version changes as version is not displayed.  Examine other
    changes and the result of Help -> IDLE Help.

    If maintenance and default versions of idle.rst diverge, and
    merging does not go smoothly, then consider generating
    separate help.html files from separate idle.htmls.
    """
    src = join(abspath(dirname(dirname(dirname(__file__)))),
               'Doc', 'build', 'html', 'library', 'idle.html')
    dst = join(abspath(dirname(__file__)), 'help.html')
    with open(src, 'rb') as inn,\
         open(dst, 'wb') as out:
        for line in inn:
            out.write(line.rstrip() + b'\n')
    print('idle.html copied to help.html')

def show_idlehelp(parent):
    "Create HelpWindow; called from Idle Help event handler."
    filename = join(abspath(dirname(__file__)), 'help.html')
    if not isfile(filename):
        # try copy_strip, present message
        return
    HelpWindow(parent, filename, 'IDLE Help (%s)' % python_version())

if __name__ == '__main__':
    from idlelib.idle_test.htest import run
    run(show_idlehelp)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
August 12 2024 08:39:02
root / linksafe
0755
Icons
--
August 12 2024 08:39:02
root / linksafe
0755
__pycache__
--
August 12 2024 08:39:02
root / linksafe
0755
idle_test
--
August 12 2024 08:39:02
root / linksafe
0755
AutoComplete.py
8.985 KB
May 31 2024 13:51:41
root / linksafe
0644
AutoCompleteWindow.py
17.323 KB
May 31 2024 13:51:41
root / linksafe
0644
AutoExpand.py
3.315 KB
May 31 2024 13:51:41
root / linksafe
0644
Bindings.py
3.038 KB
May 31 2024 13:51:41
root / linksafe
0644
CREDITS.txt
1.822 KB
November 01 2019 23:02:34
root / linksafe
0644
CallTipWindow.py
5.894 KB
May 31 2024 13:51:41
root / linksafe
0644
CallTips.py
5.793 KB
May 31 2024 13:51:41
root / linksafe
0644
ChangeLog
55.066 KB
November 01 2019 23:02:34
root / linksafe
0644
ClassBrowser.py
6.835 KB
May 31 2024 13:51:41
root / linksafe
0644
CodeContext.py
8.161 KB
May 31 2024 13:51:41
root / linksafe
0644
ColorDelegator.py
10.35 KB
May 31 2024 13:51:41
root / linksafe
0644
Debugger.py
18.318 KB
May 31 2024 13:51:41
root / linksafe
0644
Delegator.py
1.019 KB
May 31 2024 13:51:41
root / linksafe
0644
EditorWindow.py
64.058 KB
May 31 2024 13:51:41
root / linksafe
0644
FileList.py
3.724 KB
May 31 2024 13:51:41
root / linksafe
0644
FormatParagraph.py
7.116 KB
May 31 2024 13:51:41
root / linksafe
0644
GrepDialog.py
5.004 KB
May 31 2024 13:51:41
root / linksafe
0644
HISTORY.txt
10.07 KB
November 01 2019 23:02:34
root / linksafe
0644
HyperParser.py
12.575 KB
May 31 2024 13:51:41
root / linksafe
0644
IOBinding.py
20.116 KB
May 31 2024 13:51:41
root / linksafe
0644
IdleHistory.py
3.957 KB
May 31 2024 13:51:41
root / linksafe
0644
MultiCall.py
18.136 KB
May 31 2024 13:51:41
root / linksafe
0644
MultiStatusBar.py
1.316 KB
May 31 2024 13:51:41
root / linksafe
0644
NEWS.txt
15.172 KB
November 01 2019 23:02:34
root / linksafe
0644
NEWS2x.txt
26.535 KB
November 01 2019 23:02:34
root / linksafe
0644
ObjectBrowser.py
3.882 KB
May 31 2024 13:51:41
root / linksafe
0644
OutputWindow.py
4.291 KB
May 31 2024 13:51:41
root / linksafe
0644
ParenMatch.py
6.557 KB
May 31 2024 13:51:41
root / linksafe
0644
PathBrowser.py
3.132 KB
May 31 2024 13:51:41
root / linksafe
0644
Percolator.py
3.104 KB
May 31 2024 13:51:41
root / linksafe
0644
PyParse.py
19.981 KB
May 31 2024 13:51:41
root / linksafe
0644
PyShell.py
57.467 KB
May 31 2024 13:51:41
root / linksafe
0755
README.txt
7.706 KB
November 01 2019 23:02:34
root / linksafe
0644
RemoteDebugger.py
11.726 KB
May 31 2024 13:51:41
root / linksafe
0644
RemoteObjectBrowser.py
0.941 KB
May 31 2024 13:51:41
root / linksafe
0644
ReplaceDialog.py
7.306 KB
May 31 2024 13:51:41
root / linksafe
0644
RstripExtension.py
1.025 KB
May 31 2024 13:51:41
root / linksafe
0644
ScriptBinding.py
7.872 KB
May 31 2024 13:51:41
root / linksafe
0644
ScrolledList.py
4.272 KB
May 31 2024 13:51:41
root / linksafe
0644
SearchDialog.py
3.054 KB
May 31 2024 13:51:41
root / linksafe
0644
SearchDialogBase.py
6.845 KB
May 31 2024 13:51:41
root / linksafe
0644
SearchEngine.py
7.31 KB
May 31 2024 13:51:41
root / linksafe
0644
StackViewer.py
4.322 KB
May 31 2024 13:51:41
root / linksafe
0644
TODO.txt
8.279 KB
November 01 2019 23:02:34
root / linksafe
0644
ToolTip.py
3.099 KB
May 31 2024 13:51:41
root / linksafe
0644
TreeWidget.py
14.672 KB
May 31 2024 13:51:41
root / linksafe
0644
UndoDelegator.py
10.723 KB
May 31 2024 13:51:41
root / linksafe
0644
WidgetRedirector.py
6.776 KB
May 31 2024 13:51:41
root / linksafe
0644
WindowList.py
2.414 KB
May 31 2024 13:51:41
root / linksafe
0644
ZoomHeight.py
1.27 KB
May 31 2024 13:51:41
root / linksafe
0644
__init__.py
0.327 KB
May 31 2024 13:51:41
root / linksafe
0644
__main__.py
0.155 KB
May 31 2024 13:51:41
root / linksafe
0644
aboutDialog.py
6.823 KB
May 31 2024 13:51:41
root / linksafe
0644
config-extensions.def
2.896 KB
November 01 2019 23:02:34
root / linksafe
0644
config-highlight.def
2.456 KB
November 01 2019 23:02:34
root / linksafe
0644
config-keys.def
7.595 KB
November 01 2019 23:02:34
root / linksafe
0644
config-main.def
2.503 KB
November 01 2019 23:02:34
root / linksafe
0644
configDialog.py
63.536 KB
May 31 2024 13:51:41
root / linksafe
0644
configHandler.py
31.69 KB
May 31 2024 13:51:41
root / linksafe
0644
configHelpSourceEdit.py
6.657 KB
May 31 2024 13:51:41
root / linksafe
0644
configSectionNameDialog.py
3.913 KB
May 31 2024 13:51:41
root / linksafe
0644
dynOptionMenuWidget.py
1.943 KB
May 31 2024 13:51:41
root / linksafe
0644
extend.txt
3.557 KB
November 01 2019 23:02:34
root / linksafe
0644
help.html
42.394 KB
November 01 2019 23:02:34
root / linksafe
0644
help.py
10.695 KB
May 31 2024 13:51:41
root / linksafe
0644
help.txt
17.48 KB
November 01 2019 23:02:34
root / linksafe
0644
idle.py
0.442 KB
May 31 2024 13:51:41
root / linksafe
0644
idle.pyw
0.557 KB
November 01 2019 23:02:34
root / linksafe
0644
idlever.py
0.405 KB
May 31 2024 13:51:41
root / linksafe
0644
keybindingDialog.py
12.125 KB
May 31 2024 13:51:41
root / linksafe
0644
macosxSupport.py
8.48 KB
May 31 2024 13:51:41
root / linksafe
0644
rpc.py
20.297 KB
May 31 2024 13:51:41
root / linksafe
0644
run.py
13.544 KB
May 31 2024 13:51:41
root / linksafe
0644
tabbedpages.py
17.986 KB
May 31 2024 13:51:41
root / linksafe
0644
textView.py
3.339 KB
May 31 2024 13:51:41
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF