wzj daf9a874a1 feature: Python更新到3.12 hai 11 meses
..
Icons daf9a874a1 feature: Python更新到3.12 hai 11 meses
__pycache__ daf9a874a1 feature: Python更新到3.12 hai 11 meses
idle_test daf9a874a1 feature: Python更新到3.12 hai 11 meses
CREDITS.txt daf9a874a1 feature: Python更新到3.12 hai 11 meses
ChangeLog daf9a874a1 feature: Python更新到3.12 hai 11 meses
HISTORY.txt 904c87623c sources for windows hai 11 meses
NEWS.txt daf9a874a1 feature: Python更新到3.12 hai 11 meses
NEWS2x.txt 904c87623c sources for windows hai 11 meses
README.txt daf9a874a1 feature: Python更新到3.12 hai 11 meses
TODO.txt 904c87623c sources for windows hai 11 meses
__init__.py 904c87623c sources for windows hai 11 meses
__main__.py 904c87623c sources for windows hai 11 meses
autocomplete.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
autocomplete_w.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
autoexpand.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
browser.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
calltip.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
calltip_w.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
codecontext.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
colorizer.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
config-extensions.def 904c87623c sources for windows hai 11 meses
config-highlight.def daf9a874a1 feature: Python更新到3.12 hai 11 meses
config-keys.def daf9a874a1 feature: Python更新到3.12 hai 11 meses
config-main.def daf9a874a1 feature: Python更新到3.12 hai 11 meses
config.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
config_key.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
configdialog.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
debugger.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
debugger_r.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
debugobj.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
debugobj_r.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
delegator.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
dynoption.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
editor.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
extend.txt daf9a874a1 feature: Python更新到3.12 hai 11 meses
filelist.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
format.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
grep.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
help.html daf9a874a1 feature: Python更新到3.12 hai 11 meses
help.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
help_about.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
history.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
hyperparser.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
idle.bat 904c87623c sources for windows hai 11 meses
idle.py 904c87623c sources for windows hai 11 meses
idle.pyw 904c87623c sources for windows hai 11 meses
iomenu.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
macosx.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
mainmenu.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
multicall.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
outwin.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
parenmatch.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
pathbrowser.py 904c87623c sources for windows hai 11 meses
percolator.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
pyparse.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
pyshell.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
query.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
redirector.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
replace.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
rpc.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
run.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
runscript.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
scrolledlist.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
search.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
searchbase.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
searchengine.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
sidebar.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
squeezer.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
stackviewer.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
statusbar.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
textview.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
tooltip.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
tree.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
undo.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
util.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
window.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
zoomheight.py daf9a874a1 feature: Python更新到3.12 hai 11 meses
zzdummy.py daf9a874a1 feature: Python更新到3.12 hai 11 meses

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).

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.py # Create calltip text.
calltip_w.py # Display calltip.
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_key.py # Change keybindings.
debugger.py # Debug code run from shell or editor; show window.
debugger_r.py # Debug code run in remote process.
debugobj.py # Define class used in stackviewer.
debugobj_r.py # Communicate objects between processes with rpc (nim).
delegator.py # Define base class for delegators (nim).
dynoption.py # Define mutable OptionMenu widget (nim)
editor.py # Define most of editor and utility functions.
filelist.py # Open files and manage list of open windows (nim).
format.py # Define format menu options.
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.
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).
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.
sidebar.py # Define line number and shell prompt sidebars.
squeezer.py # Squeeze long shell output (nim).
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).
tooltip.py # Define popups for calltips, squeezer (nim).
tree.py # Define tree widget, used in browsers (nim).
undo.py # Manage undo stack.
util.py # Define common objects imported elsewhere (nim).
windows.py # Manage window list and define listed top level.
zoomheight.py # Zoom window to full height of screen.
zzdummy.py # Example extension.

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
NEWS2.txt # commits to Python2
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


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)

Format (Editor only) [fFR = format.FormatRegion]
Format Paragraph # format.FormatParagraph.format_paragraph_event
Indent Region # fFR.indent_region_event
Dedent Region # fFR.dedent_region_event
Comment Out Reg. # fFR.comment_region_event
Uncomment Region # fFR.uncomment_region_event
Tabify Region # fFR.tabify_region_event
Untabify Region # fFR.untabify_region_event
Toggle Tabs # format.Indents.toggle_tabs_event
New Indent Width # format.Indents.change_indentwidth_event
Strip tailing whitespace # format.rstrip
Zin # zzdummy
Zout # zzdummy

Run (Editor only)
Run Module # runscript.ScriptBinding.run_module_event
Run... Customized # runscript.ScriptBinding.run_custom_event
Check Module # runscript.ScriptBinding.check_module_event
Python Shell # pyshell.Pyshell, pyshell.ModifiedInterpreter

Shell # pyshell
View Last Restart # pyshell.PyShell.view_restart_mark
Restart Shell # pyshell.PyShell.restart_shell
Previous History # history.History.history_prev
Next History # history.History.history_next
Interrupt Execution # pyshell.PyShell.cancel_callback

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

Options
Configure IDLE # eEW.config_dialog, config, configdialog (cd)
(Parts of the dialog)
Buttons # cd.ConfigDialog
Font tab # cd.FontPage, config-main.def
Highlight tab # cd.HighPage, query, config-highlight.def
Keys tab # cd.KeysPage, query, config_key, config_keys.def
Windows tab # cd.WinPage, config_main.def
Shell/Ed tab # cd.ShedPage, config-main.def
Extensions tab # config-extensions.def, corresponding .py files
---
... Code Context # codecontext
... Line Numbers # sidebar
Zoomheight # zoomheight

Window
# windows

Help
About IDLE # eEW.about_dialog, help_about.AboutDialog
---
IDLE Help # eEW.help_dialog, help.show_idlehelp
Python Docs # eEW.python_docs
Turtle Demo # eEW.open_turtle_demo
---


(right click)
Defined in editor, PyShell.pyshell
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


OTHER TOPICS
============

Generally use PEP 8.

import statements
-----------------
Put imports 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.

What's New entries
------------------

Repository directory Doc/whatsnew/ has a file 3.n.rst for each 3.n
Python version. For the first entry in each file, add subsection
'IDLE and idlelib', in alphabetical position, to the 'Improved Modules'
section. For the rest of cpython, entries to 3.(n+1).rst begin with
the release of 3.n.0b1. For IDLE, entries for features backported from
'main' to '3.n' during its beta period do not got in 3.(n+1).rst. The
latter usually gets its first entry during the 3.n.0 candidate period
or after the 3.n.0 release.

When, as per PEP 434, feature changes are backported, entries are placed
in the 3.n.rst file *in the main branch* for each Python version n that
gets the backport. (Note: the format of entries have varied between
versions.) Add a line "New in 3.n maintenance releases." before the
first back-ported feature after 3.n.0 is released. Since each older
version file gets a different number of backports, it is easiest to
make a separate PR for each file and label it with the backports
needed.

Github repository and issues
----------------------------

The CPython repository is https://github.com/python/cpython. The
IDLE Issues listing is https://github.com/orgs/python/projects/31.
The main classification is by Topic, based on the IDLE menu. View the
topics list by clicking the [<]] button in the upper right.