@@ -16,8 +16,9 @@ and omissions and lag behind changes in idlelib.
1616
1717
1818IDLELIB FILES
19+ =============
20+
1921Implementation files not in IDLE MENU are marked (nim).
20- Deprecated files and objects are listed separately as the end.
2122
2223Startup
2324-------
@@ -33,22 +34,22 @@ autocomplete.py # Complete attribute names or filenames.
3334autocomplete_w.py # Display completions.
3435autoexpand.py # Expand word with previous word in file.
3536browser.py # Create module browser window.
37+ calltip.py # Create calltip text.
3638calltip_w.py # Display calltip.
37- calltips.py # Create calltip text.
3839codecontext.py # Show compound statement headers otherwise not visible.
39- colorizer.py # Colorize text (nim)
40+ colorizer.py # Colorize text (nim).
4041config.py # Load, fetch, and save configuration (nim).
4142configdialog.py # Display user configuration dialogs.
42- config_help.py # Specify help source in configdialog.
4343config_key.py # Change keybindings.
44- dynoption.py # Define mutable OptionMenu widget (nim).
45- debugobj.py # Define class used in stackviewer.
46- debugobj_r.py # Communicate objects between processes with rpc (nim).
4744debugger.py # Debug code run from shell or editor; show window.
4845debugger_r.py # Debug code run in remote process.
46+ debugobj.py # Define class used in stackviewer.
47+ debugobj_r.py # Communicate objects between processes with rpc (nim).
4948delegator.py # Define base class for delegators (nim).
49+ dynoption.py # Define mutable OptionMenu widget (nim)
5050editor.py # Define most of editor and utility functions.
5151filelist.py # Open files and manage list of open windows (nim).
52+ format.py # Define format menu options.
5253grep.py # Find all occurrences of pattern in multiple files.
5354help.py # Display IDLE's html doc.
5455help_about.py # Display About IDLE dialog.
@@ -59,7 +60,6 @@ macosx.py # Help IDLE run on Macs (nim).
5960mainmenu.py # Define most of IDLE menu.
6061multicall.py # Wrap tk widget to allow multiple calls per event (nim).
6162outwin.py # Create window for grep output.
62- paragraph.py # Re-wrap multiline strings and comments.
6363parenmatch.py # Match fenceposts: (), [], and {}.
6464pathbrowser.py # Create path browser window.
6565percolator.py # Manage delegator stack (nim).
@@ -69,22 +69,25 @@ query.py # Query user for information
6969redirector.py # Intercept widget subcommands (for percolator) (nim).
7070replace.py # Search and replace pattern in text.
7171rpc.py # Communicate between idle and user processes (nim).
72- rstrip.py # Strip trailing whitespace.
7372run.py # Manage user code execution subprocess.
7473runscript.py # Check and run user code.
7574scrolledlist.py # Define scrolledlist widget for IDLE (nim).
7675search.py # Search for pattern in text.
7776searchbase.py # Define base for search, replace, and grep dialogs.
7877searchengine.py # Define engine for all 3 search dialogs.
78+ sidebar.py # Define line number and shell prompt sidebars.
79+ squeezer.py # Squeeze long shell output (nim).
7980stackviewer.py # View stack after exception.
8081statusbar.py # Define status bar for windows (nim).
8182tabbedpages.py # Define tabbed pages widget (nim).
8283textview.py # Define read-only text widget (nim).
84+ tooltip.py # Define popups for calltips, squeezer (nim).
8385tree.py # Define tree widget, used in browsers (nim).
8486undo.py # Manage undo stack.
85- util.py # Define objects imported elsewhere with no dependencies (nim)
87+ util.py # Define common objects imported elsewhere (nim).
8688windows.py # Manage window list and define listed top level.
8789zoomheight.py # Zoom window to full height of screen.
90+ zzdummy.py # Example extension.
8891
8992Configuration
9093-------------
98101CREDITS.txt # not maintained, displayed by About IDLE
99102HISTORY.txt # NEWS up to July 2001
100103NEWS.txt # commits, displayed by About IDLE
104+ NEWS2.txt # commits to Python2
101105README.txt # this file, displayed by About IDLE
102106TODO.txt # needs review
103107extend.txt # about writing extensions
@@ -108,13 +112,10 @@ Subdirectories
108112Icons # small image files
109113idle_test # files for human test and automated unit tests
110114
111- Unused and Deprecated files and objects (nim)
112- ---------------------------------------------
113- tooltip.py # unused
114-
115-
116115
117116IDLE MENUS
117+ ==========
118+
118119Top level items and most submenu items are defined in mainmenu.
119120Extensions add submenu items when active. The names given are
120121found, quoted, in one of these modules, paired with a '<<pseudoevent>>'.
@@ -160,63 +161,68 @@ Edit
160161 Show call tip # Calltips extension and CalltipWindow (& Hyperparser)
161162 Show surrounding parens # parenmatch (& Hyperparser)
162163
164+ Format (Editor only) [fFR = format.FormatRegion]
165+ Format Paragraph # format.FormatParagraph.format_paragraph_event
166+ Indent Region # fFR.indent_region_event
167+ Dedent Region # fFR.dedent_region_event
168+ Comment Out Reg. # fFR.comment_region_event
169+ Uncomment Region # fFR.uncomment_region_event
170+ Tabify Region # fFR.tabify_region_event
171+ Untabify Region # fFR.untabify_region_event
172+ Toggle Tabs # format.Indents.toggle_tabs_event
173+ New Indent Width # format.Indents.change_indentwidth_event
174+ Strip tailing whitespace # format.rstrip
175+ Zin # zzdummy
176+ Zout # zzdummy
177+
178+ Run (Editor only)
179+ Run Module # runscript.ScriptBinding.run_module_event
180+ Run... Customized # runscript.ScriptBinding.run_custom_event
181+ Check Module # runscript.ScriptBinding.check_module_event
182+ Python Shell # pyshell.Pyshell, pyshell.ModifiedInterpreter
183+
163184Shell # pyshell
164185 View Last Restart # pyshell.PyShell.view_restart_mark
165186 Restart Shell # pyshell.PyShell.restart_shell
187+ Previous History # history.History.history_prev
188+ Next History # history.History.history_next
166189 Interrupt Execution # pyshell.PyShell.cancel_callback
167190
168191Debug (Shell only)
169- Go to File/Line
192+ Go to File/Line # outwin.OutputWindow.goto_file_line
170193 debugger # debugger, debugger_r, PyShell.toggle_debugger
171194 Stack Viewer # stackviewer, PyShell.open_stack_viewer
172195 Auto-open Stack Viewer # stackviewer
173196
174- Format (Editor only)
175- Indent Region # eEW.indent_region_event
176- Dedent Region # eEW.dedent_region_event
177- Comment Out Reg. # eEW.comment_region_event
178- Uncomment Region # eEW.uncomment_region_event
179- Tabify Region # eEW.tabify_region_event
180- Untabify Region # eEW.untabify_region_event
181- Toggle Tabs # eEW.toggle_tabs_event
182- New Indent Width # eEW.change_indentwidth_event
183- Format Paragraph # paragraph extension
184- ---
185- Strip tailing whitespace # rstrip extension
186-
187- Run (Editor only)
188- Python Shell # pyshell
189- ---
190- Check Module # runscript
191- Run Module # runscript
192-
193197Options
194- Configure IDLE # eEW.config_dialog, configdialog
195- (tabs in the dialog)
196- Font tab # config-main.def
197- Highlight tab # query, config-highlight.def
198- Keys tab # query, config_key, config_keys.def
199- General tab # config_help, config-main.def
200- Extensions tab # config-extensions.def, corresponding .py
198+ Configure IDLE # eEW.config_dialog, config, configdialog (cd)
199+ (Parts of the dialog)
200+ Buttons # cd.ConfigDialog
201+ Font tab # cd.FontPage, config-main.def
202+ Highlight tab # cd.HighPage, query, config-highlight.def
203+ Keys tab # cd.KeysPage, query, config_key, config_keys.def
204+ Windows tab # cd.WinPage, config_main.def
205+ Shell/Ed tab # cd.ShedPage, config-main.def
206+ Extensions tab # config-extensions.def, corresponding .py files
201207 ---
202- Code Context (ed)# codecontext extension
208+ ... Code Context # codecontext
209+ ... Line Numbers # sidebar
210+ Zoomheight # zoomheight
203211
204212Window
205- Zoomheight # zoomheight extension
206- ---
207213 <open windows> # windows
208214
209215Help
210216 About IDLE # eEW.about_dialog, help_about.AboutDialog
211217 ---
212- IDLE Help # eEW.help_dialog, helpshow_idlehelp
213- Python Doc # eEW.python_docs
218+ IDLE Help # eEW.help_dialog, help.show_idlehelp
219+ Python Docs # eEW.python_docs
214220 Turtle Demo # eEW.open_turtle_demo
215221 ---
216222 <other help sources>
217223
218224<Context Menu> (right click)
219- Defined in editor, PyShelpyshellut
225+ Defined in editor, PyShell.pyshell
220226 Cut
221227 Copy
222228 Paste
@@ -232,11 +238,14 @@ Help
232238Center Insert # eEW.center_insert_event
233239
234240
235- CODE STYLE -- Generally PEP 8.
241+ OTHER TOPICS
242+ ============
243+
244+ Generally use PEP 8.
236245
237- import
238- ------
239- Put import at the top, unless there is a good reason otherwise.
246+ import statements
247+ -----------------
248+ Put imports at the top, unless there is a good reason otherwise.
240249PEP 8 says to group stdlib, 3rd-party dependencies, and package imports.
241250For idlelib, the groups are general stdlib, tkinter, and idlelib.
242251Sort modules within each group, except that tkinter.ttk follows tkinter.
@@ -250,3 +259,32 @@ htest function def or "if __name__ == '__main__'" clause.
250259Within module imports like "from idlelib.mod import class" may cause
251260circular imports to deadlock. Even without this, circular imports may
252261require at least one of the imports to be delayed until a function call.
262+
263+ What's New entries
264+ ------------------
265+
266+ Repository directory Doc/whatsnew/ has a file 3.n.rst for each 3.n
267+ Python version. For the first entry in each file, add subsection
268+ 'IDLE and idlelib', in alphabetical position, to the 'Improved Modules'
269+ section. For the rest of cpython, entries to 3.(n+1).rst begin with
270+ the release of 3.n.0b1. For IDLE, entries for features backported from
271+ 'main' to '3.n' during its beta period do not got in 3.(n+1).rst. The
272+ latter usually gets its first entry during the 3.n.0 candidate period
273+ or after the 3.n.0 release.
274+
275+ When, as per PEP 434, feature changes are backported, entries are placed
276+ in the 3.n.rst file *in the main branch* for each Python version n that
277+ gets the backport. (Note: the format of entries have varied between
278+ versions.) Add a line "New in 3.n maintenance releases." before the
279+ first back-ported feature after 3.n.0 is released. Since each older
280+ version file gets a different number of backports, it is easiest to
281+ make a separate PR for each file and label it with the backports
282+ needed.
283+
284+ Github repository and issues
285+ ----------------------------
286+
287+ The CPython repository is https://github.com/python/cpython. The
288+ IDLE Issues listing is https://github.com/orgs/python/projects/31.
289+ The main classification is by Topic, based on the IDLE menu. View the
290+ topics list by clicking the [<]] button in the upper right.
0 commit comments