domopy b3f9a0f15c 首次提交 5 bulan lalu
..
Icons b3f9a0f15c 首次提交 5 bulan lalu
idle_test b3f9a0f15c 首次提交 5 bulan lalu
CREDITS.txt b3f9a0f15c 首次提交 5 bulan lalu
ChangeLog b3f9a0f15c 首次提交 5 bulan lalu
HISTORY.txt b3f9a0f15c 首次提交 5 bulan lalu
NEWS.txt b3f9a0f15c 首次提交 5 bulan lalu
NEWS2x.txt b3f9a0f15c 首次提交 5 bulan lalu
README.txt b3f9a0f15c 首次提交 5 bulan lalu
TODO.txt b3f9a0f15c 首次提交 5 bulan lalu
__init__.py b3f9a0f15c 首次提交 5 bulan lalu
__main__.py b3f9a0f15c 首次提交 5 bulan lalu
autocomplete.py b3f9a0f15c 首次提交 5 bulan lalu
autocomplete_w.py b3f9a0f15c 首次提交 5 bulan lalu
autoexpand.py b3f9a0f15c 首次提交 5 bulan lalu
browser.py b3f9a0f15c 首次提交 5 bulan lalu
calltip.py b3f9a0f15c 首次提交 5 bulan lalu
calltip_w.py b3f9a0f15c 首次提交 5 bulan lalu
codecontext.py b3f9a0f15c 首次提交 5 bulan lalu
colorizer.py b3f9a0f15c 首次提交 5 bulan lalu
config-extensions.def b3f9a0f15c 首次提交 5 bulan lalu
config-highlight.def b3f9a0f15c 首次提交 5 bulan lalu
config-keys.def b3f9a0f15c 首次提交 5 bulan lalu
config-main.def b3f9a0f15c 首次提交 5 bulan lalu
config.py b3f9a0f15c 首次提交 5 bulan lalu
config_key.py b3f9a0f15c 首次提交 5 bulan lalu
configdialog.py b3f9a0f15c 首次提交 5 bulan lalu
debugger.py b3f9a0f15c 首次提交 5 bulan lalu
debugger_r.py b3f9a0f15c 首次提交 5 bulan lalu
debugobj.py b3f9a0f15c 首次提交 5 bulan lalu
debugobj_r.py b3f9a0f15c 首次提交 5 bulan lalu
delegator.py b3f9a0f15c 首次提交 5 bulan lalu
dynoption.py b3f9a0f15c 首次提交 5 bulan lalu
editor.py b3f9a0f15c 首次提交 5 bulan lalu
extend.txt b3f9a0f15c 首次提交 5 bulan lalu
filelist.py b3f9a0f15c 首次提交 5 bulan lalu
format.py b3f9a0f15c 首次提交 5 bulan lalu
grep.py b3f9a0f15c 首次提交 5 bulan lalu
help.html b3f9a0f15c 首次提交 5 bulan lalu
help.py b3f9a0f15c 首次提交 5 bulan lalu
help_about.py b3f9a0f15c 首次提交 5 bulan lalu
history.py b3f9a0f15c 首次提交 5 bulan lalu
hyperparser.py b3f9a0f15c 首次提交 5 bulan lalu
idle.bat b3f9a0f15c 首次提交 5 bulan lalu
idle.py b3f9a0f15c 首次提交 5 bulan lalu
idle.pyw b3f9a0f15c 首次提交 5 bulan lalu
iomenu.py b3f9a0f15c 首次提交 5 bulan lalu
macosx.py b3f9a0f15c 首次提交 5 bulan lalu
mainmenu.py b3f9a0f15c 首次提交 5 bulan lalu
multicall.py b3f9a0f15c 首次提交 5 bulan lalu
outwin.py b3f9a0f15c 首次提交 5 bulan lalu
parenmatch.py b3f9a0f15c 首次提交 5 bulan lalu
pathbrowser.py b3f9a0f15c 首次提交 5 bulan lalu
percolator.py b3f9a0f15c 首次提交 5 bulan lalu
pyparse.py b3f9a0f15c 首次提交 5 bulan lalu
pyshell.py b3f9a0f15c 首次提交 5 bulan lalu
query.py b3f9a0f15c 首次提交 5 bulan lalu
redirector.py b3f9a0f15c 首次提交 5 bulan lalu
replace.py b3f9a0f15c 首次提交 5 bulan lalu
rpc.py b3f9a0f15c 首次提交 5 bulan lalu
run.py b3f9a0f15c 首次提交 5 bulan lalu
runscript.py b3f9a0f15c 首次提交 5 bulan lalu
scrolledlist.py b3f9a0f15c 首次提交 5 bulan lalu
search.py b3f9a0f15c 首次提交 5 bulan lalu
searchbase.py b3f9a0f15c 首次提交 5 bulan lalu
searchengine.py b3f9a0f15c 首次提交 5 bulan lalu
sidebar.py b3f9a0f15c 首次提交 5 bulan lalu
squeezer.py b3f9a0f15c 首次提交 5 bulan lalu
stackviewer.py b3f9a0f15c 首次提交 5 bulan lalu
statusbar.py b3f9a0f15c 首次提交 5 bulan lalu
textview.py b3f9a0f15c 首次提交 5 bulan lalu
tooltip.py b3f9a0f15c 首次提交 5 bulan lalu
tree.py b3f9a0f15c 首次提交 5 bulan lalu
undo.py b3f9a0f15c 首次提交 5 bulan lalu
window.py b3f9a0f15c 首次提交 5 bulan lalu
zoomheight.py b3f9a0f15c 首次提交 5 bulan lalu
zzdummy.py b3f9a0f15c 首次提交 5 bulan lalu

README.txt

README.txt: an index to idlelib files and the IDLE menu.

IDLE is Python's Integrated Development and Learning
Environment. The user documentation is part of the Library Reference and
is available in IDLE by selecting Help => IDLE Help. This README documents
idlelib for IDLE developers and curious users.

IDLELIB FILES lists files alphabetically by category,
with a short description of each.

IDLE MENU show the menu tree, annotated with the module
or module object that implements the corresponding function.

This file is descriptive, not prescriptive, and may have errors
and omissions and lag behind changes in idlelib.


IDLELIB FILES
Implementation files not in IDLE MENU are marked (nim).
Deprecated files and objects are listed separately as the end.

Startup
-------
__init__.py # import, does nothing
__main__.py # -m, starts IDLE
idle.bat
idle.py
idle.pyw

Implementation
--------------
autocomplete.py # Complete attribute names or filenames.
autocomplete_w.py # Display completions.
autoexpand.py # Expand word with previous word in file.
browser.py # Create module browser window.
calltip_w.py # Display calltip.
calltips.py # Create calltip text.
codecontext.py # Show compound statement headers otherwise not visible.
colorizer.py # Colorize text (nim)
config.py # Load, fetch, and save configuration (nim).
configdialog.py # Display user configuration dialogs.
config_help.py # Specify help source in configdialog.
config_key.py # Change keybindings.
dynoption.py # Define mutable OptionMenu widget (nim).
debugobj.py # Define class used in stackviewer.
debugobj_r.py # Communicate objects between processes with rpc (nim).
debugger.py # Debug code run from shell or editor; show window.
debugger_r.py # Debug code run in remote process.
delegator.py # Define base class for delegators (nim).
editor.py # Define most of editor and utility functions.
filelist.py # Open files and manage list of open windows (nim).
grep.py # Find all occurrences of pattern in multiple files.
help.py # Display IDLE's html doc.
help_about.py # Display About IDLE dialog.
history.py # Get previous or next user input in shell (nim)
hyperparser.py # Parse code around a given index.
iomenu.py # Open, read, and write files
macosx.py # Help IDLE run on Macs (nim).
mainmenu.py # Define most of IDLE menu.
multicall.py # Wrap tk widget to allow multiple calls per event (nim).
outwin.py # Create window for grep output.
paragraph.py # Re-wrap multiline strings and comments.
parenmatch.py # Match fenceposts: (), [], and {}.
pathbrowser.py # Create path browser window.
percolator.py # Manage delegator stack (nim).
pyparse.py # Give information on code indentation
pyshell.py # Start IDLE, manage shell, complete editor window
query.py # Query user for information
redirector.py # Intercept widget subcommands (for percolator) (nim).
replace.py # Search and replace pattern in text.
rpc.py # Communicate between idle and user processes (nim).
rstrip.py # Strip trailing whitespace.
run.py # Manage user code execution subprocess.
runscript.py # Check and run user code.
scrolledlist.py # Define scrolledlist widget for IDLE (nim).
search.py # Search for pattern in text.
searchbase.py # Define base for search, replace, and grep dialogs.
searchengine.py # Define engine for all 3 search dialogs.
stackviewer.py # View stack after exception.
statusbar.py # Define status bar for windows (nim).
tabbedpages.py # Define tabbed pages widget (nim).
textview.py # Define read-only text widget (nim).
tree.py # Define tree widget, used in browsers (nim).
undo.py # Manage undo stack.
windows.py # Manage window list and define listed top level.
zoomheight.py # Zoom window to full height of screen.

Configuration
-------------
config-extensions.def # Defaults for extensions
config-highlight.def # Defaults for colorizing
config-keys.def # Defaults for key bindings
config-main.def # Defaults for font and general tabs

Text
----
CREDITS.txt # not maintained, displayed by About IDLE
HISTORY.txt # NEWS up to July 2001
NEWS.txt # commits, displayed by About IDLE
README.txt # this file, displayed by About IDLE
TODO.txt # needs review
extend.txt # about writing extensions
help.html # copy of idle.html in docs, displayed by IDLE Help

Subdirectories
--------------
Icons # small image files
idle_test # files for human test and automated unit tests

Unused and Deprecated files and objects (nim)
---------------------------------------------
tooltip.py # unused



IDLE MENUS
Top level items and most submenu items are defined in mainmenu.
Extensions add submenu items when active. The names given are
found, quoted, in one of these modules, paired with a '<>'.
Each pseudoevent is bound to an event handler. Some event handlers
call another function that does the actual work. The annotations below
are intended to at least give the module where the actual work is done.
'eEW' = editor.EditorWindow

File
New File # eEW.new_callback
Open... # iomenu.open
Open Module # eEw.open_module
Recent Files
Class Browser # eEW.open_class_browser, browser.ClassBrowser
Path Browser # eEW.open_path_browser, pathbrowser
---
Save # iomenu.save
Save As... # iomenu.save_as
Save Copy As... # iomenu.save_a_copy
---
Print Window # iomenu.print_window
---
Close # eEW.close_event
Exit # flist.close_all_callback (bound in eEW)

Edit
Undo # undodelegator
Redo # undodelegator
--- # eEW.right_menu_event
Cut # eEW.cut
Copy # eEW.copy
Paste # eEW.past
Select All # eEW.select_all (+ see eEW.remove_selection)
--- # Next 5 items use searchengine; dialogs use searchbase
Find # eEW.find_event, search.SearchDialog.find
Find Again # eEW.find_again_event, sSD.find_again
Find Selection # eEW.find_selection_event, sSD.find_selection
Find in Files... # eEW.find_in_files_event, grep
Replace... # eEW.replace_event, replace.ReplaceDialog.replace
Go to Line # eEW.goto_line_event
Show Completions # autocomplete extension and autocompleteWidow (&HP)
Expand Word # autoexpand extension
Show call tip # Calltips extension and CalltipWindow (& Hyperparser)
Show surrounding parens # parenmatch (& Hyperparser)

Shell # pyshell
View Last Restart # pyshell.PyShell.view_restart_mark
Restart Shell # pyshell.PyShell.restart_shell
Interrupt Execution # pyshell.PyShell.cancel_callback

Debug (Shell only)
Go to File/Line
debugger # debugger, debugger_r, PyShell.toggle_debugger
Stack Viewer # stackviewer, PyShell.open_stack_viewer
Auto-open Stack Viewer # stackviewer

Format (Editor only)
Indent Region # eEW.indent_region_event
Dedent Region # eEW.dedent_region_event
Comment Out Reg. # eEW.comment_region_event
Uncomment Region # eEW.uncomment_region_event
Tabify Region # eEW.tabify_region_event
Untabify Region # eEW.untabify_region_event
Toggle Tabs # eEW.toggle_tabs_event
New Indent Width # eEW.change_indentwidth_event
Format Paragraph # paragraph extension
---
Strip tailing whitespace # rstrip extension

Run (Editor only)
Python Shell # pyshell
---
Check Module # runscript
Run Module # runscript

Options
Configure IDLE # eEW.config_dialog, configdialog
(tabs in the dialog)
Font tab # config-main.def
Highlight tab # query, config-highlight.def
Keys tab # query, config_key, config_keys.def
General tab # config_help, config-main.def
Extensions tab # config-extensions.def, corresponding .py
---
Code Context (ed)# codecontext extension

Window
Zoomheight # zoomheight extension
---
# windows

Help
About IDLE # eEW.about_dialog, help_about.AboutDialog
---
IDLE Help # eEW.help_dialog, helpshow_idlehelp
Python Doc # eEW.python_docs
Turtle Demo # eEW.open_turtle_demo
---


(right click)
Defined in editor, PyShelpyshellut
Cut
Copy
Paste
---
Go to file/line (shell and output only)
Set Breakpoint (editor only)
Clear Breakpoint (editor only)
Defined in debugger
Go to source line
Show stack frame


Center Insert # eEW.center_insert_event


CODE STYLE -- Generally PEP 8.

import
------
Put import at the top, unless there is a good reason otherwise.
PEP 8 says to group stdlib, 3rd-party dependencies, and package imports.
For idlelib, the groups are general stdlib, tkinter, and idlelib.
Sort modules within each group, except that tkinter.ttk follows tkinter.
Sort 'from idlelib import mod1' and 'from idlelib.mod2 import object'
together by module, ignoring within module objects.
Put 'import __main__' after other idlelib imports.

Imports only needed for testing are put not at the top but in an
htest function def or "if __name__ == '__main__'" clause.

Within module imports like "from idlelib.mod import class" may cause
circular imports to deadlock. Even without this, circular imports may
require at least one of the imports to be delayed until a function call.