What's New in IDLE 3.7.0 (since 3.6.0) Released on 2018-06-18? ====================================== bpo-21474: Update word/identifier definition from ascii to unicode. In text and entry boxes, this affects selection by double-click, movement left/right by control-left/right, and deletion left/right by control-BACKSPACE/DEL. bpo-33204: Consistently color invalid string prefixes. A 'u' string prefix cannot be paired with either 'r' or 'f'. IDLE now consistently colors as much of the prefix, starting at the right, as is valid. Revise and extend colorizer test. bpo-32984: Set __file__ while running a startup file. Like Python, IDLE optionally runs 1 startup file in the Shell window before presenting the first interactive input prompt. For IDLE, option -s runs a file named in environmental variable IDLESTARTUP or PYTHONSTARTUP; -r file runs file. Python sets __file__ to the startup file name before running the file and unsets it before the first prompt. IDLE now does the same when run normally, without the -n option. bpo-32940: Replace StringTranslatePseudoMapping with faster code. bpo-32916: Change 'str' to 'code' in idlelib.pyparse and users. bpo-32905: Remove unused code in pyparse module. bpo-32874: IDLE - add pyparse tests with 97% coverage. bpo-32837: IDLE - require encoding argument for textview.view_file. Using the system and place-dependent default encoding for open() is a bad idea for IDLE's system and location-independent files. bpo-32826: Add "encoding=utf-8" to open() in IDLE's test_help_about. GUI test test_file_buttons() only looks at initial ascii-only lines, but failed on systems where open() defaults to 'ascii' because readline() internally reads and decodes far enough ahead to encounter a non-ascii character in CREDITS.txt. bpo-32765: Update configdialog General tab create page docstring. Add new widgets to the widget list. bpo-32207: Improve tk event exception tracebacks in IDLE. When tk event handling is driven by IDLE's run loop, a confusing and distracting queue.EMPTY traceback context is no longer added to tk event exception tracebacks. The traceback is now the same as when event handling is driven by user code. Patch based on a suggestion by Serhiy Storchaka. bpo-32164: Delete unused file idlelib/tabbedpages.py. Use of TabbedPageSet in configdialog was replaced by ttk.Notebook. bpo-32100: Fix old and new bugs in pathbrowser; improve tests. Patch mostly by Cheryl Sabella. bpo-31860: The font sample in the settings dialog is now editable. Edits persist while IDLE remains open. Patch by Serhiy Storchake and Terry Jan Reedy. bpo-31858: Restrict shell prompt manipulation to the shell. Editor and output windows only see an empty last prompt line. This simplifies the code and fixes a minor bug when newline is inserted. Sys.ps1, if present, is read on Shell start-up, but is not set or changed. Patch by Terry Jan Reedy. bpo-28603: Fix a TypeError that caused a shell restart when printing a traceback that includes an exception that is unhashable. Patch by Zane Bitter. bpo-13802: Use non-Latin characters in the Font settings sample. Even if one selects a font that defines a limited subset of the unicode Basic Multilingual Plane, tcl/tk will use other fonts that define a character. The expanded example give users of non-Latin characters a better idea of what they might see in the shell and editors. To make room for the expanded sample, frames on the Font tab are re-arranged. The Font/Tabs help explains a bit about the additions. Patch by Terry Jan Reedy bpo-31460: Simplify the API of IDLE's Module Browser. Passing a widget instead of an flist with a root widget opens the option of creating a browser frame that is only part of a window. Passing a full file name instead of pieces assumed to come from a .py file opens the possibility of browsing python files that do not end in .py. bpo-31649: Make _htest and _utest parameters keyword-only. These are used to adjust code for human and unit tests. bpo-31459: Rename module browser from Class Browser to Module Browser. The original module-level class and method browser became a module browser, with the addition of module-level functions, years ago. Nested classes and functions were added yesterday. For back- compatibility, the virtual event <>, which appears on the Keys tab of the Settings dialog, is not changed. Patch by Cheryl Sabella. bpo-1612262: Module browser now shows nested classes and functions. Original patches for code and tests by Guilherme Polo and Cheryl Sabella, respectively. Revisions by Terry Jan Reedy. bpo-31500: Tk's default fonts now are scaled on HiDPI displays. This affects all dialogs. Patch by Serhiy Storchaka. bpo-31493: Fix code context update and font update timers. Canceling timers prevents a warning message when test_idle completes. bpo-31488: Update non-key options in former extension classes. When applying configdialog changes, call .reload for each feature class. Change ParenMatch so updated options affect existing instances attached to existing editor windows. bpo-31477: Improve rstrip entry in IDLE doc. Strip Trailing Whitespace strips more than blank spaces. Multiline string literals are not skipped. bpo-31480: fix tests to pass with zzdummy extension disabled. (#3590) To see the example in action, enable it on options extensions tab. bpo-31421: Document how IDLE runs tkinter programs. IDLE calls tcl/tk update in the background in order to make live interaction and experimentatin with tkinter applications much easier. bpo-31414: Fix tk entry box tests by deleting first. Adding to an int entry is not the same as deleting and inserting because int('') will fail. Patch by Terry Jan Reedy. bpo-27099: Convert IDLE's built-in 'extensions' to regular features. About 10 IDLE features were implemented as supposedly optional extensions. Their different behavior could be confusing or worse for users and not good for maintenance. Hence the conversion. The main difference for users is that user configurable key bindings for builtin features are now handled uniformly. Now, editing a binding in a keyset only affects its value in the keyset. All bindings are defined together in the system-specific default keysets in config- extensions.def. All custom keysets are saved as a whole in config- extension.cfg. All take effect as soon as one clicks Apply or Ok. The affected events are '<>', '<>', '<>', '<>', '<>', '<>', '<>', and '<>'. Any (global) customizations made before 3.6.3 will not affect their keyset-specific customization after 3.6.3. and vice versa. Initial patch by Charles Wohlganger, revised by Terry Jan Reedy. bpo-31051: Rearrange condigdialog General tab. Sort non-Help options into Window (Shell+Editor) and Editor (only). Leave room for the addition of new options. Patch by Terry Jan Reedy. bpo-30617: Add docstrings and tests for outwin subclass of editor. Move some data and functions from the class to module level. Patch by Cheryl Sabella. bpo-31287: Do not modify tkinter.messagebox in test_configdialog. Instead, mask it with an instance mock that can be deleted. Patch by Terry Jan Reedy. bpo-30781: Use ttk widgets in ConfigDialog pages. These should especially look better on MacOSX. Patches by Terry Jan Reedy and Cheryl Sabella. bpo-31206: Factor HighPage(Frame) class from ConfigDialog. Patch by Cheryl Sabella. bp0-31001: Add tests for configdialog highlight tab. Patch by Cheryl Sabella. bpo-31205: Factor KeysPage(Frame) class from ConfigDialog. The slightly modified tests continue to pass. Patch by Cheryl Sabella. bpo-31002: Add tests for configdialog keys tab. Patch by Cheryl Sabella. bpo-19903: Change calltipes to use inspect.signature. Idlelib.calltips.get_argspec now uses inspect.signature instead of inspect.getfullargspec, like help() does. This improves the signature in the call tip in a few different cases, including builtins converted to provide a signature. A message is added if the object is not callable, has an invalid signature, or if it has positional-only parameters. Patch by Louie Lu. bop-31083: Add an outline of a TabPage class in configdialog. Add template as comment. Update existing classes to match outline. Initial patch by Cheryl Sabella. bpo-31050: Factor GenPage(Frame) class from ConfigDialog. The slightly modified tests for the General tab continue to pass. Patch by Cheryl Sabella. bpo-31004: Factor FontPage(Frame) class from ConfigDialog. The slightly modified tests continue to pass. The General test broken by the switch to ttk.Notebook is fixed. Patch mostly by Cheryl Sabella. bpo-30781: IDLE - Use ttk Notebook in ConfigDialog. This improves navigation by tabbing. Patch by Terry Jan Reedy. bpo-31060: IDLE - Finish rearranging methods of ConfigDialog. Grouping methods pertaining to each tab and the buttons will aid writing tests and improving the tabs and will enable splitting the groups into classes. Patch by Terry Jan Reedy. bpo-30853: IDLE -- Factor a VarTrace class out of ConfigDialog. Instance tracers manages pairs consisting of a tk variable and a callback function. When tracing is turned on, setting the variable calls the function. Test coverage for the new class is 100%. Patch by Terry Jan Reedy. bpo-31003: IDLE: Add more tests for General tab. Patch by Terry Jan Reedy. bpo-30993: IDLE - Improve configdialog font page and tests. *In configdialog: Document causal pathways in create_font_tab docstring. Simplify some attribute names. Move set_samples calls to var_changed_font (idea from Cheryl Sabella). Move related functions to positions after the create widgets function. * In test_configdialog: Fix test_font_set so not order dependent. Fix renamed test_indent_scale so it tests the widget. Adjust tests for movement of set_samples call. Add tests for load functions. Put all font tests in one class and tab indent tests in another. Except for two lines, these tests completely cover the related functions. Patch by Terry Jan Reedy. bpo-30981: IDLE -- Add more configdialog font page tests. bpo-28523: IDLE: replace 'colour' with 'color' in configdialog. bpo-30917: Add tests for idlelib.config.IdleConf. Increase coverage from 46% to 96%. Patch by Louie Lu. bpo-30913: Document ConfigDialog tk Vars, methods, and widgets in docstrings This will facilitate improving the dialog and splitting up the class. Original patch by Cheryl Sabella. bpo-30899: Add tests for ConfigParser subclasses in config. Coverage is 100% for those classes and ConfigChanges. Patch by Louie Lu. bpo-30881: Add docstrings to browser.py. Patch by Cheryl Sabella. bpo-30851: Remove unused tk variables in configdialog. One is a duplicate, one is set but cannot be altered by users. Patch by Cheryl Sabella. bpo-30870: Select font option with Up and Down keys, as well as with mouse. Added test increases configdialog coverage to 60% Patches mostly by Louie Lu. bpo-8231: Call config.IdleConf.GetUserCfgDir only once per process. bpo-30779: Factor ConfigChanges class from configdialog, put in config; test. * In config, put dump test code in a function; run it and unittest in 'if __name__ == '__main__'. * Add class config.ConfigChanges based on changes_class_v4.py on bpo issue. * Add class test_config.ChangesTest, partly using configdialog_tests_v1.py. * Revise configdialog to use ConfigChanges; see tracker msg297804. * Revise test_configdialog to match configdialog changes. * Remove configdialog functions unused or moved to ConfigChanges. Cheryl Sabella contributed parts of the patch. bpo-30777: Configdialog - add docstrings and improve comments. Patch by Cheryl Sabella. bpo-30495: Improve textview with docstrings, PEP8 names, and more tests. Split TextViewer class into ViewWindow, ViewFrame, and TextFrame classes so that instances of the latter two can be placed with other widgets within a multiframe window. Patches by Cheryl Sabella and Terry Jan Reedy. bpo-30723: Make several improvements to parenmatch. * Add 'parens' style to highlight both opener and closer. * Make 'default' style, which is not default, a synonym for 'opener'. * Make time-delay work the same with all styles. * Add help for config dialog extensions tab, including parenmatch. * Add new tests. Original patch by Charles Wohlganger. Revisions by Terry Jan Reedy bpo-30674: Grep -- Add docstrings. Patch by Cheryl Sabella. bpo-21519: IDLE's basic custom key entry dialog now detects duplicates properly. Original patch by Saimadhav Heblikar. bpo-29910: IDLE no longer deletes a character after commenting out a region by a key shortcut. Add "return 'break'" for this and other potential conflicts between IDLE and default key bindings. Patch by Serhiy Storchaka. bpo-30728: Modernize idlelib.configdialog: * replace import * with specific imports; * lowercase method and attribute lines. Patch by Cheryl Sabella. bpo-6739: Verify user-entered key sequences by trying to bind them with to a tk widget. Add tests for all 3 validation functions. Original patch by G Polo. Tests added by Cheryl Sabella. Code revised and more tests added by Terry Jan Reedy bpo-24813: Add icon to help_about and make other changes. bpo-15786: Fix several problems with IDLE's autocompletion box. The following should now work: clicking on selection box items; using the scrollbar; selecting an item by hitting Return. Hangs on MacOSX should no longer happen. Patch by Louie Lu. bpo-25514: Add doc subsubsection about IDLE failure to start. Popup no-connection message directs users to this section. bpo-30642: Fix reference leaks in IDLE tests. Patches by Louie Lu and Terry Jan Reedy. bpo-30495: Add docstrings for textview.py and use PEP8 names. Patches by Cheryl Sabella and Terry Jan Reedy. bpo-30290: Help-about: use pep8 names and add tests. Increase coverage to 100%. Patches by Louie Lu, Cheryl Sabella, and Terry Jan Reedy. bpo-30303: Add _utest option to textview; add new tests. Increase coverage to 100%. Patches by Louie Lu and Terry Jan Reedy. Issue #29071: IDLE colors f-string prefixes but not invalid ur prefixes. Issue #28572: Add 10% to coverage of IDLE's test_configdialog. Update and augment description of the configuration system. What's New in IDLE 3.6.0 (since 3.5.0) Released on 2016-12-23 ====================================== - Issue #15308: Add 'interrupt execution' (^C) to Shell menu. Patch by Roger Serwy, updated by Bayard Randel. - Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. - Issue #27891: Consistently group and sort imports within idlelib modules. - Issue #17642: add larger font sizes for classroom projection. - Add version to title of IDLE help window. - Issue #25564: In section on IDLE -- console differences, mention that using exec means that __builtins__ is defined for each statement. - Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets from being selected when no custom theme was defined. - Issue #27714: text_textview and test_autocomplete now pass when re-run in the same process. This occurs when test_idle fails when run with the -w option but without -jn. Fix warning from test_config. - Issue #27621: Put query response validation error messages in the query box itself instead of in a separate massagebox. Redo tests to match. Add Mac OSX refinements. Original patch by Mark Roseman. - Issue #27620: Escape key now closes Query box as cancelled. - Issue #27609: IDLE: tab after initial whitespace should tab, not autocomplete. This fixes problem with writing docstrings at least twice indented. - Issue #27609: Explicitly return None when there are also non-None returns. In a few cases, reverse a condition and eliminate a return. - Issue #25507: IDLE no longer runs buggy code because of its tkinter imports. Users must include the same imports required to run directly in Python. - Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets. Make the default key set depend on the platform. Add tests for the changes to the config module. - Issue #27452: add line counter and crc to IDLE configHandler test dump. - Issue #27477: IDLE search dialogs now use ttk widgets. - Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets. Make the default key set depend on the platform. Add tests for the changes to the config module. - Issue #27452: make command line "idle-test> python test_help.py" work. __file__ is relative when python is started in the file's directory. - Issue #27452: add line counter and crc to IDLE configHandler test dump. - Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets. Module had subclasses SectionName, ModuleName, and HelpSource, which are used to get information from users by configdialog and file =>Load Module. Each subclass has itw own validity checks. Using ModuleName allows users to edit bad module names instead of starting over. Add tests and delete the two files combined into the new one. - Issue #27372: Test_idle no longer changes the locale. - Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. - Issue #27245: IDLE: Cleanly delete custom themes and key bindings. Previously, when IDLE was started from a console or by import, a cascade of warnings was emitted. Patch by Serhiy Storchaka. - Issue #24137: Run IDLE, test_idle, and htest with tkinter default root disabled. Fix code and tests that fail with this restriction. Fix htests to not create a second and redundant root and mainloop. - Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import. - Issue #5124: Paste with text selected now replaces the selection on X11. This matches how paste works on Windows, Mac, most modern Linux apps, and ttk widgets. Original patch by Serhiy Storchaka. - Issue #24750: Switch all scrollbars in IDLE to ttk versions. Where needed, minimal tests are added to cover changes. - Issue #24759: IDLE requires tk 8.5 and availability ttk widgets. Delete now unneeded tk version tests and code for older versions. Add test for IDLE syntax colorizer. - Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed. - Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx. - Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory is a private implementation of test.test_idle and tool for maintainers. - Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests. These persisted after other warnings were suppressed in #20567. Apply Serhiy Storchaka's update_idletasks solution to four test files. Record this additional advice in idle_test/README.txt - Issue #20567: Revise idle_test/README.txt with advice about avoiding tk warning messages from tests. Apply advice to several IDLE tests. - Issue # 24225: Update idlelib/README.txt with new file names and event handlers. - Issue #27156: Remove obsolete code not used by IDLE. Replacements: 1. help.txt, replaced by help.html, is out-of-date and should not be used. Its dedicated viewer has be replaced by the html viewer in help.py. 2. 'import idlever; I = idlever.IDLE_VERSION' is the same as 'import sys; I = version[:version.index(' ')]' 3. After 'ob = stackviewer.VariablesTreeItem(*args)', 'ob.keys()' == 'list(ob.object.keys). 4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk - Issue #27117: Make colorizer htest and turtledemo work with dark themes. Move code for configuring text widget colors to a new function. - Issue #24225: Rename many idlelib/*.py and idle_test/test_*.py files. Edit files to replace old names with new names when the old name referred to the module rather than the class it contained. See the issue and IDLE section in What's New in 3.6 for more. - Issue #26673: When tk reports font size as 0, change to size 10. Such fonts on Linux prevented the configuration dialog from opening. - Issue #21939: Add test for IDLE's percolator. Original patch by Saimadhav Heblikar. - Issue #21676: Add test for IDLE's replace dialog. Original patch by Saimadhav Heblikar. - Issue #18410: Add test for IDLE's search dialog. Original patch by Westley Martínez. - Issue #21703: Add test for undo delegator. Patch mostly by Saimadhav Heblikar . - Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. - Issue #23977: Add more asserts to test_delegator. - Issue #20640: Add tests for idlelib.configHelpSourceEdit. Patch by Saimadhav Heblikar. - In the 'IDLE-console differences' section of the IDLE doc, clarify how running with IDLE affects sys.modules and the standard streams. - Issue #25507: fix incorrect change in IOBinding that prevented printing. Augment IOBinding htest to include all major IOBinding functions. - Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION MARK in README.txt and open this and NEWS.txt with 'ascii'. Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'. - Issue 15348: Stop the debugger engine (normally in a user process) before closing the debugger window (running in the IDLE process). This prevents the RuntimeErrors that were being caught and ignored. - Issue #24455: Prevent IDLE from hanging when a) closing the shell while the debugger is active (15347); b) closing the debugger with the [X] button (15348); and c) activating the debugger when already active (24455). The patch by Mark Roseman does this by making two changes. 1. Suspend and resume the gui.interaction method with the tcl vwait mechanism intended for this purpose (instead of root.mainloop & .quit). 2. In gui.run, allow any existing interaction to terminate first. - Change 'The program' to 'Your program' in an IDLE 'kill program?' message to make it clearer that the program referred to is the currently running user program, not IDLE itself. - Issue #24750: Improve the appearance of the IDLE editor window status bar. Patch by Mark Roseman. - Issue #25313: Change the handling of new built-in text color themes to better address the compatibility problem introduced by the addition of IDLE Dark. Consistently use the revised idleConf.CurrentTheme everywhere in idlelib. - Issue #24782: Extension configuration is now a tab in the IDLE Preferences dialog rather than a separate dialog. The former tabs are now a sorted list. Patch by Mark Roseman. - Issue #22726: Re-activate the config dialog help button with some content about the other buttons and the new IDLE Dark theme. - Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme. It is more or less IDLE Classic inverted, with a cobalt blue background. Strings, comments, keywords, ... are still green, red, orange, ... . To use it with IDLEs released before November 2015, hit the 'Save as New Custom Theme' button and enter a new name, such as 'Custom Dark'. The custom theme will work with any IDLE release, and can be modified. - Issue #25224: README.txt is now an idlelib index for IDLE developers and curious users. The previous user content is now in the IDLE doc chapter. 'IDLE' now means 'Integrated Development and Learning Environment'. - Issue #24820: Users can now set breakpoint colors in Settings -> Custom Highlighting. Original patch by Mark Roseman. - Issue #24972: Inactive selection background now matches active selection background, as configured by users, on all systems. Found items are now always highlighted on Windows. Initial patch by Mark Roseman. - Issue #24570: Idle: make calltip and completion boxes appear on Macs affected by a tk regression. Initial patch by Mark Roseman. - Issue #24988: Idle ScrolledList context menus (used in debugger) now work on Mac Aqua. Patch by Mark Roseman. - Issue #24801: Make right-click for context menu work on Mac Aqua. Patch by Mark Roseman. - Issue #25173: Associate tkinter messageboxes with a specific widget. For Mac OSX, make them a 'sheet'. Patch by Mark Roseman. - Issue #25198: Enhance the initial html viewer now used for Idle Help. * Properly indent fixed-pitch text (patch by Mark Roseman). * Give code snippet a very Sphinx-like light blueish-gray background. * Re-use initial width and height set by users for shell and editor. * When the Table of Contents (TOC) menu is used, put the section header at the top of the screen. - Issue #25225: Condense and rewrite Idle doc section on text colors. - Issue #21995: Explain some differences between IDLE and console Python. - Issue #22820: Explain need for *print* when running file from Idle editor. - Issue #25224: Doc: augment Idle feature list and no-subprocess section. - Issue #25219: Update doc for Idle command line options. Some were missing and notes were not correct. - Issue #24861: Most of idlelib is private and subject to change. Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__. - Issue #25199: Idle: add synchronization comments for future maintainers. - Issue #16893: Replace help.txt with help.html for Idle doc display. The new idlelib/help.html is rstripped Doc/build/html/library/idle.html. It looks better than help.txt and will better document Idle as released. The tkinter html viewer that works for this file was written by Mark Roseman. The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated. - Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6. - Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts). What's New in IDLE 3.5.0? ========================= *Release date: 2015-09-13* - Issue #23672: Allow Idle to edit and run files with astral chars in name. Patch by Mohd Sanad Zaki Rizvi. - Issue 24745: Idle editor default font. Switch from Courier to platform-sensitive TkFixedFont. This should not affect current customized font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman. - Issue #21192: Idle editor. When a file is run, put its name in the restart bar. Do not print false prompts. Original patch by Adnan Umer. - Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy. - Issue #23184: remove unused names and imports in idlelib. Initial patch by Al Sweigart. - Issue #20577: Configuration of the max line length for the FormatParagraph extension has been moved from the General tab of the Idle preferences dialog to the FormatParagraph tab of the Config Extensions dialog. Patch by Tal Einat. - Issue #16893: Update Idle doc chapter to match current Idle and add new information. - Issue #3068: Add Idle extension configuration dialog to Options menu. Changes are written to HOME/.idlerc/config-extensions.cfg. Original patch by Tal Einat. - Issue #16233: A module browser (File : Class Browser, Alt+C) requires an editor window with a filename. When Class Browser is requested otherwise, from a shell, output window, or 'Untitled' editor, Idle no longer displays an error box. It now pops up an Open Module box (Alt+M). If a valid name is entered and a module is opened, a corresponding browser is also opened. - Issue #4832: Save As to type Python files automatically adds .py to the name you enter (even if your system does not display it). Some systems automatically add .txt when type is Text files. - Issue #21986: Code objects are not normally pickled by the pickle module. To match this, they are no longer pickled when running under Idle. - Issue #23180: Rename IDLE "Windows" menu item to "Window". Patch by Al Sweigart. - Issue #17390: Adjust Editor window title; remove 'Python', move version to end. - Issue #14105: Idle debugger breakpoints no longer disappear when inserting or deleting lines. - Issue #17172: Turtledemo can now be run from Idle. Currently, the entry is on the Help menu, but it may move to Run. Patch by Ramchandra Apt and Lita Cho. - Issue #21765: Add support for non-ascii identifiers to HyperParser. - Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav Heblikar. - Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster. - Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar. - Issue #21686: add unittest for HyperParser. Original patch by Saimadhav Heblikar. - Issue #12387: Add missing upper(lower)case versions of default Windows key bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy. - Issue #21695: Closing a Find-in-files output window while the search is still in progress no longer closes Idle. - Issue #18910: Add unittest for textView. Patch by Phil Webster. - Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar. - Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster. - Issue #21477: htest.py - Improve framework, complete set of tests. Patches by Saimadhav Heblikar - Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin consolidating and improving human-validated tests of Idle. Change other files as needed to work with htest. Running the module as __main__ runs all tests. - Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation. - Issue #21284: Paragraph reformat test passes after user changes reformat width. - Issue #17654: Ensure IDLE menus are customized properly on OS X for non-framework builds and for all variants of Tk. What's New in IDLE 3.4.0? ========================= *Release date: 2014-03-16* - Issue #17390: Display Python version on Idle title bar. Initial patch by Edmond Burnett. - Issue #5066: Update IDLE docs. Patch by Todd Rovito. - Issue #17625: Close the replace dialog after it is used. - Issue #16226: Fix IDLE Path Browser crash. (Patch by Roger Serwy) - Issue #15853: Prevent IDLE crash on OS X when opening Preferences menu with certain versions of Tk 8.5. Initial patch by Kevin Walzer. What's New in IDLE 3.3.0? ========================= *Release date: 2012-09-29* - Issue #17625: Close the replace dialog after it is used. - Issue #7163: Propagate return value of sys.stdout.write. - Issue #15318: Prevent writing to sys.stdin. - Issue #4832: Modify IDLE to save files with .py extension by default on Windows and OS X (Tk 8.5) as it already does with X11 Tk. - Issue #13532, #15319: Check that arguments to sys.stdout.write are strings. - Issue # 12510: Attempt to get certain tool tips no longer crashes IDLE. Erroneous tool tips have been corrected. Default added for callables. - Issue #10365: File open dialog now works instead of crashing even when parent window is closed while dialog is open. - Issue 14876: use user-selected font for highlight configuration. - Issue #14937: Perform auto-completion of filenames in strings even for non-ASCII filenames. Likewise for identifiers. - Issue #8515: Set __file__ when run file in IDLE. Initial patch by Bruce Frederiksen. - IDLE can be launched as `python -m idlelib` - Issue #14409: IDLE now properly executes commands in the Shell window when it cannot read the normal config files on startup and has to use the built-in default key bindings. There was previously a bug in one of the defaults. - Issue #3573: IDLE hangs when passing invalid command line args (directory(ies) instead of file(s)). - Issue #14018: Update checks for unstable system Tcl/Tk versions on OS X to include versions shipped with OS X 10.7 and 10.8 in addition to 10.6. What's New in IDLE 3.2.1? ========================= *Release date: 15-May-11* - Issue #6378: Further adjust idle.bat to start associated Python - Issue #11896: Save on Close failed despite selecting "Yes" in dialog. - Issue #1028: Ctrl-space binding to show completions was causing IDLE to exit. Tk < 8.5 was sending invalid Unicode null; replaced with valid null. - Issue #4676: toggle failing on Tk 8.5, causing IDLE exits and strange selection behavior. Improve selection extension behaviour. - Issue #3851: toggle non-functional when NumLock set on Windows. What's New in IDLE 3.1b1? ========================= *Release date: 06-May-09* - Issue #5707: Use of 'filter' in keybindingDialog.py was causing custom key assignment to fail. Patch by Amaury Forgeot d'Arc. - Issue #4815: Offer conversion to UTF-8 if source files have no encoding declaration and are not encoded in UTF-8. - Issue #4008: Fix problems with non-ASCII source files. - Issue #4323: Always encode source as UTF-8 without asking the user (unless a different encoding is declared); remove user configuration of source encoding; all according to PEP 3120. - Issue #2665: On Windows, an IDLE installation upgraded from an old version would not start if a custom theme was defined. ------------------------------------------------------------------------ Refer to NEWS2x.txt and HISTORY.txt for information on earlier releases. ------------------------------------------------------------------------