mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			251 lines
		
	
	
	
		
			9.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			251 lines
		
	
	
	
		
			9.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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 '<<pseudoevent>>'.
 | 
						|
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
 | 
						|
  ---
 | 
						|
  <open windows>   # 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
 | 
						|
  ---
 | 
						|
  <other help sources>
 | 
						|
 | 
						|
<Context Menu> (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
 | 
						|
 | 
						|
<No menu>
 | 
						|
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.
 |