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