jpayne@68
|
1 README.txt: an index to idlelib files and the IDLE menu.
|
jpayne@68
|
2
|
jpayne@68
|
3 IDLE is Python's Integrated Development and Learning
|
jpayne@68
|
4 Environment. The user documentation is part of the Library Reference and
|
jpayne@68
|
5 is available in IDLE by selecting Help => IDLE Help. This README documents
|
jpayne@68
|
6 idlelib for IDLE developers and curious users.
|
jpayne@68
|
7
|
jpayne@68
|
8 IDLELIB FILES lists files alphabetically by category,
|
jpayne@68
|
9 with a short description of each.
|
jpayne@68
|
10
|
jpayne@68
|
11 IDLE MENU show the menu tree, annotated with the module
|
jpayne@68
|
12 or module object that implements the corresponding function.
|
jpayne@68
|
13
|
jpayne@68
|
14 This file is descriptive, not prescriptive, and may have errors
|
jpayne@68
|
15 and omissions and lag behind changes in idlelib.
|
jpayne@68
|
16
|
jpayne@68
|
17
|
jpayne@68
|
18 IDLELIB FILES
|
jpayne@68
|
19 Implementation files not in IDLE MENU are marked (nim).
|
jpayne@68
|
20 Deprecated files and objects are listed separately as the end.
|
jpayne@68
|
21
|
jpayne@68
|
22 Startup
|
jpayne@68
|
23 -------
|
jpayne@68
|
24 __init__.py # import, does nothing
|
jpayne@68
|
25 __main__.py # -m, starts IDLE
|
jpayne@68
|
26 idle.bat
|
jpayne@68
|
27 idle.py
|
jpayne@68
|
28 idle.pyw
|
jpayne@68
|
29
|
jpayne@68
|
30 Implementation
|
jpayne@68
|
31 --------------
|
jpayne@68
|
32 autocomplete.py # Complete attribute names or filenames.
|
jpayne@68
|
33 autocomplete_w.py # Display completions.
|
jpayne@68
|
34 autoexpand.py # Expand word with previous word in file.
|
jpayne@68
|
35 browser.py # Create module browser window.
|
jpayne@68
|
36 calltip_w.py # Display calltip.
|
jpayne@68
|
37 calltips.py # Create calltip text.
|
jpayne@68
|
38 codecontext.py # Show compound statement headers otherwise not visible.
|
jpayne@68
|
39 colorizer.py # Colorize text (nim)
|
jpayne@68
|
40 config.py # Load, fetch, and save configuration (nim).
|
jpayne@68
|
41 configdialog.py # Display user configuration dialogs.
|
jpayne@68
|
42 config_help.py # Specify help source in configdialog.
|
jpayne@68
|
43 config_key.py # Change keybindings.
|
jpayne@68
|
44 dynoption.py # Define mutable OptionMenu widget (nim).
|
jpayne@68
|
45 debugobj.py # Define class used in stackviewer.
|
jpayne@68
|
46 debugobj_r.py # Communicate objects between processes with rpc (nim).
|
jpayne@68
|
47 debugger.py # Debug code run from shell or editor; show window.
|
jpayne@68
|
48 debugger_r.py # Debug code run in remote process.
|
jpayne@68
|
49 delegator.py # Define base class for delegators (nim).
|
jpayne@68
|
50 editor.py # Define most of editor and utility functions.
|
jpayne@68
|
51 filelist.py # Open files and manage list of open windows (nim).
|
jpayne@68
|
52 grep.py # Find all occurrences of pattern in multiple files.
|
jpayne@68
|
53 help.py # Display IDLE's html doc.
|
jpayne@68
|
54 help_about.py # Display About IDLE dialog.
|
jpayne@68
|
55 history.py # Get previous or next user input in shell (nim)
|
jpayne@68
|
56 hyperparser.py # Parse code around a given index.
|
jpayne@68
|
57 iomenu.py # Open, read, and write files
|
jpayne@68
|
58 macosx.py # Help IDLE run on Macs (nim).
|
jpayne@68
|
59 mainmenu.py # Define most of IDLE menu.
|
jpayne@68
|
60 multicall.py # Wrap tk widget to allow multiple calls per event (nim).
|
jpayne@68
|
61 outwin.py # Create window for grep output.
|
jpayne@68
|
62 paragraph.py # Re-wrap multiline strings and comments.
|
jpayne@68
|
63 parenmatch.py # Match fenceposts: (), [], and {}.
|
jpayne@68
|
64 pathbrowser.py # Create path browser window.
|
jpayne@68
|
65 percolator.py # Manage delegator stack (nim).
|
jpayne@68
|
66 pyparse.py # Give information on code indentation
|
jpayne@68
|
67 pyshell.py # Start IDLE, manage shell, complete editor window
|
jpayne@68
|
68 query.py # Query user for information
|
jpayne@68
|
69 redirector.py # Intercept widget subcommands (for percolator) (nim).
|
jpayne@68
|
70 replace.py # Search and replace pattern in text.
|
jpayne@68
|
71 rpc.py # Communicate between idle and user processes (nim).
|
jpayne@68
|
72 rstrip.py # Strip trailing whitespace.
|
jpayne@68
|
73 run.py # Manage user code execution subprocess.
|
jpayne@68
|
74 runscript.py # Check and run user code.
|
jpayne@68
|
75 scrolledlist.py # Define scrolledlist widget for IDLE (nim).
|
jpayne@68
|
76 search.py # Search for pattern in text.
|
jpayne@68
|
77 searchbase.py # Define base for search, replace, and grep dialogs.
|
jpayne@68
|
78 searchengine.py # Define engine for all 3 search dialogs.
|
jpayne@68
|
79 stackviewer.py # View stack after exception.
|
jpayne@68
|
80 statusbar.py # Define status bar for windows (nim).
|
jpayne@68
|
81 tabbedpages.py # Define tabbed pages widget (nim).
|
jpayne@68
|
82 textview.py # Define read-only text widget (nim).
|
jpayne@68
|
83 tree.py # Define tree widget, used in browsers (nim).
|
jpayne@68
|
84 undo.py # Manage undo stack.
|
jpayne@68
|
85 windows.py # Manage window list and define listed top level.
|
jpayne@68
|
86 zoomheight.py # Zoom window to full height of screen.
|
jpayne@68
|
87
|
jpayne@68
|
88 Configuration
|
jpayne@68
|
89 -------------
|
jpayne@68
|
90 config-extensions.def # Defaults for extensions
|
jpayne@68
|
91 config-highlight.def # Defaults for colorizing
|
jpayne@68
|
92 config-keys.def # Defaults for key bindings
|
jpayne@68
|
93 config-main.def # Defai;ts fpr font and geneal
|
jpayne@68
|
94
|
jpayne@68
|
95 Text
|
jpayne@68
|
96 ----
|
jpayne@68
|
97 CREDITS.txt # not maintained, displayed by About IDLE
|
jpayne@68
|
98 HISTORY.txt # NEWS up to July 2001
|
jpayne@68
|
99 NEWS.txt # commits, displayed by About IDLE
|
jpayne@68
|
100 README.txt # this file, displayed by About IDLE
|
jpayne@68
|
101 TODO.txt # needs review
|
jpayne@68
|
102 extend.txt # about writing extensions
|
jpayne@68
|
103 help.html # copy of idle.html in docs, displayed by IDLE Help
|
jpayne@68
|
104
|
jpayne@68
|
105 Subdirectories
|
jpayne@68
|
106 --------------
|
jpayne@68
|
107 Icons # small image files
|
jpayne@68
|
108 idle_test # files for human test and automated unit tests
|
jpayne@68
|
109
|
jpayne@68
|
110 Unused and Deprecated files and objects (nim)
|
jpayne@68
|
111 ---------------------------------------------
|
jpayne@68
|
112 tooltip.py # unused
|
jpayne@68
|
113
|
jpayne@68
|
114
|
jpayne@68
|
115
|
jpayne@68
|
116 IDLE MENUS
|
jpayne@68
|
117 Top level items and most submenu items are defined in mainmenu.
|
jpayne@68
|
118 Extensions add submenu items when active. The names given are
|
jpayne@68
|
119 found, quoted, in one of these modules, paired with a '<<pseudoevent>>'.
|
jpayne@68
|
120 Each pseudoevent is bound to an event handler. Some event handlers
|
jpayne@68
|
121 call another function that does the actual work. The annotations below
|
jpayne@68
|
122 are intended to at least give the module where the actual work is done.
|
jpayne@68
|
123 'eEW' = editor.EditorWindow
|
jpayne@68
|
124
|
jpayne@68
|
125 File
|
jpayne@68
|
126 New File # eEW.new_callback
|
jpayne@68
|
127 Open... # iomenu.open
|
jpayne@68
|
128 Open Module # eEw.open_module
|
jpayne@68
|
129 Recent Files
|
jpayne@68
|
130 Class Browser # eEW.open_class_browser, browser.ClassBrowser
|
jpayne@68
|
131 Path Browser # eEW.open_path_browser, pathbrowser
|
jpayne@68
|
132 ---
|
jpayne@68
|
133 Save # iomenu.save
|
jpayne@68
|
134 Save As... # iomenu.save_as
|
jpayne@68
|
135 Save Copy As... # iomenu.save_a_copy
|
jpayne@68
|
136 ---
|
jpayne@68
|
137 Print Window # iomenu.print_window
|
jpayne@68
|
138 ---
|
jpayne@68
|
139 Close # eEW.close_event
|
jpayne@68
|
140 Exit # flist.close_all_callback (bound in eEW)
|
jpayne@68
|
141
|
jpayne@68
|
142 Edit
|
jpayne@68
|
143 Undo # undodelegator
|
jpayne@68
|
144 Redo # undodelegator
|
jpayne@68
|
145 --- # eEW.right_menu_event
|
jpayne@68
|
146 Cut # eEW.cut
|
jpayne@68
|
147 Copy # eEW.copy
|
jpayne@68
|
148 Paste # eEW.past
|
jpayne@68
|
149 Select All # eEW.select_all (+ see eEW.remove_selection)
|
jpayne@68
|
150 --- # Next 5 items use searchengine; dialogs use searchbase
|
jpayne@68
|
151 Find # eEW.find_event, search.SearchDialog.find
|
jpayne@68
|
152 Find Again # eEW.find_again_event, sSD.find_again
|
jpayne@68
|
153 Find Selection # eEW.find_selection_event, sSD.find_selection
|
jpayne@68
|
154 Find in Files... # eEW.find_in_files_event, grep
|
jpayne@68
|
155 Replace... # eEW.replace_event, replace.ReplaceDialog.replace
|
jpayne@68
|
156 Go to Line # eEW.goto_line_event
|
jpayne@68
|
157 Show Completions # autocomplete extension and autocompleteWidow (&HP)
|
jpayne@68
|
158 Expand Word # autoexpand extension
|
jpayne@68
|
159 Show call tip # Calltips extension and CalltipWindow (& Hyperparser)
|
jpayne@68
|
160 Show surrounding parens # parenmatch (& Hyperparser)
|
jpayne@68
|
161
|
jpayne@68
|
162 Shell # pyshell
|
jpayne@68
|
163 View Last Restart # pyshell.PyShell.view_restart_mark
|
jpayne@68
|
164 Restart Shell # pyshell.PyShell.restart_shell
|
jpayne@68
|
165 Interrupt Execution # pyshell.PyShell.cancel_callback
|
jpayne@68
|
166
|
jpayne@68
|
167 Debug (Shell only)
|
jpayne@68
|
168 Go to File/Line
|
jpayne@68
|
169 debugger # debugger, debugger_r, PyShell.toggle_debugger
|
jpayne@68
|
170 Stack Viewer # stackviewer, PyShell.open_stack_viewer
|
jpayne@68
|
171 Auto-open Stack Viewer # stackviewer
|
jpayne@68
|
172
|
jpayne@68
|
173 Format (Editor only)
|
jpayne@68
|
174 Indent Region # eEW.indent_region_event
|
jpayne@68
|
175 Dedent Region # eEW.dedent_region_event
|
jpayne@68
|
176 Comment Out Reg. # eEW.comment_region_event
|
jpayne@68
|
177 Uncomment Region # eEW.uncomment_region_event
|
jpayne@68
|
178 Tabify Region # eEW.tabify_region_event
|
jpayne@68
|
179 Untabify Region # eEW.untabify_region_event
|
jpayne@68
|
180 Toggle Tabs # eEW.toggle_tabs_event
|
jpayne@68
|
181 New Indent Width # eEW.change_indentwidth_event
|
jpayne@68
|
182 Format Paragraph # paragraph extension
|
jpayne@68
|
183 ---
|
jpayne@68
|
184 Strip tailing whitespace # rstrip extension
|
jpayne@68
|
185
|
jpayne@68
|
186 Run (Editor only)
|
jpayne@68
|
187 Python Shell # pyshell
|
jpayne@68
|
188 ---
|
jpayne@68
|
189 Check Module # runscript
|
jpayne@68
|
190 Run Module # runscript
|
jpayne@68
|
191
|
jpayne@68
|
192 Options
|
jpayne@68
|
193 Configure IDLE # eEW.config_dialog, configdialog
|
jpayne@68
|
194 (tabs in the dialog)
|
jpayne@68
|
195 Font tab # config-main.def
|
jpayne@68
|
196 Highlight tab # query, config-highlight.def
|
jpayne@68
|
197 Keys tab # query, config_key, config_keys.def
|
jpayne@68
|
198 General tab # config_help, config-main.def
|
jpayne@68
|
199 Extensions tab # config-extensions.def, corresponding .py
|
jpayne@68
|
200 ---
|
jpayne@68
|
201 Code Context (ed)# codecontext extension
|
jpayne@68
|
202
|
jpayne@68
|
203 Window
|
jpayne@68
|
204 Zoomheight # zoomheight extension
|
jpayne@68
|
205 ---
|
jpayne@68
|
206 <open windows> # windows
|
jpayne@68
|
207
|
jpayne@68
|
208 Help
|
jpayne@68
|
209 About IDLE # eEW.about_dialog, help_about.AboutDialog
|
jpayne@68
|
210 ---
|
jpayne@68
|
211 IDLE Help # eEW.help_dialog, helpshow_idlehelp
|
jpayne@68
|
212 Python Doc # eEW.python_docs
|
jpayne@68
|
213 Turtle Demo # eEW.open_turtle_demo
|
jpayne@68
|
214 ---
|
jpayne@68
|
215 <other help sources>
|
jpayne@68
|
216
|
jpayne@68
|
217 <Context Menu> (right click)
|
jpayne@68
|
218 Defined in editor, PyShelpyshellut
|
jpayne@68
|
219 Cut
|
jpayne@68
|
220 Copy
|
jpayne@68
|
221 Paste
|
jpayne@68
|
222 ---
|
jpayne@68
|
223 Go to file/line (shell and output only)
|
jpayne@68
|
224 Set Breakpoint (editor only)
|
jpayne@68
|
225 Clear Breakpoint (editor only)
|
jpayne@68
|
226 Defined in debugger
|
jpayne@68
|
227 Go to source line
|
jpayne@68
|
228 Show stack frame
|
jpayne@68
|
229
|
jpayne@68
|
230 <No menu>
|
jpayne@68
|
231 Center Insert # eEW.center_insert_event
|
jpayne@68
|
232
|
jpayne@68
|
233
|
jpayne@68
|
234 CODE STYLE -- Generally PEP 8.
|
jpayne@68
|
235
|
jpayne@68
|
236 import
|
jpayne@68
|
237 ------
|
jpayne@68
|
238 Put import at the top, unless there is a good reason otherwise.
|
jpayne@68
|
239 PEP 8 says to group stdlib, 3rd-party dependencies, and package imports.
|
jpayne@68
|
240 For idlelib, the groups are general stdlib, tkinter, and idlelib.
|
jpayne@68
|
241 Sort modules within each group, except that tkinter.ttk follows tkinter.
|
jpayne@68
|
242 Sort 'from idlelib import mod1' and 'from idlelib.mod2 import object'
|
jpayne@68
|
243 together by module, ignoring within module objects.
|
jpayne@68
|
244 Put 'import __main__' after other idlelib imports.
|
jpayne@68
|
245
|
jpayne@68
|
246 Imports only needed for testing are put not at the top but in an
|
jpayne@68
|
247 htest function def or "if __name__ == '__main__'" clause.
|
jpayne@68
|
248
|
jpayne@68
|
249 Within module imports like "from idlelib.mod import class" may cause
|
jpayne@68
|
250 circular imports to deadlock. Even without this, circular imports may
|
jpayne@68
|
251 require at least one of the imports to be delayed until a function call.
|