• Home
Name
Date
Size
#Lines
LOC

..--

Icons/03-May-2024-148

idle_test/03-May-2024-13,93510,448

CREDITS.txtD03-May-20241.8 KiB3827

ChangeLogD03-May-202455 KiB1,5921,068

HISTORY.txtD03-May-202410.1 KiB297193

NEWS.txtD03-May-202452 KiB1,300915

NEWS2x.txtD03-May-202426.5 KiB661441

README.txtD03-May-20249.5 KiB253221

TODO.txtD03-May-20248.3 KiB211162

__init__.pyD03-May-2024396 118

__main__.pyD03-May-2024159 96

autocomplete.pyD03-May-20249.1 KiB229182

autocomplete_w.pyD03-May-202420.6 KiB503376

autoexpand.pyD03-May-20243.1 KiB9783

browser.pyD03-May-20248.1 KiB250196

calltip.pyD03-May-20247.1 KiB206148

calltip_w.pyD03-May-20247 KiB202153

codecontext.pyD03-May-202411.2 KiB271212

colorizer.pyD03-May-202414.4 KiB385317

config-extensions.defD03-May-20242.2 KiB6356

config-highlight.defD03-May-20242.8 KiB106102

config-keys.defD03-May-202410.7 KiB310304

config-main.defD03-May-20243.1 KiB9485

config.pyD03-May-202437.3 KiB912767

config_key.pyD03-May-202414.2 KiB328280

configdialog.pyD03-May-2024103.3 KiB2,4152,012

debugger.pyD03-May-202418.7 KiB551423

debugger_r.pyD03-May-202411.9 KiB394272

debugobj.pyD03-May-20244 KiB143119

debugobj_r.pyD03-May-20241.1 KiB4228

delegator.pyD03-May-20241 KiB3424

dynoption.pyD03-May-20242 KiB5948

editor.pyD03-May-202464.4 KiB1,6741,316

extend.txtD03-May-20243.5 KiB8465

filelist.pyD03-May-20243.8 KiB132111

format.pyD03-May-202415.4 KiB427340

grep.pyD03-May-20247.3 KiB222179

help.htmlD03-May-202468 KiB1,022980

help.pyD03-May-202411.6 KiB295248

help_about.pyD03-May-20248.9 KiB212173

history.pyD03-May-20244 KiB10793

hyperparser.pyD03-May-202412.6 KiB313204

idle.batD03-May-2024177 54

idle.pyD03-May-2024454 157

idle.pywD03-May-2024570 1817

iomenu.pyD03-May-202415.5 KiB438366

macosx.pyD03-May-20249.4 KiB288205

mainmenu.pyD03-May-20243.8 KiB126102

multicall.pyD03-May-202418.2 KiB449354

outwin.pyD03-May-20245.6 KiB188141

parenmatch.pyD03-May-20247 KiB184137

pathbrowser.pyD03-May-20243.1 KiB11290

percolator.pyD03-May-20243.5 KiB11992

pyparse.pyD03-May-202419.4 KiB590421

pyshell.pyD03-May-202461.4 KiB1,7131,382

query.pyD03-May-202414.7 KiB393314

redirector.pyD03-May-20246.7 KiB175138

replace.pyD03-May-20249.8 KiB308260

rpc.pyD03-May-202420.6 KiB636513

run.pyD03-May-202421 KiB643524

runscript.pyD03-May-20248.1 KiB214177

scrolledlist.pyD03-May-20244.4 KiB150118

search.pyD03-May-20245.4 KiB165133

searchbase.pyD03-May-20247.7 KiB211174

searchengine.pyD03-May-20247.2 KiB235194

sidebar.pyD03-May-202419.9 KiB545405

squeezer.pyD03-May-202412.5 KiB346234

stackviewer.pyD03-May-20244.3 KiB156125

statusbar.pyD03-May-20241.4 KiB5140

textview.pyD03-May-20246.7 KiB194149

tooltip.pyD03-May-20246.4 KiB187138

tree.pyD03-May-202416 KiB501405

undo.pyD03-May-202410.8 KiB367260

util.pyD03-May-2024721 2317

window.pyD03-May-20242.6 KiB9971

zoomheight.pyD03-May-20244.1 KiB12573

zzdummy.pyD03-May-20242 KiB7453

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            # Communicate 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 widget, used in browsers (nim).
84undo.py           # Manage undo stack.
85util.py           # Define objects imported elsewhere with no dependencies (nim)
86windows.py        # Manage window list and define listed top level.
87zoomheight.py     # Zoom window to full height of screen.
88
89Configuration
90-------------
91config-extensions.def # Defaults for extensions
92config-highlight.def  # Defaults for colorizing
93config-keys.def       # Defaults for key bindings
94config-main.def       # Defaults for font and general tabs
95
96Text
97----
98CREDITS.txt  # not maintained, displayed by About IDLE
99HISTORY.txt  # NEWS up to July 2001
100NEWS.txt     # commits, displayed by About IDLE
101README.txt   # this file, displayed by About IDLE
102TODO.txt     # needs review
103extend.txt   # about writing extensions
104help.html    # copy of idle.html in docs, displayed by IDLE Help
105
106Subdirectories
107--------------
108Icons        # small image files
109idle_test    # files for human test and automated unit tests
110
111Unused and Deprecated files and objects (nim)
112---------------------------------------------
113tooltip.py # unused
114
115
116
117IDLE MENUS
118Top level items and most submenu items are defined in mainmenu.
119Extensions add submenu items when active.  The names given are
120found, quoted, in one of these modules, paired with a '<<pseudoevent>>'.
121Each pseudoevent is bound to an event handler.  Some event handlers
122call another function that does the actual work.  The annotations below
123are intended to at least give the module where the actual work is done.
124'eEW' = editor.EditorWindow
125
126File
127  New File         # eEW.new_callback
128  Open...          # iomenu.open
129  Open Module      # eEw.open_module
130  Recent Files
131  Class Browser    # eEW.open_class_browser, browser.ClassBrowser
132  Path Browser     # eEW.open_path_browser, pathbrowser
133  ---
134  Save             # iomenu.save
135  Save As...       # iomenu.save_as
136  Save Copy As...  # iomenu.save_a_copy
137  ---
138  Print Window     # iomenu.print_window
139  ---
140  Close            # eEW.close_event
141  Exit             # flist.close_all_callback (bound in eEW)
142
143Edit
144  Undo             # undodelegator
145  Redo             # undodelegator
146  ---              # eEW.right_menu_event
147  Cut              # eEW.cut
148  Copy             # eEW.copy
149  Paste            # eEW.past
150  Select All       # eEW.select_all (+ see eEW.remove_selection)
151  ---              # Next 5 items use searchengine; dialogs use searchbase
152  Find             # eEW.find_event, search.SearchDialog.find
153  Find Again       # eEW.find_again_event, sSD.find_again
154  Find Selection   # eEW.find_selection_event, sSD.find_selection
155  Find in Files... # eEW.find_in_files_event, grep
156  Replace...       # eEW.replace_event, replace.ReplaceDialog.replace
157  Go to Line       # eEW.goto_line_event
158  Show Completions # autocomplete extension and autocompleteWidow (&HP)
159  Expand Word      # autoexpand extension
160  Show call tip    # Calltips extension and CalltipWindow (& Hyperparser)
161  Show surrounding parens  # parenmatch (& Hyperparser)
162
163Shell  # pyshell
164  View Last Restart    # pyshell.PyShell.view_restart_mark
165  Restart Shell        # pyshell.PyShell.restart_shell
166  Interrupt Execution  # pyshell.PyShell.cancel_callback
167
168Debug (Shell only)
169  Go to File/Line
170  debugger         # debugger, debugger_r, PyShell.toggle_debugger
171  Stack Viewer     # stackviewer, PyShell.open_stack_viewer
172  Auto-open Stack Viewer  # stackviewer
173
174Format (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
187Run (Editor only)
188  Python Shell     # pyshell
189  ---
190  Check Module     # runscript
191  Run Module       # runscript
192
193Options
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
201  ---
202  Code Context (ed)# codecontext extension
203
204Window
205  Zoomheight       # zoomheight extension
206  ---
207  <open windows>   # windows
208
209Help
210  About IDLE       # eEW.about_dialog, help_about.AboutDialog
211  ---
212  IDLE Help        # eEW.help_dialog, helpshow_idlehelp
213  Python Doc       # eEW.python_docs
214  Turtle Demo      # eEW.open_turtle_demo
215  ---
216  <other help sources>
217
218<Context Menu> (right click)
219  Defined in editor, PyShelpyshellut
220    Cut
221    Copy
222    Paste
223    ---
224    Go to file/line (shell and output only)
225    Set Breakpoint (editor only)
226    Clear Breakpoint (editor only)
227  Defined in debugger
228    Go to source line
229    Show stack frame
230
231<No menu>
232Center Insert      # eEW.center_insert_event
233
234
235CODE STYLE -- Generally PEP 8.
236
237import
238------
239Put import at the top, unless there is a good reason otherwise.
240PEP 8 says to group stdlib, 3rd-party dependencies, and package imports.
241For idlelib, the groups are general stdlib, tkinter, and idlelib.
242Sort modules within each group, except that tkinter.ttk follows tkinter.
243Sort 'from idlelib import mod1' and 'from idlelib.mod2 import object'
244together by module, ignoring within module objects.
245Put 'import __main__' after other idlelib imports.
246
247Imports only needed for testing are put not at the top but in an
248htest function def or "if __name__ == '__main__'" clause.
249
250Within module imports like "from idlelib.mod import class" may cause
251circular imports to deadlock.  Even without this, circular imports may
252require at least one of the imports to be delayed until a function call.
253