123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- 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 '<<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)
- 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
- <open windows> # 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
- ---
- <other help sources>
- <Context Menu> (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
- <No menu>
- 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.
|