Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
f558d5f2
Commit
f558d5f2
authored
May 28, 2016
by
Benjamin Peterson
Browse files
Options
Browse Files
Download
Plain Diff
merge heads
parents
6ca42602
6fa5bdc6
Changes
85
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
85 changed files
with
378 additions
and
360 deletions
+378
-360
Lib/idlelib/__main__.py
Lib/idlelib/__main__.py
+2
-2
Lib/idlelib/autocomplete.py
Lib/idlelib/autocomplete.py
+5
-5
Lib/idlelib/autocomplete_w.py
Lib/idlelib/autocomplete_w.py
+5
-5
Lib/idlelib/autoexpand.py
Lib/idlelib/autoexpand.py
+0
-0
Lib/idlelib/browser.py
Lib/idlelib/browser.py
+8
-8
Lib/idlelib/calltip_w.py
Lib/idlelib/calltip_w.py
+2
-2
Lib/idlelib/calltips.py
Lib/idlelib/calltips.py
+4
-4
Lib/idlelib/codecontext.py
Lib/idlelib/codecontext.py
+3
-3
Lib/idlelib/colorizer.py
Lib/idlelib/colorizer.py
+3
-3
Lib/idlelib/config.py
Lib/idlelib/config.py
+5
-5
Lib/idlelib/config_help.py
Lib/idlelib/config_help.py
+0
-0
Lib/idlelib/config_key.py
Lib/idlelib/config_key.py
+0
-0
Lib/idlelib/config_sec.py
Lib/idlelib/config_sec.py
+1
-1
Lib/idlelib/configdialog.py
Lib/idlelib/configdialog.py
+8
-8
Lib/idlelib/debugger.py
Lib/idlelib/debugger.py
+9
-7
Lib/idlelib/debugger_r.py
Lib/idlelib/debugger_r.py
+4
-4
Lib/idlelib/debugobj.py
Lib/idlelib/debugobj.py
+2
-2
Lib/idlelib/debugobj_r.py
Lib/idlelib/debugobj_r.py
+0
-0
Lib/idlelib/delegator.py
Lib/idlelib/delegator.py
+0
-0
Lib/idlelib/dynoption.py
Lib/idlelib/dynoption.py
+0
-0
Lib/idlelib/editor.py
Lib/idlelib/editor.py
+71
-58
Lib/idlelib/filelist.py
Lib/idlelib/filelist.py
+2
-2
Lib/idlelib/grep.py
Lib/idlelib/grep.py
+5
-5
Lib/idlelib/help.py
Lib/idlelib/help.py
+2
-2
Lib/idlelib/help_about.py
Lib/idlelib/help_about.py
+3
-3
Lib/idlelib/history.py
Lib/idlelib/history.py
+2
-2
Lib/idlelib/hyperparser.py
Lib/idlelib/hyperparser.py
+2
-2
Lib/idlelib/idle.py
Lib/idlelib/idle.py
+2
-2
Lib/idlelib/idle.pyw
Lib/idlelib/idle.pyw
+6
-6
Lib/idlelib/idle_test/htest.py
Lib/idlelib/idle_test/htest.py
+33
-33
Lib/idlelib/idle_test/mock_idle.py
Lib/idlelib/idle_test/mock_idle.py
+2
-2
Lib/idlelib/idle_test/test_autocomplete.py
Lib/idlelib/idle_test/test_autocomplete.py
+3
-3
Lib/idlelib/idle_test/test_autoexpand.py
Lib/idlelib/idle_test/test_autoexpand.py
+2
-2
Lib/idlelib/idle_test/test_calltips.py
Lib/idlelib/idle_test/test_calltips.py
+1
-1
Lib/idlelib/idle_test/test_config_help.py
Lib/idlelib/idle_test/test_config_help.py
+2
-2
Lib/idlelib/idle_test/test_config_sec.py
Lib/idlelib/idle_test/test_config_sec.py
+2
-2
Lib/idlelib/idle_test/test_configdialog.py
Lib/idlelib/idle_test/test_configdialog.py
+3
-3
Lib/idlelib/idle_test/test_delegator.py
Lib/idlelib/idle_test/test_delegator.py
+1
-1
Lib/idlelib/idle_test/test_editor.py
Lib/idlelib/idle_test/test_editor.py
+1
-1
Lib/idlelib/idle_test/test_grep.py
Lib/idlelib/idle_test/test_grep.py
+3
-3
Lib/idlelib/idle_test/test_history.py
Lib/idlelib/idle_test/test_history.py
+2
-2
Lib/idlelib/idle_test/test_hyperparser.py
Lib/idlelib/idle_test/test_hyperparser.py
+3
-3
Lib/idlelib/idle_test/test_iomenu.py
Lib/idlelib/idle_test/test_iomenu.py
+1
-1
Lib/idlelib/idle_test/test_paragraph.py
Lib/idlelib/idle_test/test_paragraph.py
+4
-4
Lib/idlelib/idle_test/test_parenmatch.py
Lib/idlelib/idle_test/test_parenmatch.py
+2
-2
Lib/idlelib/idle_test/test_pathbrowser.py
Lib/idlelib/idle_test/test_pathbrowser.py
+4
-4
Lib/idlelib/idle_test/test_percolator.py
Lib/idlelib/idle_test/test_percolator.py
+2
-2
Lib/idlelib/idle_test/test_redirector.py
Lib/idlelib/idle_test/test_redirector.py
+2
-2
Lib/idlelib/idle_test/test_replace.py
Lib/idlelib/idle_test/test_replace.py
+3
-3
Lib/idlelib/idle_test/test_rstrip.py
Lib/idlelib/idle_test/test_rstrip.py
+2
-2
Lib/idlelib/idle_test/test_search.py
Lib/idlelib/idle_test/test_search.py
+3
-3
Lib/idlelib/idle_test/test_searchbase.py
Lib/idlelib/idle_test/test_searchbase.py
+3
-3
Lib/idlelib/idle_test/test_searchengine.py
Lib/idlelib/idle_test/test_searchengine.py
+2
-2
Lib/idlelib/idle_test/test_textview.py
Lib/idlelib/idle_test/test_textview.py
+2
-2
Lib/idlelib/idle_test/test_undo.py
Lib/idlelib/idle_test/test_undo.py
+3
-3
Lib/idlelib/idle_test/test_warning.py
Lib/idlelib/idle_test/test_warning.py
+3
-3
Lib/idlelib/iomenu.py
Lib/idlelib/iomenu.py
+4
-1
Lib/idlelib/macosx.py
Lib/idlelib/macosx.py
+20
-20
Lib/idlelib/mainmenu.py
Lib/idlelib/mainmenu.py
+2
-2
Lib/idlelib/multicall.py
Lib/idlelib/multicall.py
+0
-0
Lib/idlelib/outwin.py
Lib/idlelib/outwin.py
+3
-3
Lib/idlelib/paragraph.py
Lib/idlelib/paragraph.py
+2
-2
Lib/idlelib/parenmatch.py
Lib/idlelib/parenmatch.py
+2
-2
Lib/idlelib/pathbrowser.py
Lib/idlelib/pathbrowser.py
+3
-3
Lib/idlelib/percolator.py
Lib/idlelib/percolator.py
+2
-2
Lib/idlelib/pyparse.py
Lib/idlelib/pyparse.py
+0
-0
Lib/idlelib/pyshell.py
Lib/idlelib/pyshell.py
+34
-34
Lib/idlelib/redirector.py
Lib/idlelib/redirector.py
+1
-1
Lib/idlelib/replace.py
Lib/idlelib/replace.py
+4
-4
Lib/idlelib/rstrip.py
Lib/idlelib/rstrip.py
+0
-0
Lib/idlelib/run.py
Lib/idlelib/run.py
+21
-21
Lib/idlelib/runscript.py
Lib/idlelib/runscript.py
+8
-8
Lib/idlelib/scrolledlist.py
Lib/idlelib/scrolledlist.py
+2
-2
Lib/idlelib/search.py
Lib/idlelib/search.py
+3
-3
Lib/idlelib/searchbase.py
Lib/idlelib/searchbase.py
+1
-1
Lib/idlelib/searchengine.py
Lib/idlelib/searchengine.py
+1
-1
Lib/idlelib/stackviewer.py
Lib/idlelib/stackviewer.py
+3
-3
Lib/idlelib/statusbar.py
Lib/idlelib/statusbar.py
+0
-0
Lib/idlelib/textview.py
Lib/idlelib/textview.py
+0
-0
Lib/idlelib/tooltip.py
Lib/idlelib/tooltip.py
+2
-2
Lib/idlelib/tree.py
Lib/idlelib/tree.py
+3
-3
Lib/idlelib/undo.py
Lib/idlelib/undo.py
+2
-2
Lib/idlelib/windows.py
Lib/idlelib/windows.py
+0
-0
Lib/idlelib/zoomheight.py
Lib/idlelib/zoomheight.py
+2
-2
Lib/turtledemo/__main__.py
Lib/turtledemo/__main__.py
+3
-3
No files found.
Lib/idlelib/__main__.py
View file @
f558d5f2
...
...
@@ -3,6 +3,6 @@ IDLE main entry point
Run IDLE as python -m idlelib
"""
import
idlelib.
PyS
hell
idlelib
.
PyS
hell
.
main
()
import
idlelib.
pys
hell
idlelib
.
pys
hell
.
main
()
# This file does not work for 2.7; See issue 24212.
Lib/idlelib/
AutoC
omplete.py
→
Lib/idlelib/
autoc
omplete.py
View file @
f558d5f2
"""
AutoC
omplete.py - An IDLE extension for automatically completing names.
"""
autoc
omplete.py - An IDLE extension for automatically completing names.
This extension can complete either attribute names of file names. It can pop
a window with all available names, for the user to select from.
...
...
@@ -7,7 +7,7 @@ import os
import
sys
import
string
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
# This string includes all chars that may be in an identifier
ID_CHARS
=
string
.
ascii_letters
+
string
.
digits
+
"_"
...
...
@@ -15,8 +15,8 @@ ID_CHARS = string.ascii_letters + string.digits + "_"
# These constants represent the two different types of completions
COMPLETE_ATTRIBUTES
,
COMPLETE_FILES
=
range
(
1
,
2
+
1
)
from
idlelib
import
AutoCompleteWindo
w
from
idlelib.
HyperP
arser
import
HyperParser
from
idlelib
import
autocomplete_
w
from
idlelib.
hyperp
arser
import
HyperParser
import
__main__
...
...
@@ -49,7 +49,7 @@ class AutoComplete:
self
.
_delayed_completion_index
=
None
def
_make_autocomplete_window
(
self
):
return
AutoCompleteWindo
w
.
AutoCompleteWindow
(
self
.
text
)
return
autocomplete_
w
.
AutoCompleteWindow
(
self
.
text
)
def
_remove_autocomplete_window
(
self
,
event
=
None
):
if
self
.
autocompletewindow
:
...
...
Lib/idlelib/
AutoCompleteWindo
w.py
→
Lib/idlelib/
autocomplete_
w.py
View file @
f558d5f2
"""
An auto-completion window for IDLE, used by the
AutoC
omplete extension
An auto-completion window for IDLE, used by the
autoc
omplete extension
"""
from
tkinter
import
*
from
idlelib.
MultiC
all
import
MC_SHIFT
from
idlelib.
AutoC
omplete
import
COMPLETE_FILES
,
COMPLETE_ATTRIBUTES
from
idlelib.
multic
all
import
MC_SHIFT
from
idlelib.
autoc
omplete
import
COMPLETE_FILES
,
COMPLETE_ATTRIBUTES
HIDE_VIRTUAL_EVENT_NAME
=
"<<autocompletewindow-hide>>"
HIDE_SEQUENCES
=
(
"<FocusOut>"
,
"<ButtonPress>"
)
...
...
@@ -34,8 +34,8 @@ class AutoCompleteWindow:
self
.
completions
=
None
# A list with more completions, or None
self
.
morecompletions
=
None
# The completion mode. Either
AutoC
omplete.COMPLETE_ATTRIBUTES or
#
AutoC
omplete.COMPLETE_FILES
# The completion mode. Either
autoc
omplete.COMPLETE_ATTRIBUTES or
#
autoc
omplete.COMPLETE_FILES
self
.
mode
=
None
# The current completion start, on the text box (a string)
self
.
start
=
None
...
...
Lib/idlelib/
AutoE
xpand.py
→
Lib/idlelib/
autoe
xpand.py
View file @
f558d5f2
File moved
Lib/idlelib/
ClassB
rowser.py
→
Lib/idlelib/
b
rowser.py
View file @
f558d5f2
...
...
@@ -14,13 +14,13 @@ import os
import
sys
import
pyclbr
from
idlelib
import
PyS
hell
from
idlelib.
WindowList
import
ListedToplevel
from
idlelib.
TreeWidget
import
TreeNode
,
TreeItem
,
ScrolledCanvas
from
idlelib.config
Handler
import
idleConf
from
idlelib
import
pys
hell
from
idlelib.
windows
import
ListedToplevel
from
idlelib.
tree
import
TreeNode
,
TreeItem
,
ScrolledCanvas
from
idlelib.config
import
idleConf
file_open
=
None
# Method...Item and Class...Item use this.
# Normally
PyShell.flist.open, but there is no PyS
hell.flist for htest.
# Normally
pyshell.flist.open, but there is no pys
hell.flist for htest.
class
ClassBrowser
:
...
...
@@ -32,7 +32,7 @@ class ClassBrowser:
"""
global
file_open
if
not
_htest
:
file_open
=
PyS
hell
.
flist
.
open
file_open
=
pys
hell
.
flist
.
open
self
.
name
=
name
self
.
file
=
os
.
path
.
join
(
path
[
0
],
self
.
name
+
".py"
)
self
.
_htest
=
_htest
...
...
@@ -95,7 +95,7 @@ class ModuleBrowserTreeItem(TreeItem):
return
if
not
os
.
path
.
exists
(
self
.
file
):
return
PyS
hell
.
flist
.
open
(
self
.
file
)
pys
hell
.
flist
.
open
(
self
.
file
)
def
IsExpandable
(
self
):
return
os
.
path
.
normcase
(
self
.
file
[
-
3
:])
==
".py"
...
...
@@ -226,7 +226,7 @@ def _class_browser(parent): #Wrapper for htest
file
=
sys
.
argv
[
0
]
dir
,
file
=
os
.
path
.
split
(
file
)
name
=
os
.
path
.
splitext
(
file
)[
0
]
flist
=
PyS
hell
.
PyShellFileList
(
parent
)
flist
=
pys
hell
.
PyShellFileList
(
parent
)
global
file_open
file_open
=
flist
.
open
ClassBrowser
(
flist
,
name
,
[
dir
],
_htest
=
True
)
...
...
Lib/idlelib/
CallTipWindo
w.py
→
Lib/idlelib/
calltip_
w.py
View file @
f558d5f2
"""A CallTip window class for Tkinter/IDLE.
After
ToolT
ip.py, which uses ideas gleaned from PySol
Used by the
CallT
ips IDLE extension.
After
toolt
ip.py, which uses ideas gleaned from PySol
Used by the
callt
ips IDLE extension.
"""
from
tkinter
import
Toplevel
,
Label
,
LEFT
,
SOLID
,
TclError
...
...
Lib/idlelib/
CallT
ips.py
→
Lib/idlelib/
callt
ips.py
View file @
f558d5f2
"""
CallT
ips.py - An IDLE Extension to Jog Your Memory
"""
callt
ips.py - An IDLE Extension to Jog Your Memory
Call Tips are floating windows which display function, class, and method
parameter and docstring information when you type an opening parenthesis, and
...
...
@@ -12,8 +12,8 @@ import sys
import
textwrap
import
types
from
idlelib
import
CallTipWindo
w
from
idlelib.
HyperP
arser
import
HyperParser
from
idlelib
import
calltip_
w
from
idlelib.
hyperp
arser
import
HyperParser
class
CallTips
:
...
...
@@ -37,7 +37,7 @@ class CallTips:
def
_make_tk_calltip_window
(
self
):
# See __init__ for usage
return
CallTipWindo
w
.
CallTip
(
self
.
text
)
return
calltip_
w
.
CallTip
(
self
.
text
)
def
_remove_calltip_window
(
self
,
event
=
None
):
if
self
.
active_calltip
:
...
...
Lib/idlelib/
CodeC
ontext.py
→
Lib/idlelib/
codec
ontext.py
View file @
f558d5f2
"""
CodeC
ontext - Extension to display the block context above the edit window
"""
codec
ontext - Extension to display the block context above the edit window
Once code has scrolled off the top of a window, it can be difficult to
determine which block you are in. This extension implements a pane at the top
of each IDLE edit window which provides block structure hints. These hints are
the lines which contain the block opening keywords, e.g. 'if', for the
enclosing block. The number of hint lines is determined by the numlines
variable in the
CodeC
ontext section of config-extensions.def. Lines which do
variable in the
codec
ontext section of config-extensions.def. Lines which do
not open blocks are not shown in the context hints pane.
"""
...
...
@@ -13,7 +13,7 @@ import tkinter
from
tkinter.constants
import
TOP
,
LEFT
,
X
,
W
,
SUNKEN
import
re
from
sys
import
maxsize
as
INFINITY
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
BLOCKOPENERS
=
{
"class"
,
"def"
,
"elif"
,
"else"
,
"except"
,
"finally"
,
"for"
,
"if"
,
"try"
,
"while"
,
"with"
}
...
...
Lib/idlelib/
ColorDelegato
r.py
→
Lib/idlelib/
colorize
r.py
View file @
f558d5f2
...
...
@@ -2,8 +2,8 @@ import time
import
re
import
keyword
import
builtins
from
idlelib.
D
elegator
import
Delegator
from
idlelib.config
Handler
import
idleConf
from
idlelib.
d
elegator
import
Delegator
from
idlelib.config
import
idleConf
DEBUG
=
False
...
...
@@ -235,7 +235,7 @@ class ColorDelegator(Delegator):
def
_color_delegator
(
parent
):
# htest #
from
tkinter
import
Toplevel
,
Text
from
idlelib.
P
ercolator
import
Percolator
from
idlelib.
p
ercolator
import
Percolator
top
=
Toplevel
(
parent
)
top
.
title
(
"Test ColorDelegator"
)
...
...
Lib/idlelib/config
Handler
.py
→
Lib/idlelib/config.py
View file @
f558d5f2
...
...
@@ -7,7 +7,7 @@ duplicate the defaults will be removed from the user's configuration files,
and if a file becomes empty, it will be deleted.
The contents of the user files may be altered using the Options/Configure IDLE
menu to access the configuration GUI (config
D
ialog.py), or manually.
menu to access the configuration GUI (config
d
ialog.py), or manually.
Throughout this module there is an emphasis on returning useable defaults
when a problem occurs in returning a requested configuration value back to
...
...
@@ -230,7 +230,7 @@ class IdleConf:
return
self
.
userCfg
[
configType
].
Get
(
section
,
option
,
type
=
type
,
raw
=
raw
)
except
ValueError
:
warning
=
(
'
\
n
Warning: config
Handler
.py - IdleConf.GetOption -
\
n
'
warning
=
(
'
\
n
Warning: config.py - IdleConf.GetOption -
\
n
'
' invalid %r value for configuration option %r
\
n
'
' from section %r: %r'
%
(
type
,
option
,
section
,
...
...
@@ -247,7 +247,7 @@ class IdleConf:
pass
#returning default, print warning
if
warn_on_default
:
warning
=
(
'
\
n
Warning: config
Handler
.py - IdleConf.GetOption -
\
n
'
warning
=
(
'
\
n
Warning: config.py - IdleConf.GetOption -
\
n
'
' problem retrieving configuration option %r
\
n
'
' from section %r.
\
n
'
' returning default value: %r'
%
...
...
@@ -358,7 +358,7 @@ class IdleConf:
for
element
in
theme
:
if
not
cfgParser
.
has_option
(
themeName
,
element
):
# Print warning that will return a default color
warning
=
(
'
\
n
Warning: config
Handler
.IdleConf.GetThemeDict'
warning
=
(
'
\
n
Warning: config.IdleConf.GetThemeDict'
' -
\
n
problem retrieving theme element %r'
'
\
n
from theme %r.
\
n
'
' returning default color: %r'
%
...
...
@@ -644,7 +644,7 @@ class IdleConf:
if
binding
:
keyBindings
[
event
]
=
binding
else
:
#we are going to return a default, print warning
warning
=
(
'
\
n
Warning: config
Handler
.py - IdleConf.GetCoreKeys'
warning
=
(
'
\
n
Warning: config.py - IdleConf.GetCoreKeys'
' -
\
n
problem retrieving key binding for event %r'
'
\
n
from key set %r.
\
n
'
' returning default value: %r'
%
...
...
Lib/idlelib/config
HelpSourceEdit
.py
→
Lib/idlelib/config
_help
.py
View file @
f558d5f2
File moved
Lib/idlelib/
keybindingDialog
.py
→
Lib/idlelib/
config_key
.py
View file @
f558d5f2
File moved
Lib/idlelib/config
SectionNameDialog
.py
→
Lib/idlelib/config
_sec
.py
View file @
f558d5f2
"""
Dialog that allows user to specify a new config file section name.
Used to get new highlight theme and keybinding set names.
The 'return value' for the dialog, used two placed in config
D
ialog.py,
The 'return value' for the dialog, used two placed in config
d
ialog.py,
is the .result attribute set in the Ok and Cancel methods.
"""
from
tkinter
import
*
...
...
Lib/idlelib/config
D
ialog.py
→
Lib/idlelib/config
d
ialog.py
View file @
f558d5f2
...
...
@@ -14,14 +14,14 @@ import tkinter.messagebox as tkMessageBox
import
tkinter.colorchooser
as
tkColorChooser
import
tkinter.font
as
tkFont
from
idlelib.config
Handler
import
idleConf
from
idlelib.dyn
OptionMenuWidget
import
DynOptionMenu
from
idlelib.
keybindingDialog
import
GetKeysDialog
from
idlelib.config
SectionNameDialog
import
GetCfgSectionNameDialog
from
idlelib.config
HelpSourceEdit
import
GetHelpSourceDialog
from
idlelib.config
import
idleConf
from
idlelib.dyn
option
import
DynOptionMenu
from
idlelib.
config_key
import
GetKeysDialog
from
idlelib.config
_sec
import
GetCfgSectionNameDialog
from
idlelib.config
_help
import
GetHelpSourceDialog
from
idlelib.tabbedpages
import
TabbedPageSet
from
idlelib.text
V
iew
import
view_text
from
idlelib
import
macosx
Support
from
idlelib.text
v
iew
import
view_text
from
idlelib
import
macosx
class
ConfigDialog
(
Toplevel
):
...
...
@@ -91,7 +91,7 @@ class ConfigDialog(Toplevel):
self
.
create_action_buttons
().
pack
(
side
=
BOTTOM
)
def
create_action_buttons
(
self
):
if
macosx
Support
.
isAquaTk
():
if
macosx
.
isAquaTk
():
# Changing the default padding on OSX results in unreadable
# text in the buttons
paddingArgs
=
{}
...
...
Lib/idlelib/
D
ebugger.py
→
Lib/idlelib/
d
ebugger.py
View file @
f558d5f2
import
os
import
bdb
from
tkinter
import
*
from
idlelib.
WindowList
import
ListedToplevel
from
idlelib.
ScrolledL
ist
import
ScrolledList
from
idlelib
import
macosx
Support
from
idlelib.
windows
import
ListedToplevel
from
idlelib.
scrolledl
ist
import
ScrolledList
from
idlelib
import
macosx
class
Idb
(
bdb
.
Bdb
):
...
...
@@ -34,8 +34,10 @@ class Idb(bdb.Bdb):
return
True
else
:
prev_frame
=
frame
.
f_back
if
prev_frame
.
f_code
.
co_filename
.
count
(
'Debugger.py'
):
# (that test will catch both Debugger.py and RemoteDebugger.py)
prev_name
=
prev_frame
.
f_code
.
co_filename
if
'idlelib'
in
prev_name
and
'debugger'
in
prev_name
:
# catch both idlelib/debugger.py and idlelib/debugger_r.py
# on both posix and windows
return
False
return
self
.
in_rpc_code
(
prev_frame
)
...
...
@@ -370,7 +372,7 @@ class Debugger:
class
StackViewer
(
ScrolledList
):
def
__init__
(
self
,
master
,
flist
,
gui
):
if
macosx
Support
.
isAquaTk
():
if
macosx
.
isAquaTk
():
# At least on with the stock AquaTk version on OSX 10.4 you'll
# get a shaking GUI that eventually kills IDLE if the width
# argument is specified.
...
...
@@ -502,7 +504,7 @@ class NamespaceViewer:
#
# There is also an obscure bug in sorted(dict) where the
# interpreter gets into a loop requesting non-existing dict[0],
# dict[1], dict[2], etc from the
RemoteDebugge
r.DictProxy.
# dict[1], dict[2], etc from the
debugger_
r.DictProxy.
###
keys_list
=
dict
.
keys
()
names
=
sorted
(
keys_list
)
...
...
Lib/idlelib/
RemoteDebugge
r.py
→
Lib/idlelib/
debugger_
r.py
View file @
f558d5f2
...
...
@@ -21,7 +21,7 @@ barrier, in particular frame and traceback objects.
"""
import
types
from
idlelib
import
D
ebugger
from
idlelib
import
d
ebugger
debugging
=
0
...
...
@@ -187,7 +187,7 @@ def start_debugger(rpchandler, gui_adap_oid):
"""
gui_proxy
=
GUIProxy
(
rpchandler
,
gui_adap_oid
)
idb
=
D
ebugger
.
Idb
(
gui_proxy
)
idb
=
d
ebugger
.
Idb
(
gui_proxy
)
idb_adap
=
IdbAdapter
(
idb
)
rpchandler
.
register
(
idb_adap_oid
,
idb_adap
)
return
idb_adap_oid
...
...
@@ -362,7 +362,7 @@ def start_remote_debugger(rpcclt, pyshell):
idb_adap_oid
=
rpcclt
.
remotecall
(
"exec"
,
"start_the_debugger"
,
\
(
gui_adap_oid
,),
{})
idb_proxy
=
IdbProxy
(
rpcclt
,
pyshell
,
idb_adap_oid
)
gui
=
D
ebugger
.
Debugger
(
pyshell
,
idb_proxy
)
gui
=
d
ebugger
.
Debugger
(
pyshell
,
idb_proxy
)
gui_adap
=
GUIAdapter
(
rpcclt
,
gui
)
rpcclt
.
register
(
gui_adap_oid
,
gui_adap
)
return
gui
...
...
@@ -373,7 +373,7 @@ def close_remote_debugger(rpcclt):
Request that the RPCServer shut down the subprocess debugger and link.
Unregister the GUIAdapter, which will cause a GC on the Idle process
debugger and RPC link objects. (The second reference to the debugger GUI
is deleted in
PyS
hell.close_remote_debugger().)
is deleted in
pys
hell.close_remote_debugger().)
"""
close_subprocess_debugger
(
rpcclt
)
...
...
Lib/idlelib/
ObjectBrowser
.py
→
Lib/idlelib/
debugobj
.py
View file @
f558d5f2
...
...
@@ -11,7 +11,7 @@
import
re
from
idlelib.
TreeWidget
import
TreeItem
,
TreeNode
,
ScrolledCanvas
from
idlelib.
tree
import
TreeItem
,
TreeNode
,
ScrolledCanvas
from
reprlib
import
Repr
...
...
@@ -126,7 +126,7 @@ def _object_browser(parent):
import
sys
from
tkinter
import
Tk
root
=
Tk
()
root
.
title
(
"Test
ObjectB
rowser"
)
root
.
title
(
"Test
debug object b
rowser"
)
width
,
height
,
x
,
y
=
list
(
map
(
int
,
re
.
split
(
'[x+]'
,
parent
.
geometry
())))
root
.
geometry
(
"+%d+%d"
%
(
x
,
y
+
150
))
root
.
configure
(
bd
=
0
,
bg
=
"yellow"
)
...
...
Lib/idlelib/
RemoteObjectBrowse
r.py
→
Lib/idlelib/
debugobj_
r.py
View file @
f558d5f2
File moved
Lib/idlelib/
D
elegator.py
→
Lib/idlelib/
d
elegator.py
View file @
f558d5f2
File moved
Lib/idlelib/dyn
OptionMenuWidget
.py
→
Lib/idlelib/dyn
option
.py
View file @
f558d5f2
File moved
Lib/idlelib/
EditorWindow
.py
→
Lib/idlelib/
editor
.py
View file @
f558d5f2
This diff is collapsed.
Click to expand it.
Lib/idlelib/
FileL
ist.py
→
Lib/idlelib/
filel
ist.py
View file @
f558d5f2
...
...
@@ -6,7 +6,7 @@ import tkinter.messagebox as tkMessageBox
class
FileList
:
# N.B. this import overridden in PyShellFileList.
from
idlelib.
EditorWindow
import
EditorWindow
from
idlelib.
editor
import
EditorWindow
def
__init__
(
self
,
root
):
self
.
root
=
root
...
...
@@ -111,7 +111,7 @@ class FileList:
def
_test
():
from
idlelib.
EditorWindow
import
fixwordbreaks
from
idlelib.
editor
import
fixwordbreaks
import
sys
root
=
Tk
()
fixwordbreaks
(
root
)
...
...
Lib/idlelib/
GrepDialog
.py
→
Lib/idlelib/
grep
.py
View file @
f558d5f2
...
...
@@ -4,14 +4,14 @@ import re # for htest
import
sys
from
tkinter
import
StringVar
,
BooleanVar
,
Checkbutton
# for GrepDialog
from
tkinter
import
Tk
,
Text
,
Button
,
SEL
,
END
# for htest
from
idlelib
import
SearchE
ngine
from
idlelib.
SearchDialogB
ase
import
SearchDialogBase
from
idlelib
import
searche
ngine
from
idlelib.
searchb
ase
import
SearchDialogBase
# Importing OutputWindow fails due to import loop
# EditorWindow -> GrepDialop -> OutputWindow -> EditorWindow
def
grep
(
text
,
io
=
None
,
flist
=
None
):
root
=
text
.
_root
()
engine
=
SearchE
ngine
.
get
(
root
)
engine
=
searche
ngine
.
get
(
root
)
if
not
hasattr
(
engine
,
"_grepdialog"
):
engine
.
_grepdialog
=
GrepDialog
(
root
,
engine
,
flist
)
dialog
=
engine
.
_grepdialog
...
...
@@ -67,7 +67,7 @@ class GrepDialog(SearchDialogBase):
if
not
path
:
self
.
top
.
bell
()
return
from
idlelib.
OutputWindow
import
OutputWindow
# leave here!
from
idlelib.
outwin
import
OutputWindow
# leave here!
save
=
sys
.
stdout
try
:
sys
.
stdout
=
OutputWindow
(
self
.
flist
)
...
...
@@ -131,7 +131,7 @@ class GrepDialog(SearchDialogBase):
def
_grep_dialog
(
parent
):
# htest #
from
idlelib.
PyS
hell
import
PyShellFileList
from
idlelib.
pys
hell
import
PyShellFileList
root
=
Tk
()
root
.
title
(
"Test GrepDialog"
)
width
,
height
,
x
,
y
=
list
(
map
(
int
,
re
.
split
(
'[x+]'
,
parent
.
geometry
())))
...
...
Lib/idlelib/help.py
View file @
f558d5f2
...
...
@@ -4,7 +4,7 @@ Contents are subject to revision at any time, without notice.
Help => About IDLE: diplay About Idle dialog
<to be moved here from
aboutDialog
.py>
<to be moved here from
help_about
.py>
Help => IDLE Help: Display help.html with proper formatting.
...
...
@@ -28,7 +28,7 @@ from html.parser import HTMLParser
from
os.path
import
abspath
,
dirname
,
isfile
,
join
from
tkinter
import
Toplevel
,
Frame
,
Text
,
Scrollbar
,
Menu
,
Menubutton
from
tkinter
import
font
as
tkfont
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
use_ttk
=
False
# until available to import
if
use_ttk
:
...
...
Lib/idlelib/
aboutDialog
.py
→
Lib/idlelib/
help_about
.py
View file @
f558d5f2
...
...
@@ -5,7 +5,7 @@
import
os
from
sys
import
version
from
tkinter
import
*
from
idlelib
import
text
V
iew
from
idlelib
import
text
v
iew
class
AboutDialog
(
Toplevel
):
"""Modal about dialog for idle
...
...
@@ -135,11 +135,11 @@ class AboutDialog(Toplevel):
def
display_printer_text
(
self
,
title
,
printer
):
printer
.
_Printer__setup
()
text
=
'
\
n
'
.
join
(
printer
.
_Printer__lines
)
text
V
iew
.
view_text
(
self
,
title
,
text
)
text
v
iew
.
view_text
(
self
,
title
,
text
)
def
display_file_text
(
self
,
title
,
filename
,
encoding
=
None
):
fn
=
os
.
path
.
join
(
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
)),
filename
)
text
V
iew
.
view_file
(
self
,
title
,
fn
,
encoding
)
text
v
iew
.
view_file
(
self
,
title
,
fn
,
encoding
)
def
Ok
(
self
,
event
=
None
):
self
.
destroy
()
...
...
Lib/idlelib/
IdleH
istory.py
→
Lib/idlelib/
h
istory.py
View file @
f558d5f2
"Implement Idle Shell history mechanism with History class"
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
class
History
:
''' Implement Idle Shell history mechanism.
store - Store source statement (called from
PyS
hell.resetoutput).
store - Store source statement (called from
pys
hell.resetoutput).
fetch - Fetch stored statement matching prefix already entered.
history_next - Bound to <<history-next>> event (default Alt-N).
history_prev - Bound to <<history-prev>> event (default Alt-P).
...
...
Lib/idlelib/
HyperP
arser.py
→
Lib/idlelib/
hyperp
arser.py
View file @
f558d5f2
...
...
@@ -7,7 +7,7 @@ the structure of code.
import
string
from
keyword
import
iskeyword
from
idlelib
import
PyP
arse
from
idlelib
import
pyp
arse
# all ASCII chars that may be in an identifier
...
...
@@ -30,7 +30,7 @@ class HyperParser:
self
.
editwin
=
editwin
self
.
text
=
text
=
editwin
.
text
parser
=
PyP
arse
.
Parser
(
editwin
.
indentwidth
,
editwin
.
tabwidth
)
parser
=
pyp
arse
.
Parser
(
editwin
.
indentwidth
,
editwin
.
tabwidth
)
def
index2line
(
index
):
return
int
(
float
(
index
))
...
...
Lib/idlelib/idle.py
View file @
f558d5f2
...
...
@@ -7,5 +7,5 @@ import sys
idlelib_dir
=
os
.
path
.
dirname
(
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
)))
sys
.
path
.
insert
(
0
,
idlelib_dir
)
import
idlelib.
PyS
hell
idlelib
.
PyS
hell
.
main
()
import
idlelib.
pys
hell
idlelib
.
pys
hell
.
main
()
Lib/idlelib/idle.pyw
View file @
f558d5f2
try
:
import
idlelib.
PyS
hell
import
idlelib.
pys
hell
except
ImportError
:
# IDLE is not installed, but maybe
PyS
hell is on sys.path:
from
.
import
PyS
hell
# IDLE is not installed, but maybe
pys
hell is on sys.path:
from
.
import
pys
hell
import
os
idledir
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
PyS
hell
.
__file__
))
idledir
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
pys
hell
.
__file__
))
if
idledir
!=
os
.
getcwd
():
# We're not in the IDLE directory, help the subprocess find run.py
pypath
=
os
.
environ
.
get
(
'PYTHONPATH'
,
''
)
...
...
@@ -12,6 +12,6 @@ except ImportError:
os
.
environ
[
'PYTHONPATH'
]
=
pypath
+
':'
+
idledir
else
:
os
.
environ
[
'PYTHONPATH'
]
=
idledir
PyS
hell
.
main
()
pys
hell
.
main
()
else
:
idlelib
.
PyS
hell
.
main
()
idlelib
.
pys
hell
.
main
()
Lib/idlelib/idle_test/htest.py
View file @
f558d5f2
...
...
@@ -59,19 +59,19 @@ msg: master window hints about testing the widget.
Modules and classes not being tested at the moment:
PyS
hell.PyShellEditorWindow
D
ebugger.Debugger
AutoCompleteWindo
w.AutoCompleteWindow
OutputWindow
.OutputWindow (indirectly being tested with grep test)
pys
hell.PyShellEditorWindow
d
ebugger.Debugger
autocomplete_
w.AutoCompleteWindow
outwin
.OutputWindow (indirectly being tested with grep test)
'''
from
importlib
import
import_module
from
idlelib.macosx
Support
import
_initializeTkVariantTests
from
idlelib.macosx
import
_initializeTkVariantTests
import
tkinter
as
tk
AboutDialog_spec
=
{
'file'
:
'
aboutDialog
'
,
'kwds'
:
{
'title'
:
'
aboutDialog
test'
,
'file'
:
'
help_about
'
,
'kwds'
:
{
'title'
:
'
help_about
test'
,
'_htest'
:
True
,
},
'msg'
:
"Test every button. Ensure Python, TK and IDLE versions "
...
...
@@ -79,14 +79,14 @@ AboutDialog_spec = {
}
_calltip_window_spec
=
{
'file'
:
'
CallTipWindo
w'
,
'file'
:
'
calltip_
w'
,
'kwds'
:
{},
'msg'
:
"Typing '(' should display a calltip.
\
n
"
"Typing ') should hide the calltip.
\
n
"
}
_class_browser_spec
=
{
'file'
:
'
ClassB
rowser'
,
'file'
:
'
b
rowser'
,
'kwds'
:
{},
'msg'
:
"Inspect names of module, class(with superclass if "
"applicable), methods and functions.
\
n
Toggle nested items.
\
n
"
...
...
@@ -95,7 +95,7 @@ _class_browser_spec = {
}
_color_delegator_spec
=
{
'file'
:
'
ColorDelegato
r'
,
'file'
:
'
colorize
r'
,
'kwds'
:
{},
'msg'
:
"The text is sample Python code.
\
n
"
"Ensure components like comments, keywords, builtins,
\
n
"
...
...
@@ -104,7 +104,7 @@ _color_delegator_spec = {
}
ConfigDialog_spec
=
{
'file'
:
'config
D
ialog'
,
'file'
:
'config
d
ialog'
,
'kwds'
:
{
'title'
:
'ConfigDialogTest'
,
'_htest'
:
True
,},
'msg'
:
"IDLE preferences dialog.
\
n
"
...
...
@@ -121,7 +121,7 @@ ConfigDialog_spec = {
# TODO Improve message
_dyn_option_menu_spec
=
{
'file'
:
'dyn
OptionMenuWidget
'
,
'file'
:
'dyn
option
'
,
'kwds'
:
{},
'msg'
:
"Select one of the many options in the 'old option set'.
\
n
"
"Click the button to change the option set.
\
n
"
...
...
@@ -130,14 +130,14 @@ _dyn_option_menu_spec = {
# TODO edit wrapper
_editor_window_spec
=
{
'file'
:
'
EditorWindow
'
,
'file'
:
'
editor
'
,
'kwds'
:
{},
'msg'
:
"Test editor functions of interest.
\
n
"
"Best to close editor first."
}
GetCfgSectionNameDialog_spec
=
{
'file'
:
'config
SectionNameDialog
'
,
'file'
:
'config
_sec
'
,
'kwds'
:
{
'title'
:
'Get Name'
,
'message'
:
'Enter something'
,
'used_names'
:
{
'abc'
},
...
...
@@ -149,7 +149,7 @@ GetCfgSectionNameDialog_spec = {
}
GetHelpSourceDialog_spec
=
{
'file'
:
'config
HelpSourceEdit
'
,
'file'
:
'config
_help
'
,
'kwds'
:
{
'title'
:
'Get helpsource'
,
'_htest'
:
True
},
'msg'
:
"Enter menu item name and help file path
\
n
"
...
...
@@ -162,7 +162,7 @@ GetHelpSourceDialog_spec = {
# Update once issue21519 is resolved.
GetKeysDialog_spec
=
{
'file'
:
'
keybindingDialog
'
,
'file'
:
'
config_key
'
,
'kwds'
:
{
'title'
:
'Test keybindings'
,
'action'
:
'find-again'
,
'currentKeySequences'
:
[
''
]
,
...
...
@@ -177,7 +177,7 @@ GetKeysDialog_spec = {
}
_grep_dialog_spec
=
{
'file'
:
'
GrepDialog
'
,
'file'
:
'
grep
'
,
'kwds'
:
{},
'msg'
:
"Click the 'Show GrepDialog' button.
\
n
"
"Test the various 'Find-in-files' functions.
\
n
"
...
...
@@ -187,7 +187,7 @@ _grep_dialog_spec = {
}
_io_binding_spec
=
{
'file'
:
'
IOBinding
'
,
'file'
:
'
iomenu
'
,
'kwds'
:
{},
'msg'
:
"Test the following bindings.
\
n
"
"<Control-o> to open file from dialog.
\
n
"
...
...
@@ -200,7 +200,7 @@ _io_binding_spec = {
}
_multi_call_spec
=
{
'file'
:
'
MultiC
all'
,
'file'
:
'
multic
all'
,
'kwds'
:
{},
'msg'
:
"The following actions should trigger a print to console or IDLE"
" Shell.
\
n
Entering and leaving the text area, key entry, "
...
...
@@ -210,14 +210,14 @@ _multi_call_spec = {
}
_multistatus_bar_spec
=
{
'file'
:
'
MultiStatusB
ar'
,
'file'
:
'
statusb
ar'
,
'kwds'
:
{},
'msg'
:
"Ensure presence of multi-status bar below text area.
\
n
"
"Click 'Update Status' to change the multi-status text"
}
_object_browser_spec
=
{
'file'
:
'
ObjectBrowser
'
,
'file'
:
'
debugobj
'
,
'kwds'
:
{},
'msg'
:
"Double click on items upto the lowest level.
\
n
"
"Attributes of the objects and related information "
...
...
@@ -225,7 +225,7 @@ _object_browser_spec = {
}
_path_browser_spec
=
{
'file'
:
'
PathB
rowser'
,
'file'
:
'
pathb
rowser'
,
'kwds'
:
{},
'msg'
:
"Test for correct display of all paths in sys.path.
\
n
"
"Toggle nested items upto the lowest level.
\
n
"
...
...
@@ -234,7 +234,7 @@ _path_browser_spec = {
}
_percolator_spec
=
{
'file'
:
'
P
ercolator'
,
'file'
:
'
p
ercolator'
,
'kwds'
:
{},
'msg'
:
"There are two tracers which can be toggled using a checkbox.
\
n
"
"Toggling a tracer 'on' by checking it should print tracer"
...
...
@@ -245,7 +245,7 @@ _percolator_spec = {
}
_replace_dialog_spec
=
{
'file'
:
'
ReplaceDialog
'
,
'file'
:
'
replace
'
,
'kwds'
:
{},
'msg'
:
"Click the 'Replace' button.
\
n
"
"Test various replace options in the 'Replace dialog'.
\
n
"
...
...
@@ -253,7 +253,7 @@ _replace_dialog_spec = {
}
_search_dialog_spec
=
{
'file'
:
'
SearchDialog
'
,
'file'
:
'
search
'
,
'kwds'
:
{},
'msg'
:
"Click the 'Search' button.
\
n
"
"Test various search options in the 'Search dialog'.
\
n
"
...
...
@@ -261,7 +261,7 @@ _search_dialog_spec = {
}
_scrolled_list_spec
=
{
'file'
:
'
ScrolledL
ist'
,
'file'
:
'
scrolledl
ist'
,
'kwds'
:
{},
'msg'
:
"You should see a scrollable list of items
\
n
"
"Selecting (clicking) or double clicking an item "
...
...
@@ -277,7 +277,7 @@ show_idlehelp_spec = {
}
_stack_viewer_spec
=
{
'file'
:
'
StackV
iewer'
,
'file'
:
'
stackv
iewer'
,
'kwds'
:
{},
'msg'
:
"A stacktrace for a NameError exception.
\
n
"
"Expand 'idlelib ...' and '<locals>'.
\
n
"
...
...
@@ -295,8 +295,8 @@ _tabbed_pages_spec = {
}
TextViewer_spec
=
{
'file'
:
'text
V
iew'
,
'kwds'
:
{
'title'
:
'Test text
V
iew'
,
'file'
:
'text
v
iew'
,
'kwds'
:
{
'title'
:
'Test text
v
iew'
,
'text'
:
'The quick brown fox jumps over the lazy dog.
\
n
'
*
35
,
'_htest'
:
True
},
'msg'
:
"Test for read-only property of text.
\
n
"
...
...
@@ -304,21 +304,21 @@ TextViewer_spec = {
}
_tooltip_spec
=
{
'file'
:
'
ToolT
ip'
,
'file'
:
'
toolt
ip'
,
'kwds'
:
{},
'msg'
:
"Place mouse cursor over both the buttons
\
n
"
"A tooltip should appear with some text."
}
_tree_widget_spec
=
{
'file'
:
'
TreeWidget
'
,
'file'
:
'
tree
'
,
'kwds'
:
{},
'msg'
:
"The canvas is scrollable.
\
n
"
"Click on folders upto to the lowest level."
}
_undo_delegator_spec
=
{
'file'
:
'
UndoDelegator
'
,
'file'
:
'
undo
'
,
'kwds'
:
{},
'msg'
:
"Click [Undo] to undo any action.
\
n
"
"Click [Redo] to redo any action.
\
n
"
...
...
@@ -327,7 +327,7 @@ _undo_delegator_spec = {
}
_widget_redirector_spec
=
{
'file'
:
'
WidgetR
edirector'
,
'file'
:
'
r
edirector'
,
'kwds'
:
{},
'msg'
:
"Every text insert should be printed to the console."
"or the IDLE shell."
...
...
Lib/idlelib/idle_test/mock_idle.py
View file @
f558d5f2
...
...
@@ -33,7 +33,7 @@ class Func:
class
Editor
:
'''Minimally imitate
EditorWindow
.EditorWindow class.
'''Minimally imitate
editor
.EditorWindow class.
'''
def
__init__
(
self
,
flist
=
None
,
filename
=
None
,
key
=
None
,
root
=
None
):
self
.
text
=
Text
()
...
...
@@ -46,7 +46,7 @@ class Editor:
class
UndoDelegator
:
'''Minimally imitate
UndoDelegator,
UndoDelegator class.
'''Minimally imitate
undo.
UndoDelegator class.
'''
# A real undo block is only needed for user interaction.
def
undo_block_start
(
*
args
):
...
...
Lib/idlelib/idle_test/test_autocomplete.py
View file @
f558d5f2
...
...
@@ -2,9 +2,9 @@ import unittest
from
test.support
import
requires
from
tkinter
import
Tk
,
Text
import
idlelib.
AutoC
omplete
as
ac
import
idlelib.
AutoCompleteWindo
w
as
acw
import
idlelib.macosx
Support
as
mac
import
idlelib.
autoc
omplete
as
ac
import
idlelib.
autocomplete_
w
as
acw
import
idlelib.macosx
as
mac
from
idlelib.idle_test.mock_idle
import
Func
from
idlelib.idle_test.mock_tk
import
Event
...
...
Lib/idlelib/idle_test/test_autoexpand.py
View file @
f558d5f2
"""Unit tests for idlelib.
AutoE
xpand"""
"""Unit tests for idlelib.
autoe
xpand"""
import
unittest
from
test.support
import
requires
from
tkinter
import
Text
,
Tk
#from idlelib.idle_test.mock_tk import Text
from
idlelib.
AutoE
xpand
import
AutoExpand
from
idlelib.
autoe
xpand
import
AutoExpand
class
Dummy_Editwin
:
...
...
Lib/idlelib/idle_test/test_calltips.py
View file @
f558d5f2
import
unittest
import
idlelib.
CallT
ips
as
ct
import
idlelib.
callt
ips
as
ct
import
textwrap
import
types
...
...
Lib/idlelib/idle_test/test_config_help.py
View file @
f558d5f2
"""Unittests for idlelib.config
HelpSourceEdit
"""
"""Unittests for idlelib.config
_help.py
"""
import
unittest
from
idlelib.idle_test.mock_tk
import
Var
,
Mbox
,
Entry
from
idlelib
import
config
HelpSourceEdit
as
help_dialog_module
from
idlelib
import
config
_help
as
help_dialog_module
help_dialog
=
help_dialog_module
.
GetHelpSourceDialog
...
...
Lib/idlelib/idle_test/test_config_
name
.py
→
Lib/idlelib/idle_test/test_config_
sec
.py
View file @
f558d5f2
"""Unit tests for idlelib.config
SectionNameDialog
"""
"""Unit tests for idlelib.config
_sec
"""
import
unittest
from
idlelib.idle_test.mock_tk
import
Var
,
Mbox
from
idlelib
import
config
SectionNameDialog
as
name_dialog_module
from
idlelib
import
config
_sec
as
name_dialog_module
name_dialog
=
name_dialog_module
.
GetCfgSectionNameDialog
...
...
Lib/idlelib/idle_test/test_configdialog.py
View file @
f558d5f2
'''Unittests for idlelib/config
Handler
.py
'''Unittests for idlelib/config.py
Coverage: 46% just by creating dialog. The other half is change code.
...
...
@@ -6,8 +6,8 @@ Coverage: 46% just by creating dialog. The other half is change code.
import
unittest
from
test.support
import
requires
from
tkinter
import
Tk
from
idlelib.config
D
ialog
import
ConfigDialog
from
idlelib.macosx
Support
import
_initializeTkVariantTests
from
idlelib.config
d
ialog
import
ConfigDialog
from
idlelib.macosx
import
_initializeTkVariantTests
class
ConfigDialogTest
(
unittest
.
TestCase
):
...
...
Lib/idlelib/idle_test/test_delegator.py
View file @
f558d5f2
import
unittest
from
idlelib.
D
elegator
import
Delegator
from
idlelib.
d
elegator
import
Delegator
class
DelegatorTest
(
unittest
.
TestCase
):
...
...
Lib/idlelib/idle_test/test_editor.py
View file @
f558d5f2
import
unittest
from
tkinter
import
Tk
,
Text
from
idlelib.
EditorWindow
import
EditorWindow
from
idlelib.
editor
import
EditorWindow
from
test.support
import
requires
class
Editor_func_test
(
unittest
.
TestCase
):
...
...
Lib/idlelib/idle_test/test_grep.py
View file @
f558d5f2
""" !Changing this line will break Test_findfile.test_found!
Non-gui unit tests for
idlelib
.GrepDialog methods.
Non-gui unit tests for
grep
.GrepDialog methods.
dummy_command calls grep_it calls findfiles.
An exception raised in one method will fail callers.
Otherwise, tests are mostly independent.
...
...
@@ -8,7 +8,7 @@ Otherwise, tests are mostly independent.
import
unittest
from
test.support
import
captured_stdout
from
idlelib.idle_test.mock_tk
import
Var
from
idlelib.
GrepDialog
import
GrepDialog
from
idlelib.
grep
import
GrepDialog
import
re
class
Dummy_searchengine
:
...
...
@@ -72,7 +72,7 @@ class Grep_itTest(unittest.TestCase):
self
.
assertTrue
(
lines
[
4
].
startswith
(
'(Hint:'
))
class
Default_commandTest
(
unittest
.
TestCase
):
# To write this, mo
de OutputWindow
import to top of GrepDialog
# To write this, mo
ve outwin
import to top of GrepDialog
# so it can be replaced by captured_stdout in class setup/teardown.
pass
...
...
Lib/idlelib/idle_test/test_
idle
history.py
→
Lib/idlelib/idle_test/test_history.py
View file @
f558d5f2
...
...
@@ -4,8 +4,8 @@ from test.support import requires
import
tkinter
as
tk
from
tkinter
import
Text
as
tkText
from
idlelib.idle_test.mock_tk
import
Text
as
mkText
from
idlelib.
IdleH
istory
import
History
from
idlelib.config
Handler
import
idleConf
from
idlelib.
h
istory
import
History
from
idlelib.config
import
idleConf
line1
=
'a = 7'
line2
=
'b = a'
...
...
Lib/idlelib/idle_test/test_hyperparser.py
View file @
f558d5f2
"""Unittest for idlelib.
HyperParser
"""
"""Unittest for idlelib.
hyperparser.py.
"""
import
unittest
from
test.support
import
requires
from
tkinter
import
Tk
,
Text
from
idlelib.
EditorWindow
import
EditorWindow
from
idlelib.
HyperP
arser
import
HyperParser
from
idlelib.
editor
import
EditorWindow
from
idlelib.
hyperp
arser
import
HyperParser
class
DummyEditwin
:
def
__init__
(
self
,
text
):
...
...
Lib/idlelib/idle_test/test_io.py
→
Lib/idlelib/idle_test/test_io
menu
.py
View file @
f558d5f2
import
unittest
import
io
from
idlelib.
PyS
hell
import
PseudoInputFile
,
PseudoOutputFile
from
idlelib.
pys
hell
import
PseudoInputFile
,
PseudoOutputFile
class
S
(
str
):
...
...
Lib/idlelib/idle_test/test_
format
paragraph.py
→
Lib/idlelib/idle_test/test_paragraph.py
View file @
f558d5f2
# Test the functions and main class method of
FormatP
aragraph.py
# Test the functions and main class method of
p
aragraph.py
import
unittest
from
idlelib
import
FormatP
aragraph
as
fp
from
idlelib.
EditorWindow
import
EditorWindow
from
idlelib
import
p
aragraph
as
fp
from
idlelib.
editor
import
EditorWindow
from
tkinter
import
Tk
,
Text
from
test.support
import
requires
...
...
@@ -38,7 +38,7 @@ class Is_Get_Test(unittest.TestCase):
class
FindTest
(
unittest
.
TestCase
):
"""Test the find_paragraph function in
FormatParagraph
.
"""Test the find_paragraph function in
paragraph module
.
Using the runcase() function, find_paragraph() is called with 'mark' set at
multiple indexes before and inside the test paragraph.
...
...
Lib/idlelib/idle_test/test_parenmatch.py
View file @
f558d5f2
"""Test idlelib.
ParenM
atch."""
"""Test idlelib.
parenm
atch."""
# This must currently be a gui test because ParenMatch methods use
# several text methods not defined on idlelib.idle_test.mock_tk.Text.
from
test.support
import
requires
...
...
@@ -7,7 +7,7 @@ requires('gui')
import
unittest
from
unittest.mock
import
Mock
from
tkinter
import
Tk
,
Text
from
idlelib.
ParenM
atch
import
ParenMatch
from
idlelib.
parenm
atch
import
ParenMatch
class
DummyEditwin
:
def
__init__
(
self
,
text
):
...
...
Lib/idlelib/idle_test/test_pathbrowser.py
View file @
f558d5f2
...
...
@@ -2,13 +2,13 @@ import unittest
import
os
import
sys
import
idlelib
from
idlelib
import
PathB
rowser
from
idlelib
import
pathb
rowser
class
PathBrowserTest
(
unittest
.
TestCase
):
def
test_DirBrowserTreeItem
(
self
):
# Issue16226 - make sure that getting a sublist works
d
=
PathB
rowser
.
DirBrowserTreeItem
(
''
)
d
=
pathb
rowser
.
DirBrowserTreeItem
(
''
)
d
.
GetSubList
()
self
.
assertEqual
(
''
,
d
.
GetText
())
...
...
@@ -17,11 +17,11 @@ class PathBrowserTest(unittest.TestCase):
self
.
assertEqual
(
d
.
ispackagedir
(
dir
+
'/Icons'
),
False
)
def
test_PathBrowserTreeItem
(
self
):
p
=
PathB
rowser
.
PathBrowserTreeItem
()
p
=
pathb
rowser
.
PathBrowserTreeItem
()
self
.
assertEqual
(
p
.
GetText
(),
'sys.path'
)
sub
=
p
.
GetSubList
()
self
.
assertEqual
(
len
(
sub
),
len
(
sys
.
path
))
self
.
assertEqual
(
type
(
sub
[
0
]),
PathB
rowser
.
DirBrowserTreeItem
)
self
.
assertEqual
(
type
(
sub
[
0
]),
pathb
rowser
.
DirBrowserTreeItem
)
if
__name__
==
'__main__'
:
unittest
.
main
(
verbosity
=
2
,
exit
=
False
)
Lib/idlelib/idle_test/test_percolator.py
View file @
f558d5f2
'''Test
Percolator
'''
'''Test
percolator.py.
'''
from
test.support
import
requires
requires
(
'gui'
)
import
unittest
from
tkinter
import
Text
,
Tk
,
END
from
idlelib.
P
ercolator
import
Percolator
,
Delegator
from
idlelib.
p
ercolator
import
Percolator
,
Delegator
class
MyFilter
(
Delegator
):
...
...
Lib/idlelib/idle_test/test_
widgetredi
r.py
→
Lib/idlelib/idle_test/test_
redirecto
r.py
View file @
f558d5f2
"""Unittest for idlelib.
WidgetR
edirector
"""Unittest for idlelib.
r
edirector
100% coverage
"""
...
...
@@ -6,7 +6,7 @@ from test.support import requires
import
unittest
from
idlelib.idle_test.mock_idle
import
Func
from
tkinter
import
Tk
,
Text
,
TclError
from
idlelib.
WidgetR
edirector
import
WidgetRedirector
from
idlelib.
r
edirector
import
WidgetRedirector
class
InitCloseTest
(
unittest
.
TestCase
):
...
...
Lib/idlelib/idle_test/test_replace
dialog
.py
→
Lib/idlelib/idle_test/test_replace.py
View file @
f558d5f2
"""Unittest for idlelib.
ReplaceDialog
"""
"""Unittest for idlelib.
replace.py
"""
from
test.support
import
requires
requires
(
'gui'
)
...
...
@@ -6,8 +6,8 @@ import unittest
from
unittest.mock
import
Mock
from
tkinter
import
Tk
,
Text
from
idlelib.idle_test.mock_tk
import
Mbox
import
idlelib.
SearchE
ngine
as
se
import
idlelib.
ReplaceDialog
as
rd
import
idlelib.
searche
ngine
as
se
import
idlelib.
replace
as
rd
orig_mbox
=
se
.
tkMessageBox
showerror
=
Mbox
.
showerror
...
...
Lib/idlelib/idle_test/test_rstrip.py
View file @
f558d5f2
import
unittest
import
idlelib.
RstripExtension
as
rs
import
idlelib.
rstrip
as
rs
from
idlelib.idle_test.mock_idle
import
Editor
class
rstripTest
(
unittest
.
TestCase
):
...
...
@@ -21,7 +21,7 @@ class rstripTest(unittest.TestCase):
def
test_rstrip_multiple
(
self
):
editor
=
Editor
()
# Uncomment following to verify that test passes with real widgets.
## from idlelib.
EditorWindow
import EditorWindow as Editor
## from idlelib.
editor
import EditorWindow as Editor
## from tkinter import Tk
## editor = Editor(root=Tk())
text
=
editor
.
text
...
...
Lib/idlelib/idle_test/test_search
dialog
.py
→
Lib/idlelib/idle_test/test_search.py
View file @
f558d5f2
"""Test SearchDialog class in
SearchDialogue
.py"""
"""Test SearchDialog class in
idlelib.search
.py"""
# Does not currently test the event handler wrappers.
# A usage test should simulate clicks and check hilighting.
...
...
@@ -11,8 +11,8 @@ requires('gui')
import
unittest
import
tkinter
as
tk
from
tkinter
import
BooleanVar
import
idlelib.
SearchE
ngine
as
se
import
idlelib.
SearchDialog
as
sd
import
idlelib.
searche
ngine
as
se
import
idlelib.
search
as
sd
class
SearchDialogTest
(
unittest
.
TestCase
):
...
...
Lib/idlelib/idle_test/test_search
dialog
base.py
→
Lib/idlelib/idle_test/test_searchbase.py
View file @
f558d5f2
'''Unittests for idlelib/
SearchDialogB
ase.py
'''Unittests for idlelib/
searchb
ase.py
Coverage: 99%. The only thing not covered is inconsequential --
testing skipping of suite when self.needwrapbutton is false.
...
...
@@ -7,8 +7,8 @@ testing skipping of suite when self.needwrapbutton is false.
import
unittest
from
test.support
import
requires
from
tkinter
import
Tk
,
Toplevel
,
Frame
##, BooleanVar, StringVar
from
idlelib
import
SearchE
ngine
as
se
from
idlelib
import
SearchDialogB
ase
as
sdb
from
idlelib
import
searche
ngine
as
se
from
idlelib
import
searchb
ase
as
sdb
from
idlelib.idle_test.mock_idle
import
Func
## from idlelib.idle_test.mock_tk import Var
...
...
Lib/idlelib/idle_test/test_searchengine.py
View file @
f558d5f2
'''Test functions and SearchEngine class in
SearchE
ngine.py.'''
'''Test functions and SearchEngine class in
idlelib.searche
ngine.py.'''
# With mock replacements, the module does not use any gui widgets.
# The use of tk.Text is avoided (for now, until mock Text is improved)
...
...
@@ -10,7 +10,7 @@ import unittest
# from test.support import requires
from
tkinter
import
BooleanVar
,
StringVar
,
TclError
# ,Tk, Text
import
tkinter.messagebox
as
tkMessageBox
from
idlelib
import
SearchE
ngine
as
se
from
idlelib
import
searche
ngine
as
se
from
idlelib.idle_test.mock_tk
import
Var
,
Mbox
from
idlelib.idle_test.mock_tk
import
Text
as
mockText
...
...
Lib/idlelib/idle_test/test_textview.py
View file @
f558d5f2
'''Test the functions and main class method of text
V
iew.py.
'''Test the functions and main class method of text
v
iew.py.
Since all methods and functions create (or destroy) a TextViewer, which
is a widget containing multiple widgets, all tests must be gui tests.
...
...
@@ -13,7 +13,7 @@ requires('gui')
import
unittest
import
os
from
tkinter
import
Tk
from
idlelib
import
text
V
iew
as
tv
from
idlelib
import
text
v
iew
as
tv
from
idlelib.idle_test.mock_idle
import
Func
from
idlelib.idle_test.mock_tk
import
Mbox
...
...
Lib/idlelib/idle_test/test_undo
delegator
.py
→
Lib/idlelib/idle_test/test_undo.py
View file @
f558d5f2
"""Unittest for UndoDelegator in idlelib.
UndoDelegator
.
"""Unittest for UndoDelegator in idlelib.
undo.py
.
Coverage about 80% (retest).
"""
...
...
@@ -8,8 +8,8 @@ requires('gui')
import
unittest
from
unittest.mock
import
Mock
from
tkinter
import
Text
,
Tk
from
idlelib.
UndoDelegator
import
UndoDelegator
from
idlelib.
P
ercolator
import
Percolator
from
idlelib.
undo
import
UndoDelegator
from
idlelib.
p
ercolator
import
Percolator
class
UndoDelegatorTest
(
unittest
.
TestCase
):
...
...
Lib/idlelib/idle_test/test_warning.py
View file @
f558d5f2
'''Test warnings replacement in
PyS
hell.py and run.py.
'''Test warnings replacement in
pys
hell.py and run.py.
This file could be expanded to include traceback overrides
(in same two modules). If so, change name.
...
...
@@ -17,9 +17,9 @@ showwarning = warnings.showwarning
running_in_idle
=
'idle'
in
showwarning
.
__name__
from
idlelib
import
run
from
idlelib
import
PyS
hell
as
shell
from
idlelib
import
pys
hell
as
shell
# The following was generated from
PyS
hell.idle_formatwarning
# The following was generated from
pys
hell.idle_formatwarning
# and checked as matching expectation.
idlemsg
=
'''
Warning (from warnings module):
...
...
Lib/idlelib/
IOBinding
.py
→
Lib/idlelib/
iomenu
.py
View file @
f558d5f2
...
...
@@ -10,7 +10,7 @@ import tkinter.filedialog as tkFileDialog
import
tkinter.messagebox
as
tkMessageBox
from
tkinter.simpledialog
import
askstring
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
# Try setting the locale, so that we can find out
...
...
@@ -107,6 +107,9 @@ def coding_spec(data):
class
IOBinding
:
# One instance per editor Window so methods know which to save, close.
# Open returns focus to self.editwin if aborted.
# EditorWindow.open_module, others, belong here.
def
__init__
(
self
,
editwin
):
self
.
editwin
=
editwin
...
...
Lib/idlelib/macosx
Support
.py
→
Lib/idlelib/macosx.py
View file @
f558d5f2
...
...
@@ -123,23 +123,23 @@ def overrideRootMenu(root, flist):
# Due to a (mis-)feature of TkAqua the user will also see an empty Help
# menu.
from
tkinter
import
Menu
from
idlelib
import
Bindings
from
idlelib
import
WindowList
from
idlelib
import
mainmenu
from
idlelib
import
windows
closeItem
=
Bindings
.
menudefs
[
0
][
1
][
-
2
]
closeItem
=
mainmenu
.
menudefs
[
0
][
1
][
-
2
]
# Remove the last 3 items of the file menu: a separator, close window and
# quit. Close window will be reinserted just above the save item, where
# it should be according to the HIG. Quit is in the application menu.
del
Bindings
.
menudefs
[
0
][
1
][
-
3
:]
Bindings
.
menudefs
[
0
][
1
].
insert
(
6
,
closeItem
)
del
mainmenu
.
menudefs
[
0
][
1
][
-
3
:]
mainmenu
.
menudefs
[
0
][
1
].
insert
(
6
,
closeItem
)
# Remove the 'About' entry from the help menu, it is in the application
# menu
del
Bindings
.
menudefs
[
-
1
][
1
][
0
:
2
]
del
mainmenu
.
menudefs
[
-
1
][
1
][
0
:
2
]
# Remove the 'Configure Idle' entry from the options menu, it is in the
# application menu as 'Preferences'
del
Bindings
.
menudefs
[
-
2
][
1
][
0
]
del
mainmenu
.
menudefs
[
-
2
][
1
][
0
]
menubar
=
Menu
(
root
)
root
.
configure
(
menu
=
menubar
)
menudict
=
{}
...
...
@@ -154,30 +154,30 @@ def overrideRootMenu(root, flist):
if
end
>
0
:
menu
.
delete
(
0
,
end
)
WindowList
.
add_windows_to_menu
(
menu
)
Window
List
.
register_callback
(
postwindowsmenu
)
windows
.
add_windows_to_menu
(
menu
)
Window
s
.
register_callback
(
postwindowsmenu
)
def
about_dialog
(
event
=
None
):
"Handle Help 'About IDLE' event."
# Synchronize with
EditorWindow
.EditorWindow.about_dialog.
from
idlelib
import
aboutDialog
aboutDialog
.
AboutDialog
(
root
,
'About IDLE'
)
# Synchronize with
editor
.EditorWindow.about_dialog.
from
idlelib
import
help_about
help_about
.
AboutDialog
(
root
,
'About IDLE'
)
def
config_dialog
(
event
=
None
):
"Handle Options 'Configure IDLE' event."
# Synchronize with
EditorWindow
.EditorWindow.config_dialog.
from
idlelib
import
config
D
ialog
# Synchronize with
editor
.EditorWindow.config_dialog.
from
idlelib
import
config
d
ialog
# Ensure that the root object has an instance_dict attribute,
# mirrors code in EditorWindow (although that sets the attribute
# on an EditorWindow instance that is then passed as the first
# argument to ConfigDialog)
root
.
instance_dict
=
flist
.
inversedict
config
D
ialog
.
ConfigDialog
(
root
,
'Settings'
)
config
d
ialog
.
ConfigDialog
(
root
,
'Settings'
)
def
help_dialog
(
event
=
None
):
"Handle Help 'IDLE Help' event."
# Synchronize with
EditorWindow
.EditorWindow.help_dialog.
# Synchronize with
editor
.EditorWindow.help_dialog.
from
idlelib
import
help
help
.
show_idlehelp
(
root
)
...
...
@@ -197,7 +197,7 @@ def overrideRootMenu(root, flist):
menudict
[
'application'
]
=
menu
=
Menu
(
menubar
,
name
=
'apple'
,
tearoff
=
0
)
menubar
.
add_cascade
(
label
=
'IDLE'
,
menu
=
menu
)
Bindings
.
menudefs
.
insert
(
0
,
mainmenu
.
menudefs
.
insert
(
0
,
(
'application'
,
[
(
'About IDLE'
,
'<<about-idle>>'
),
None
,
...
...
@@ -205,7 +205,7 @@ def overrideRootMenu(root, flist):
tkversion
=
root
.
tk
.
eval
(
'info patchlevel'
)
if
tuple
(
map
(
int
,
tkversion
.
split
(
'.'
)))
<
(
8
,
4
,
14
):
# for earlier AquaTk versions, supply a Preferences menu item
Bindings
.
menudefs
[
0
][
1
].
append
(
mainmenu
.
menudefs
[
0
][
1
].
append
(
(
'_Preferences....'
,
'<<open-config-dialog>>'
),
)
if
isCocoaTk
():
...
...
@@ -214,12 +214,12 @@ def overrideRootMenu(root, flist):
# replace default "Help" item in Help menu
root
.
createcommand
(
'::tk::mac::ShowHelp'
,
help_dialog
)
# remove redundant "IDLE Help" from menu
del
Bindings
.
menudefs
[
-
1
][
1
][
0
]
del
mainmenu
.
menudefs
[
-
1
][
1
][
0
]
def
setupApp
(
root
,
flist
):
"""
Perform initial OS X customizations if needed.
Called from
PyS
hell.main() after initial calls to Tk()
Called from
pys
hell.main() after initial calls to Tk()
There are currently three major versions of Tk in use on OS X:
1. Aqua Cocoa Tk (native default since OS X 10.6)
...
...
Lib/idlelib/
Bindings
.py
→
Lib/idlelib/
mainmenu
.py
View file @
f558d5f2
...
...
@@ -10,9 +10,9 @@ windows.
"""
from
importlib.util
import
find_spec
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
# Warning: menudefs is altered in macosx
Support
.overrideRootMenu()
# Warning: menudefs is altered in macosx.overrideRootMenu()
# after it is determined that an OS X Aqua Tk is in use,
# which cannot be done until after Tk() is first called.
# Do not alter the 'file', 'options', or 'help' cascades here
...
...
Lib/idlelib/
MultiC
all.py
→
Lib/idlelib/
multic
all.py
View file @
f558d5f2
File moved
Lib/idlelib/
OutputWindow
.py
→
Lib/idlelib/
outwin
.py
View file @
f558d5f2
from
tkinter
import
*
from
idlelib.
EditorWindow
import
EditorWindow
from
idlelib.
editor
import
EditorWindow
import
re
import
tkinter.messagebox
as
tkMessageBox
from
idlelib
import
IOBinding
from
idlelib
import
iomenu
class
OutputWindow
(
EditorWindow
):
...
...
@@ -36,7 +36,7 @@ class OutputWindow(EditorWindow):
def
write
(
self
,
s
,
tags
=
(),
mark
=
"insert"
):
if
isinstance
(
s
,
(
bytes
,
bytes
)):
s
=
s
.
decode
(
IOBinding
.
encoding
,
"replace"
)
s
=
s
.
decode
(
iomenu
.
encoding
,
"replace"
)
self
.
text
.
insert
(
mark
,
s
,
tags
)
self
.
text
.
see
(
mark
)
self
.
text
.
update
()
...
...
Lib/idlelib/
FormatP
aragraph.py
→
Lib/idlelib/
p
aragraph.py
View file @
f558d5f2
...
...
@@ -16,7 +16,7 @@ Known problems with comment reformatting:
"""
import
re
from
idlelib.config
Handler
import
idleConf
from
idlelib.config
import
idleConf
class
FormatParagraph
:
...
...
@@ -191,5 +191,5 @@ def get_comment_header(line):
if
__name__
==
"__main__"
:
import
unittest
unittest
.
main
(
'idlelib.idle_test.test_
format
paragraph'
,
unittest
.
main
(
'idlelib.idle_test.test_paragraph'
,
verbosity
=
2
,
exit
=
False
)
Lib/idlelib/
ParenM
atch.py
→
Lib/idlelib/
parenm
atch.py
View file @
f558d5f2
...
...
@@ -5,8 +5,8 @@ paren. Paren here is used generically; the matching applies to
parentheses, square brackets, and curly braces.
"""
from
idlelib.
HyperP
arser
import
HyperParser
from
idlelib.config
Handler
import
idleConf
from
idlelib.
hyperp
arser
import
HyperParser
from
idlelib.config
import
idleConf
_openers
=
{
')'
:
'('
,
']'
:
'['
,
'}'
:
'{'
}
CHECK_DELAY
=
100
# miliseconds
...
...
Lib/idlelib/
PathB
rowser.py
→
Lib/idlelib/
pathb
rowser.py
View file @
f558d5f2
...
...
@@ -2,9 +2,9 @@ import os
import
sys
import
importlib.machinery
from
idlelib.
TreeWidget
import
TreeItem
from
idlelib.
ClassB
rowser
import
ClassBrowser
,
ModuleBrowserTreeItem
from
idlelib.
PyS
hell
import
PyShellFileList
from
idlelib.
tree
import
TreeItem
from
idlelib.
b
rowser
import
ClassBrowser
,
ModuleBrowserTreeItem
from
idlelib.
pys
hell
import
PyShellFileList
class
PathBrowser
(
ClassBrowser
):
...
...
Lib/idlelib/
P
ercolator.py
→
Lib/idlelib/
p
ercolator.py
View file @
f558d5f2
from
idlelib.
WidgetR
edirector
import
WidgetRedirector
from
idlelib.
D
elegator
import
Delegator
from
idlelib.
r
edirector
import
WidgetRedirector
from
idlelib.
d
elegator
import
Delegator
class
Percolator
:
...
...
Lib/idlelib/
PyP
arse.py
→
Lib/idlelib/
pyp
arse.py
View file @
f558d5f2
File moved
Lib/idlelib/
PyS
hell.py
→
Lib/idlelib/
pys
hell.py
View file @
f558d5f2
...
...
@@ -24,16 +24,16 @@ except ImportError:
sys
.
exit
(
1
)
import
tkinter.messagebox
as
tkMessageBox
from
idlelib.
EditorWindow
import
EditorWindow
,
fixwordbreaks
from
idlelib.
FileL
ist
import
FileList
from
idlelib.
ColorDelegato
r
import
ColorDelegator
from
idlelib.
UndoDelegator
import
UndoDelegator
from
idlelib.
OutputWindow
import
OutputWindow
from
idlelib.config
Handler
import
idleConf
from
idlelib.
editor
import
EditorWindow
,
fixwordbreaks
from
idlelib.
filel
ist
import
FileList
from
idlelib.
colorize
r
import
ColorDelegator
from
idlelib.
undo
import
UndoDelegator
from
idlelib.
outwin
import
OutputWindow
from
idlelib.config
import
idleConf
from
idlelib
import
rpc
from
idlelib
import
D
ebugger
from
idlelib
import
RemoteDebugge
r
from
idlelib
import
macosx
Support
from
idlelib
import
d
ebugger
from
idlelib
import
debugger_
r
from
idlelib
import
macosx
HOST
=
'127.0.0.1'
# python execution server on localhost loopback
PORT
=
0
# someday pass in host, port for remote debug capability
...
...
@@ -410,7 +410,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
# run from the IDLE source directory.
del_exitf
=
idleConf
.
GetOption
(
'main'
,
'General'
,
'delete-exitfunc'
,
default
=
False
,
type
=
'bool'
)
if
__name__
==
'idlelib.
PyS
hell'
:
if
__name__
==
'idlelib.
pys
hell'
:
command
=
"__import__('idlelib.run').run.main(%r)"
%
(
del_exitf
,)
else
:
command
=
"__import__('run').main(%r)"
%
(
del_exitf
,)
...
...
@@ -468,7 +468,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
if
debug
:
try
:
# Only close subprocess debugger, don't unregister gui_adap!
RemoteDebugge
r
.
close_subprocess_debugger
(
self
.
rpcclt
)
debugger_
r
.
close_subprocess_debugger
(
self
.
rpcclt
)
except
:
pass
# Kill subprocess, spawn a new one, accept connection.
...
...
@@ -497,7 +497,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
# restart subprocess debugger
if
debug
:
# Restarted debugger connects to current instance of debug GUI
RemoteDebugge
r
.
restart_subprocess_debugger
(
self
.
rpcclt
)
debugger_
r
.
restart_subprocess_debugger
(
self
.
rpcclt
)
# reload remote debugger breakpoints for all PyShellEditWindows
debug
.
load_breakpoints
()
self
.
compile
.
compiler
.
flags
=
self
.
original_compiler_flags
...
...
@@ -578,7 +578,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
if
self
.
tkconsole
.
getvar
(
"<<toggle-jit-stack-viewer>>"
):
self
.
remote_stack_viewer
()
elif
how
==
"ERROR"
:
errmsg
=
"
PyS
hell.ModifiedInterpreter: Subprocess ERROR:
\
n
"
errmsg
=
"
pys
hell.ModifiedInterpreter: Subprocess ERROR:
\
n
"
print
(
errmsg
,
what
,
file
=
sys
.
__stderr__
)
print
(
errmsg
,
what
,
file
=
console
)
# we received a response to the currently active seq number:
...
...
@@ -613,13 +613,13 @@ class ModifiedInterpreter(InteractiveInterpreter):
return
def
remote_stack_viewer
(
self
):
from
idlelib
import
RemoteObjectBrowse
r
from
idlelib
import
debugobj_
r
oid
=
self
.
rpcclt
.
remotequeue
(
"exec"
,
"stackviewer"
,
(
"flist"
,),
{})
if
oid
is
None
:
self
.
tkconsole
.
root
.
bell
()
return
item
=
RemoteObjectBrowse
r
.
StubObjectTreeItem
(
self
.
rpcclt
,
oid
)
from
idlelib.
TreeWidget
import
ScrolledCanvas
,
TreeNode
item
=
debugobj_
r
.
StubObjectTreeItem
(
self
.
rpcclt
,
oid
)
from
idlelib.
tree
import
ScrolledCanvas
,
TreeNode
top
=
Toplevel
(
self
.
tkconsole
.
root
)
theme
=
idleConf
.
CurrentTheme
()
background
=
idleConf
.
GetHighlight
(
theme
,
'normal'
)[
'background'
]
...
...
@@ -662,9 +662,9 @@ class ModifiedInterpreter(InteractiveInterpreter):
# at the moment, InteractiveInterpreter expects str
assert
isinstance
(
source
,
str
)
#if isinstance(source, str):
# from idlelib import
IOBinding
# from idlelib import
iomenu
# try:
# source = source.encode(
IOBinding
.encoding)
# source = source.encode(
iomenu
.encoding)
# except UnicodeError:
# self.tkconsole.resetoutput()
# self.write("Unsupported characters in input\n")
...
...
@@ -850,7 +850,7 @@ class PyShell(OutputWindow):
# New classes
from
idlelib.
IdleH
istory
import
History
from
idlelib.
h
istory
import
History
def
__init__
(
self
,
flist
=
None
):
if
use_subprocess
:
...
...
@@ -888,11 +888,11 @@ class PyShell(OutputWindow):
self
.
save_stdout
=
sys
.
stdout
self
.
save_stderr
=
sys
.
stderr
self
.
save_stdin
=
sys
.
stdin
from
idlelib
import
IOBinding
self
.
stdin
=
PseudoInputFile
(
self
,
"stdin"
,
IOBinding
.
encoding
)
self
.
stdout
=
PseudoOutputFile
(
self
,
"stdout"
,
IOBinding
.
encoding
)
self
.
stderr
=
PseudoOutputFile
(
self
,
"stderr"
,
IOBinding
.
encoding
)
self
.
console
=
PseudoOutputFile
(
self
,
"console"
,
IOBinding
.
encoding
)
from
idlelib
import
iomenu
self
.
stdin
=
PseudoInputFile
(
self
,
"stdin"
,
iomenu
.
encoding
)
self
.
stdout
=
PseudoOutputFile
(
self
,
"stdout"
,
iomenu
.
encoding
)
self
.
stderr
=
PseudoOutputFile
(
self
,
"stderr"
,
iomenu
.
encoding
)
self
.
console
=
PseudoOutputFile
(
self
,
"console"
,
iomenu
.
encoding
)
if
not
use_subprocess
:
sys
.
stdout
=
self
.
stdout
sys
.
stderr
=
self
.
stderr
...
...
@@ -900,7 +900,7 @@ class PyShell(OutputWindow):
try
:
# page help() text to shell.
import
pydoc
# import must be done here to capture i/o rebinding.
# XXX KBK 27Dec07 use
a textView
someday, but must work w/o subproc
# XXX KBK 27Dec07 use
TextViewer
someday, but must work w/o subproc
pydoc
.
pager
=
pydoc
.
plainpager
except
:
sys
.
stderr
=
sys
.
__stderr__
...
...
@@ -954,7 +954,7 @@ class PyShell(OutputWindow):
self
.
interp
.
setdebugger
(
None
)
db
.
close
()
if
self
.
interp
.
rpcclt
:
RemoteDebugge
r
.
close_remote_debugger
(
self
.
interp
.
rpcclt
)
debugger_
r
.
close_remote_debugger
(
self
.
interp
.
rpcclt
)
self
.
resetoutput
()
self
.
console
.
write
(
"[DEBUG OFF]
\
n
"
)
sys
.
ps1
=
">>> "
...
...
@@ -963,10 +963,10 @@ class PyShell(OutputWindow):
def
open_debugger
(
self
):
if
self
.
interp
.
rpcclt
:
dbg_gui
=
RemoteDebugge
r
.
start_remote_debugger
(
self
.
interp
.
rpcclt
,
dbg_gui
=
debugger_
r
.
start_remote_debugger
(
self
.
interp
.
rpcclt
,
self
)
else
:
dbg_gui
=
D
ebugger
.
Debugger
(
self
)
dbg_gui
=
d
ebugger
.
Debugger
(
self
)
self
.
interp
.
setdebugger
(
dbg_gui
)
dbg_gui
.
load_breakpoints
()
sys
.
ps1
=
"[DEBUG ON]
\
n
>>> "
...
...
@@ -1241,7 +1241,7 @@ class PyShell(OutputWindow):
"(sys.last_traceback is not defined)",
parent=self.text)
return
from idlelib.
StackV
iewer import StackBrowser
from idlelib.
stackv
iewer import StackBrowser
StackBrowser(self.root, self.flist)
def view_restart_mark(self, event=None):
...
...
@@ -1546,9 +1546,9 @@ def main():
fixwordbreaks
(
root
)
root
.
withdraw
()
flist
=
PyShellFileList
(
root
)
macosx
Support
.
setupApp
(
root
,
flist
)
macosx
.
setupApp
(
root
,
flist
)
if
macosx
Support
.
isAquaTk
():
if
macosx
.
isAquaTk
():
# There are some screwed up <2> class bindings for text
# widgets defined in Tk which we need to do away with.
# See issue #24801.
...
...
@@ -1569,7 +1569,7 @@ def main():
shell
=
flist
.
open_shell
()
if
not
shell
:
return
# couldn't open shell
if
macosx
Support
.
isAquaTk
()
and
flist
.
dict
:
if
macosx
.
isAquaTk
()
and
flist
.
dict
:
# On OSX: when the user has double-clicked on a file that causes
# IDLE to be launched the shell window will open just in front of
# the file she wants to see. Lower the interpreter window when
...
...
@@ -1603,7 +1603,7 @@ def main():
# check for problematic OS X Tk versions and print a warning
# message in the IDLE shell window; this is less intrusive
# than always opening a separate window.
tkversionwarning
=
macosx
Support
.
tkVersionWarning
(
root
)
tkversionwarning
=
macosx
.
tkVersionWarning
(
root
)
if
tkversionwarning
:
shell
.
interp
.
runcommand
(
"print('%s')"
%
tkversionwarning
)
...
...
@@ -1613,7 +1613,7 @@ def main():
capture_warnings
(
False
)
if
__name__
==
"__main__"
:
sys
.
modules
[
'
PyS
hell'
]
=
sys
.
modules
[
'__main__'
]
sys
.
modules
[
'
pys
hell'
]
=
sys
.
modules
[
'__main__'
]
main
()
capture_warnings
(
False
)
# Make sure turned off; see issue 18081
Lib/idlelib/
WidgetR
edirector.py
→
Lib/idlelib/
r
edirector.py
View file @
f558d5f2
...
...
@@ -104,7 +104,7 @@ class WidgetRedirector:
Note that if a registered function is called, the operation is not
passed through to Tk. Apply the function returned by self.register()
to *args to accomplish that. For an example, see
ColorDelegato
r.py.
to *args to accomplish that. For an example, see
colorize
r.py.
'''
m
=
self
.
_operations
.
get
(
operation
)
...
...
Lib/idlelib/
ReplaceDialog
.py
→
Lib/idlelib/
replace
.py
View file @
f558d5f2
...
...
@@ -5,8 +5,8 @@ replace+find.
"""
from
tkinter
import
*
from
idlelib
import
SearchE
ngine
from
idlelib.
SearchDialogB
ase
import
SearchDialogBase
from
idlelib
import
searche
ngine
from
idlelib.
searchb
ase
import
SearchDialogBase
import
re
...
...
@@ -14,7 +14,7 @@ def replace(text):
"""Returns a singleton ReplaceDialog instance.The single dialog
saves user entries and preferences across instances."""
root
=
text
.
_root
()
engine
=
SearchE
ngine
.
get
(
root
)
engine
=
searche
ngine
.
get
(
root
)
if
not
hasattr
(
engine
,
"_replacedialog"
):
engine
.
_replacedialog
=
ReplaceDialog
(
root
,
engine
)
dialog
=
engine
.
_replacedialog
...
...
@@ -164,7 +164,7 @@ class ReplaceDialog(SearchDialogBase):
pos
=
None
if
not
pos
:
first
=
last
=
pos
=
text
.
index
(
"insert"
)
line
,
col
=
SearchE
ngine
.
get_line_col
(
pos
)
line
,
col
=
searche
ngine
.
get_line_col
(
pos
)
chars
=
text
.
get
(
"%d.0"
%
line
,
"%d.0"
%
(
line
+
1
))
m
=
prog
.
match
(
chars
,
col
)
if
not
prog
:
...
...
Lib/idlelib/
RstripExtension
.py
→
Lib/idlelib/
rstrip
.py
View file @
f558d5f2
File moved
Lib/idlelib/run.py
View file @
f558d5f2
...
...
@@ -7,15 +7,15 @@ import threading
import
queue
import
tkinter
from
idlelib
import
CallT
ips
from
idlelib
import
AutoC
omplete
from
idlelib
import
callt
ips
from
idlelib
import
autoc
omplete
from
idlelib
import
RemoteDebugge
r
from
idlelib
import
RemoteObjectBrowse
r
from
idlelib
import
StackV
iewer
from
idlelib
import
debugger_
r
from
idlelib
import
debugobj_
r
from
idlelib
import
stackv
iewer
from
idlelib
import
rpc
from
idlelib
import
PyS
hell
from
idlelib
import
IOBinding
from
idlelib
import
pys
hell
from
idlelib
import
iomenu
import
__main__
...
...
@@ -32,7 +32,7 @@ def idle_showwarning_subproc(
if
file
is
None
:
file
=
sys
.
stderr
try
:
file
.
write
(
PyS
hell
.
idle_formatwarning
(
file
.
write
(
pys
hell
.
idle_formatwarning
(
message
,
category
,
filename
,
lineno
,
line
))
except
IOError
:
pass
# the file (probably stderr) is invalid - this warning gets lost.
...
...
@@ -82,7 +82,7 @@ def main(del_exitfunc=False):
MyHandler object. That reference is saved as attribute rpchandler of the
Executive instance. The Executive methods have access to the reference and
can pass it on to entities that they command
(e.g.
RemoteDebugge
r.Debugger.start_debugger()). The latter, in turn, can
(e.g.
debugger_
r.Debugger.start_debugger()). The latter, in turn, can
call MyHandler(SocketIO) register/unregister methods via the reference to
register and unregister themselves.
...
...
@@ -204,7 +204,7 @@ def print_exception():
tbe
=
traceback
.
extract_tb
(
tb
)
print
(
'Traceback (most recent call last):'
,
file
=
efile
)
exclude
=
(
"run.py"
,
"rpc.py"
,
"threading.py"
,
"queue.py"
,
"
RemoteDebugge
r.py"
,
"bdb.py"
)
"
debugger_
r.py"
,
"bdb.py"
)
cleanup_traceback
(
tbe
,
exclude
)
traceback
.
print_list
(
tbe
,
file
=
efile
)
lines
=
traceback
.
format_exception_only
(
typ
,
exc
)
...
...
@@ -298,12 +298,12 @@ class MyHandler(rpc.RPCHandler):
executive
=
Executive
(
self
)
self
.
register
(
"exec"
,
executive
)
self
.
console
=
self
.
get_remote_proxy
(
"console"
)
sys
.
stdin
=
PyS
hell
.
PseudoInputFile
(
self
.
console
,
"stdin"
,
IOBinding
.
encoding
)
sys
.
stdout
=
PyS
hell
.
PseudoOutputFile
(
self
.
console
,
"stdout"
,
IOBinding
.
encoding
)
sys
.
stderr
=
PyS
hell
.
PseudoOutputFile
(
self
.
console
,
"stderr"
,
IOBinding
.
encoding
)
sys
.
stdin
=
pys
hell
.
PseudoInputFile
(
self
.
console
,
"stdin"
,
iomenu
.
encoding
)
sys
.
stdout
=
pys
hell
.
PseudoOutputFile
(
self
.
console
,
"stdout"
,
iomenu
.
encoding
)
sys
.
stderr
=
pys
hell
.
PseudoOutputFile
(
self
.
console
,
"stderr"
,
iomenu
.
encoding
)
sys
.
displayhook
=
rpc
.
displayhook
# page help() text to shell.
...
...
@@ -339,8 +339,8 @@ class Executive(object):
def
__init__
(
self
,
rpchandler
):
self
.
rpchandler
=
rpchandler
self
.
locals
=
__main__
.
__dict__
self
.
calltip
=
CallT
ips
.
CallTips
()
self
.
autocomplete
=
AutoC
omplete
.
AutoComplete
()
self
.
calltip
=
callt
ips
.
CallTips
()
self
.
autocomplete
=
autoc
omplete
.
AutoComplete
()
def
runcode
(
self
,
code
):
global
interruptable
...
...
@@ -372,7 +372,7 @@ class Executive(object):
thread
.
interrupt_main
()
def
start_the_debugger
(
self
,
gui_adap_oid
):
return
RemoteDebugge
r
.
start_debugger
(
self
.
rpchandler
,
gui_adap_oid
)
return
debugger_
r
.
start_debugger
(
self
.
rpchandler
,
gui_adap_oid
)
def
stop_the_debugger
(
self
,
idb_adap_oid
):
"Unregister the Idb Adapter. Link objects and Idb then subject to GC"
...
...
@@ -396,7 +396,7 @@ class Executive(object):
tb
=
tb
.
tb_next
sys
.
last_type
=
typ
sys
.
last_value
=
val
item
=
StackV
iewer
.
StackTreeItem
(
flist
,
tb
)
return
RemoteObjectBrowse
r
.
remote_object_tree_item
(
item
)
item
=
stackv
iewer
.
StackTreeItem
(
flist
,
tb
)
return
debugobj_
r
.
remote_object_tree_item
(
item
)
capture_warnings
(
False
)
# Make sure turned off; see issue 18081
Lib/idlelib/
ScriptBinding
.py
→
Lib/idlelib/
runscript
.py
View file @
f558d5f2
...
...
@@ -21,10 +21,10 @@ import os
import
tabnanny
import
tokenize
import
tkinter.messagebox
as
tkMessageBox
from
idlelib
import
PyS
hell
from
idlelib
import
pys
hell
from
idlelib.config
Handler
import
idleConf
from
idlelib
import
macosx
Support
from
idlelib.config
import
idleConf
from
idlelib
import
macosx
indent_message
=
"""Error: Inconsistent indentation detected!
...
...
@@ -46,12 +46,12 @@ class ScriptBinding:
def
__init__
(
self
,
editwin
):
self
.
editwin
=
editwin
# Provide instance variables referenced by
D
ebugger
# Provide instance variables referenced by
d
ebugger
# XXX This should be done differently
self
.
flist
=
self
.
editwin
.
flist
self
.
root
=
self
.
editwin
.
root
if
macosx
Support
.
isCocoaTk
():
if
macosx
.
isCocoaTk
():
self
.
editwin
.
text_frame
.
bind
(
'<<run-module-event-2>>'
,
self
.
_run_module_event
)
def
check_module_event
(
self
,
event
):
...
...
@@ -112,7 +112,7 @@ class ScriptBinding:
shell
.
set_warning_stream
(
saved_stream
)
def
run_module_event
(
self
,
event
):
if
macosx
Support
.
isCocoaTk
():
if
macosx
.
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
...
...
@@ -142,7 +142,7 @@ class ScriptBinding:
if
not
self
.
tabnanny
(
filename
):
return
'break'
interp
=
self
.
shell
.
interp
if
PyS
hell
.
use_subprocess
:
if
pys
hell
.
use_subprocess
:
interp
.
restart_subprocess
(
with_cwd
=
False
,
filename
=
self
.
editwin
.
_filename_to_unicode
(
filename
))
dirname
=
os
.
path
.
dirname
(
filename
)
...
...
@@ -161,7 +161,7 @@ class ScriptBinding:
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
PyS
hell.ModifiedInterpreter.
# Need to change streams in
pys
hell.ModifiedInterpreter.
interp
.
runcode
(
code
)
return
'break'
...
...
Lib/idlelib/
ScrolledL
ist.py
→
Lib/idlelib/
scrolledl
ist.py
View file @
f558d5f2
from
tkinter
import
*
from
idlelib
import
macosx
Support
from
idlelib
import
macosx
class
ScrolledList
:
...
...
@@ -23,7 +23,7 @@ class ScrolledList:
# Bind events to the list box
listbox
.
bind
(
"<ButtonRelease-1>"
,
self
.
click_event
)
listbox
.
bind
(
"<Double-ButtonRelease-1>"
,
self
.
double_click_event
)
if
macosx
Support
.
isAquaTk
():
if
macosx
.
isAquaTk
():
listbox
.
bind
(
"<ButtonPress-2>"
,
self
.
popup_event
)
listbox
.
bind
(
"<Control-Button-1>"
,
self
.
popup_event
)
else
:
...
...
Lib/idlelib/
SearchDialog
.py
→
Lib/idlelib/
search
.py
View file @
f558d5f2
from
tkinter
import
*
from
idlelib
import
SearchE
ngine
from
idlelib.
SearchDialogB
ase
import
SearchDialogBase
from
idlelib
import
searche
ngine
from
idlelib.
searchb
ase
import
SearchDialogBase
def
_setup
(
text
):
"Create or find the singleton SearchDialog instance."
root
=
text
.
_root
()
engine
=
SearchE
ngine
.
get
(
root
)
engine
=
searche
ngine
.
get
(
root
)
if
not
hasattr
(
engine
,
"_searchdialog"
):
engine
.
_searchdialog
=
SearchDialog
(
root
,
engine
)
return
engine
.
_searchdialog
...
...
Lib/idlelib/
SearchDialogB
ase.py
→
Lib/idlelib/
searchb
ase.py
View file @
f558d5f2
...
...
@@ -125,7 +125,7 @@ class SearchDialogBase:
def
create_option_buttons
(
self
):
'''Return (filled frame, options) for testing.
Options is a list of
SearchE
ngine booleanvar, label pairs.
Options is a list of
searche
ngine 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.
'''
...
...
Lib/idlelib/
SearchE
ngine.py
→
Lib/idlelib/
searche
ngine.py
View file @
f558d5f2
...
...
@@ -57,7 +57,7 @@ class SearchEngine:
def
setcookedpat
(
self
,
pat
):
"Set pattern after escaping if re."
# called only in
SearchDialog
.py: 66
# called only in
search
.py: 66
if
self
.
isre
():
pat
=
re
.
escape
(
pat
)
self
.
setpat
(
pat
)
...
...
Lib/idlelib/
StackV
iewer.py
→
Lib/idlelib/
stackv
iewer.py
View file @
f558d5f2
...
...
@@ -4,9 +4,9 @@ import linecache
import
re
import
tkinter
as
tk
from
idlelib.
TreeWidget
import
TreeNode
,
TreeItem
,
ScrolledCanvas
from
idlelib.
ObjectBrowser
import
ObjectTreeItem
,
make_objecttreeitem
from
idlelib.
PyS
hell
import
PyShellFileList
from
idlelib.
tree
import
TreeNode
,
TreeItem
,
ScrolledCanvas
from
idlelib.
debugobj
import
ObjectTreeItem
,
make_objecttreeitem
from
idlelib.
pys
hell
import
PyShellFileList
def
StackBrowser
(
root
,
flist
=
None
,
tb
=
None
,
top
=
None
):
if
top
is
None
:
...
...
Lib/idlelib/
MultiStatusB
ar.py
→
Lib/idlelib/
statusb
ar.py
View file @
f558d5f2
File moved
Lib/idlelib/text
V
iew.py
→
Lib/idlelib/text
v
iew.py
View file @
f558d5f2
File moved
Lib/idlelib/
ToolT
ip.py
→
Lib/idlelib/
toolt
ip.py
View file @
f558d5f2
# general purpose 'tooltip' routines - currently unused in idle
fork
# general purpose 'tooltip' routines - currently unused in idle
lib
# (although the 'calltips' extension is partly based on this code)
# may be useful for some purposes in (or almost in ;) the current project scope
# Ideas gleaned from PySol
...
...
@@ -76,7 +76,7 @@ class ListboxToolTip(ToolTipBase):
for
item
in
self
.
items
:
listbox
.
insert
(
END
,
item
)
def
_tooltip
(
parent
):
def
_tooltip
(
parent
):
# htest #
root
=
Tk
()
root
.
title
(
"Test tooltip"
)
width
,
height
,
x
,
y
=
list
(
map
(
int
,
re
.
split
(
'[x+]'
,
parent
.
geometry
())))
...
...
Lib/idlelib/
TreeWidget
.py
→
Lib/idlelib/
tree
.py
View file @
f558d5f2
...
...
@@ -17,8 +17,8 @@
import
os
from
tkinter
import
*
from
idlelib
import
ZoomH
eight
from
idlelib.config
Handler
import
idleConf
from
idlelib
import
zoomh
eight
from
idlelib.config
import
idleConf
ICONDIR
=
"Icons"
...
...
@@ -445,7 +445,7 @@ class ScrolledCanvas:
self
.
canvas
.
yview_scroll
(
1
,
"unit"
)
return
"break"
def
zoom_height
(
self
,
event
):
ZoomH
eight
.
zoom_height
(
self
.
master
)
zoomh
eight
.
zoom_height
(
self
.
master
)
return
"break"
...
...
Lib/idlelib/
UndoDelegator
.py
→
Lib/idlelib/
undo
.py
View file @
f558d5f2
import
string
from
tkinter
import
*
from
idlelib.
D
elegator
import
Delegator
from
idlelib.
d
elegator
import
Delegator
#$ event <<redo>>
#$ win <Control-y>
...
...
@@ -340,7 +340,7 @@ class CommandSequence(Command):
def
_undo_delegator
(
parent
):
# htest #
import
re
import
tkinter
as
tk
from
idlelib.
P
ercolator
import
Percolator
from
idlelib.
p
ercolator
import
Percolator
undowin
=
tk
.
Toplevel
()
undowin
.
title
(
"Test UndoDelegator"
)
width
,
height
,
x
,
y
=
list
(
map
(
int
,
re
.
split
(
'[x+]'
,
parent
.
geometry
())))
...
...
Lib/idlelib/
WindowList
.py
→
Lib/idlelib/
windows
.py
View file @
f558d5f2
File moved
Lib/idlelib/
ZoomH
eight.py
→
Lib/idlelib/
zoomh
eight.py
View file @
f558d5f2
...
...
@@ -3,7 +3,7 @@
import
re
import
sys
from
idlelib
import
macosx
Support
from
idlelib
import
macosx
class
ZoomHeight
:
...
...
@@ -32,7 +32,7 @@ def zoom_height(top):
newy
=
0
newheight
=
newheight
-
72
elif
macosx
Support
.
isAquaTk
():
elif
macosx
.
isAquaTk
():
# The '88' below is a magic number that avoids placing the bottom
# of the window below the panel on my machine. I don't know how
# to calculate the correct value for this with tkinter.
...
...
Lib/turtledemo/__main__.py
View file @
f558d5f2
...
...
@@ -89,9 +89,9 @@ import sys
import
os
from
tkinter
import
*
from
idlelib.
P
ercolator
import
Percolator
from
idlelib.
ColorDelegato
r
import
ColorDelegator
from
idlelib.text
V
iew
import
view_text
from
idlelib.
p
ercolator
import
Percolator
from
idlelib.
colorize
r
import
ColorDelegator
from
idlelib.text
v
iew
import
view_text
from
turtledemo
import
__doc__
as
about_turtledemo
import
turtle
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment