Home | History | Annotate | Download | only in idlelib
      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