• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

Icons/22-Nov-2023-

idle_test/23-Nov-2023-11,2088,392

CREDITS.txtD22-Nov-20231.8 KiB3827

ChangeLogD23-Nov-202355 KiB1,5921,068

HISTORY.txtD22-Nov-202310.1 KiB297193

NEWS.txtD23-Nov-202340.3 KiB988704

NEWS2x.txtD22-Nov-202326.5 KiB661441

README.txtD23-Nov-20239.4 KiB252220

TODO.txtD22-Nov-20238.3 KiB211162

__init__.pyD22-Nov-2023396 118

__main__.pyD22-Nov-2023159 96

autocomplete.pyD23-Nov-20239.1 KiB232186

autocomplete_w.pyD23-Nov-202319.4 KiB468356

autoexpand.pyD23-Nov-20233.1 KiB9783

browser.pyD23-Nov-20238.1 KiB249195

calltip.pyD23-Nov-20235.9 KiB179144

calltip_w.pyD23-Nov-20237 KiB202153

codecontext.pyD23-Nov-202310.5 KiB245190

colorizer.pyD23-Nov-202312.7 KiB337286

config-extensions.defD23-Nov-20232.2 KiB6356

config-highlight.defD23-Nov-20232.6 KiB10096

config-keys.defD23-Nov-202310.5 KiB305299

config-main.defD23-Nov-20233.1 KiB9283

config.pyD23-Nov-202338 KiB931784

config_key.pyD23-Nov-202314.1 KiB326278

configdialog.pyD23-Nov-202398.7 KiB2,3091,918

debugger.pyD23-Nov-202318.7 KiB551423

debugger_r.pyD23-Nov-202311.9 KiB394271

debugobj.pyD23-Nov-20234 KiB143119

debugobj_r.pyD23-Nov-20231.1 KiB4228

delegator.pyD22-Nov-20231 KiB3424

dynoption.pyD22-Nov-20232 KiB5948

editor.pyD23-Nov-202365.9 KiB1,7331,375

extend.txtD22-Nov-20233.6 KiB8465

filelist.pyD23-Nov-20233.8 KiB132111

grep.pyD23-Nov-20236.7 KiB204167

help.htmlD23-Nov-202357.2 KiB955913

help.pyD23-Nov-202311.1 KiB286240

help_about.pyD23-Nov-20238.8 KiB208170

history.pyD22-Nov-20233.9 KiB10793

hyperparser.pyD23-Nov-202312.6 KiB313204

idle.batD23-Nov-2023177 54

idle.pyD22-Nov-2023454 157

idle.pywD22-Nov-2023570 1817

iomenu.pyD23-Nov-202320.2 KiB575464

macosx.pyD23-Nov-20239.4 KiB288205

mainmenu.pyD23-Nov-20233.7 KiB124100

multicall.pyD23-Nov-202318.2 KiB449354

outwin.pyD23-Nov-20235.7 KiB190144

paragraph.pyD23-Nov-20237 KiB195149

parenmatch.pyD23-Nov-20237 KiB184137

pathbrowser.pyD23-Nov-20233.1 KiB11290

percolator.pyD23-Nov-20233.1 KiB10480

pyparse.pyD23-Nov-202319.6 KiB599428

pyshell.pyD23-Nov-202356.6 KiB1,5811,279

query.pyD23-Nov-202312.1 KiB312256

redirector.pyD23-Nov-20236.7 KiB175138

replace.pyD23-Nov-20237.4 KiB245211

rpc.pyD23-Nov-202320.6 KiB637514

rstrip.pyD23-Nov-2023868 3019

run.pyD23-Nov-202316.9 KiB526432

runscript.pyD23-Nov-20237.7 KiB201157

scrolledlist.pyD23-Nov-20234.4 KiB150118

search.pyD23-Nov-20233.1 KiB10585

searchbase.pyD23-Nov-20237.3 KiB202165

searchengine.pyD23-Nov-20237.3 KiB238197

squeezer.pyD23-Nov-202313.7 KiB378251

stackviewer.pyD23-Nov-20234.3 KiB156125

statusbar.pyD23-Nov-20231.4 KiB5039

textview.pyD23-Nov-20236 KiB176138

tooltip.pyD23-Nov-20236.3 KiB187138

tree.pyD23-Nov-202314.7 KiB470380

undo.pyD23-Nov-202310.8 KiB367260

window.pyD23-Nov-20232.6 KiB9971

zoomheight.pyD23-Nov-20231.5 KiB6040

zzdummy.pyD23-Nov-2023961 4321

README.txt

1README.txt: an index to idlelib files and the IDLE menu.
2
3IDLE is Python's Integrated Development and Learning
4Environment.  The user documentation is part of the Library Reference and
5is available in IDLE by selecting Help => IDLE Help.  This README documents
6idlelib for IDLE developers and curious users.
7
8IDLELIB FILES lists files alphabetically by category,
9with a short description of each.
10
11IDLE MENU show the menu tree, annotated with the module
12or module object that implements the corresponding function.
13
14This file is descriptive, not prescriptive, and may have errors
15and omissions and lag behind changes in idlelib.
16
17
18IDLELIB FILES
19Implementation files not in IDLE MENU are marked (nim).
20Deprecated files and objects are listed separately as the end.
21
22Startup
23-------
24__init__.py  # import, does nothing
25__main__.py  # -m, starts IDLE
26idle.bat
27idle.py
28idle.pyw
29
30Implementation
31--------------
32autocomplete.py   # Complete attribute names or filenames.
33autocomplete_w.py # Display completions.
34autoexpand.py     # Expand word with previous word in file.
35browser.py        # Create module browser window.
36calltip_w.py      # Display calltip.
37calltips.py       # Create calltip text.
38codecontext.py    # Show compound statement headers otherwise not visible.
39colorizer.py      # Colorize text (nim)
40config.py         # Load, fetch, and save configuration (nim).
41configdialog.py   # Display user configuration dialogs.
42config_help.py    # Specify help source in configdialog.
43config_key.py     # Change keybindings.
44dynoption.py      # Define mutable OptionMenu widget (nim).
45debugobj.py       # Define class used in stackviewer.
46debugobj_r.py     # Communicate objects between processes with rpc (nim).
47debugger.py       # Debug code run from shell or editor; show window.
48debugger_r.py     # Debug code run in remote process.
49delegator.py      # Define base class for delegators (nim).
50editor.py         # Define most of editor and utility functions.
51filelist.py       # Open files and manage list of open windows (nim).
52grep.py           # Find all occurrences of pattern in multiple files.
53help.py           # Display IDLE's html doc.
54help_about.py     # Display About IDLE dialog.
55history.py        # Get previous or next user input in shell (nim)
56hyperparser.py    # Parse code around a given index.
57iomenu.py         # Open, read, and write files
58macosx.py         # Help IDLE run on Macs (nim).
59mainmenu.py       # Define most of IDLE menu.
60multicall.py      # Wrap tk widget to allow multiple calls per event (nim).
61outwin.py         # Create window for grep output.
62paragraph.py      # Re-wrap multiline strings and comments.
63parenmatch.py     # Match fenceposts: (), [], and {}.
64pathbrowser.py    # Create path browser window.
65percolator.py     # Manage delegator stack (nim).
66pyparse.py        # Give information on code indentation
67pyshell.py        # Start IDLE, manage shell, complete editor window
68query.py          # Query user for information
69redirector.py     # Intercept widget subcommands (for percolator) (nim).
70replace.py        # Search and replace pattern in text.
71rpc.py            # Commuicate between idle and user processes (nim).
72rstrip.py         # Strip trailing whitespace.
73run.py            # Manage user code execution subprocess.
74runscript.py      # Check and run user code.
75scrolledlist.py   # Define scrolledlist widget for IDLE (nim).
76search.py         # Search for pattern in text.
77searchbase.py     # Define base for search, replace, and grep dialogs.
78searchengine.py   # Define engine for all 3 search dialogs.
79stackviewer.py    # View stack after exception.
80statusbar.py      # Define status bar for windows (nim).
81tabbedpages.py    # Define tabbed pages widget (nim).
82textview.py       # Define read-only text widget (nim).
83tree.py           # Define tree widger, used in browsers (nim).
84undo.py           # Manage undo stack.
85windows.py        # Manage window list and define listed top level.
86zoomheight.py     # Zoom window to full height of screen.
87
88Configuration
89-------------
90config-extensions.def # Defaults for extensions
91config-highlight.def  # Defaults for colorizing
92config-keys.def       # Defaults for key bindings
93config-main.def       # Defai;ts fpr font and geneal
94
95Text
96----
97CREDITS.txt  # not maintained, displayed by About IDLE
98HISTORY.txt  # NEWS up to July 2001
99NEWS.txt     # commits, displayed by About IDLE
100README.txt   # this file, displeyed by About IDLE
101TODO.txt     # needs review
102extend.txt   # about writing extensions
103help.html    # copy of idle.html in docs, displayed by IDLE Help
104
105Subdirectories
106--------------
107Icons        # small image files
108idle_test    # files for human test and automated unit tests
109
110Unused and Deprecated files and objects (nim)
111---------------------------------------------
112tooltip.py # unused
113
114
115
116IDLE MENUS
117Top level items and most submenu items are defined in mainmenu.
118Extenstions add submenu items when active.  The names given are
119found, quoted, in one of these modules, paired with a '<<pseudoevent>>'.
120Each pseudoevent is bound to an event handler.  Some event handlers
121call another function that does the actual work.  The annotations below
122are intended to at least give the module where the actual work is done.
123'eEW' = editor.EditorWindow
124
125File
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
142Edit
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
162Shell  # 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
167Debug (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
173Format (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
186Run (Editor only)
187  Python Shell     # pyshell
188  ---
189  Check Module     # runscript
190  Run Module       # runscript
191
192Options
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
203Window
204  Zoomheight       # zoomheight extension
205  ---
206  <open windows>   # windows
207
208Help
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>
231Center Insert      # eEW.center_insert_event
232
233
234CODE STYLE -- Generally PEP 8.
235
236import
237------
238Put import at the top, unless there is a good reason otherwise.
239PEP 8 says to group stdlib, 3rd-party dependencies, and package imports.
240For idlelib, the groups are general stdlib, tkinter, and idlelib.
241Sort modules within each group, except that tkinter.ttk follows tkinter.
242Sort 'from idlelib import mod1' and 'from idlelib.mod2 import object'
243together by module, ignoring within module objects.
244Put 'import __main__' after other idlelib imports.
245
246Imports only needed for testing are put not at the top but in an
247htest function def or "if __name__ == '__main__'" clause.
248
249Within module imports like "from idlelib.mod import class" may cause
250circular imports to deadlock.  Even without this, circular imports may
251require at least one of the imports to be delayed until a function call.
252