[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
Al Sweigart added the comment: *Bump* Just wanted to bring attention to this issue. We could keep "Regular expression" instead of "Regex" for the label (Sublime Text and other editors have "Regular expression") I think Mark's patch would be better over mine. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23218> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28524] Set default argument of logging.disable() to logging.CRITICAL
Al Sweigart added the comment: Setting up different configurations for dev/prod is a bit more complicated than I'd like for most projects. I'd instead just call logging.disable(logging.CRITICAL). The entire point of this is just for the convenience of being able to disable logging messages by calling logging.disable() instead of logging.disable(logging.CRITICAL). It's a two-line change, backwards compatible, and (imo) a sensible default. You call logging.disable() expecting it to disable logging. You might want to disable a lower level, but as the Google search shows, most people just want to disable all logging period. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28524> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28524] Set default argument of logging.disable() to logging.CRITICAL
Al Sweigart added the comment: As a general indicator, I did a google search for "logging.disable(logging.XXX)" for the different levels. The number of results passing ERROR, WARN, DEBUG, and INFO are under a couple dozen each. But the number of results for "logging.disable(logging.CRITICAL)" is 3,800. It's a rough estimate, but it shows that 95%+ of the time people call logging.disable() they want to disable all logging. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28524> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28524] Set default argument of logging.disable() to logging.CRITICAL
Al Sweigart added the comment: > How about logger.disabled = True. This seems to violate "there should be one and only one way to do it". What happens when logging.disabled is True but then logging.disable(logging.NOTSET) is called? I could see this being a gotcha. Since logging.CRITICAL is 50, I think it's reasonable to assume that no one would create a logging level larger than sys.maxsize. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28524> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28524] Set default argument of logging.disable() to logging.CRITICAL
Al Sweigart added the comment: xiang.zhang: The use case I've found is that I often have logging enabled while writing code, and then want to shut it off once I've finished. This might not be everyone's use case, but this is a backwards-compatible change since it's currently a required argument. If there's a sensible default, I think this is it. rhettinger: We could use sys.maxsize instead of logging.CRITICAL to disable any custom logging levels as well if this is a concern. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28524> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28524] Set default argument of logging.disable() to logging.CRITICAL
New submission from Al Sweigart: As a convenience, we could make the default argument for logging.disable()'s lvl argument as logging.CRITICAL. This would make disabling all logging messages: logging.disable() ...instead of the more verbose: logging.disable(logging.CRITICAL) This one-line change is backwards compatible. -- components: Library (Lib) files: default_critical.patch keywords: patch messages: 279341 nosy: Al.Sweigart priority: normal severity: normal status: open title: Set default argument of logging.disable() to logging.CRITICAL type: enhancement Added file: http://bugs.python.org/file45208/default_critical.patch ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28524> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue27615] IDLE's debugger steps into PyShell.py for calls to print() et al
New submission from Al Sweigart: Currently if the user "steps into" a print(), input(), sys.stdout.write() or other stdio-related call with the Source checkbox checked, it brings up PyShell.py. This is often confusing for beginner programmers (the target audience of IDLE) and most often not helpful for experienced developers who are stepping through their program. Comparing the cost/benefit, I'd be much more helpful for IDLE to not bring up PyShell.py and instead just treat every "step into" of a print()/input()/anything-that-goes-to-pyshell as a "step over" instead. -- assignee: terry.reedy components: IDLE messages: 271295 nosy: Al.Sweigart, terry.reedy priority: normal severity: normal status: open title: IDLE's debugger steps into PyShell.py for calls to print() et al versions: Python 3.6 ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue27615> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24990] Foreign language support in turtle module
Al Sweigart added the comment: Good idea. I'll bring it up on the python-ideas list. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24990> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24990] Foreign language support in turtle module
Al Sweigart added the comment: I volunteer to produce the patch. I know Bryson's "Teach Your Kids to Code" book (which features Python's turtle module) hasn't been translated to other languages yet. It would be nice to get this committed sooner rather than later. I'm open to ideas for expanding documentation of turtle to other languages. -- ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24990> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24990] Foreign language support in turtle module
New submission from Al Sweigart: I'd like to propose adding foreign language names for the names in the turtle module. This would effectively take this code: import turtle t = turtle.Pen() t.pencolor('green') t.forward(100) ...and have this code in French be completely equivalent: import turtle t = turtle.Plume() t.couleurplume('vert') t.avant(100) (Pardon my google-translate French.) This would be built into the turtle module (the "turtle" name itself would be unchanged). They would be available no matter what the OS's localization settings were set to. This, of course, is terrible way for a software module to implement internationalization, which usually does not apply to the source code names itself. But I'd like to explain why the turtle module is different. The turtle module is not used for professional software development, but instead as a teaching tool for children. While professional developers are expected to obtain proficiency with English, the same does not apply to school kids who are just taking a small computer programming unit. Having the turtle module available in their native language would remove a large barrier and let them focus on the core programming concepts that turtle provides. The popular Scratch tool has a similar internationalized setup and also has LOGO-style commands, so the translation work is already done. Technically, it would be possible to mix multiple natural languages in the same program. This would be a bad practice, but I also don't see it as a common one. The color strings (e.g. 'green') are tk-dependent, but this can be worked around in the turtle module without requiring changes to tk. -- components: Library (Lib) messages: 249586 nosy: Al.Sweigart priority: normal severity: normal status: open title: Foreign language support in turtle module type: enhancement versions: Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.5 ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24990> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24826] ability to integrate editor, shell, debugger in one window
Al Sweigart added the comment: Is this a duplicate of https://bugs.python.org/issue9262 Either way, there's some good discussion there and also on https://bugs.python.org/issue24750 (ctrl-f for tabbed) -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24826 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24799] IDLE should detect changes to open files by other processes
New submission from Al Sweigart: Many IDEs will check for changes to their opened files made by other programs. This is usually done with a quick check when the IDE's window gets focus. A dialog will tell the user the file has changed on disk and ask if they want to reload it. This dialog is only shown when the file has changed AND there are unsaved changes made in the editor. Otherwise, the file changes are just silently reloaded. (This is the behavior of Sublime Text.) -- components: IDLE messages: 248059 nosy: Al.Sweigart priority: normal severity: normal status: open title: IDLE should detect changes to open files by other processes type: enhancement versions: Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.6 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24799 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24225] IDLE test filenames don't match script filenames.
Changes by Al Sweigart asweig...@gmail.com: Added file: http://bugs.python.org/file39428/idletest_renaming.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24225 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24225] IDLE test filenames don't match script filenames.
Al Sweigart added the comment: The idle_renaming.patch file is for the file renamings under idlelib The idletest_renaming.patch file is for the file renamings under idlelib/idle_test The idle_updating_imports.patch file is for the content updates (mostly for import statements) due to the renamings. The unit tests all pass with these changes. -- keywords: +patch type: - enhancement Added file: http://bugs.python.org/file39427/idle_renaming.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24225 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24225] IDLE test filenames don't match script filenames.
Al Sweigart added the comment: (I can reformat these patch files if that helps.) -- Added file: http://bugs.python.org/file39429/idle_updating_imports.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24225 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24225] IDLE test filenames don't match script filenames.
Al Sweigart added the comment: For reference, here's all the files and their new filenames: aboutDialog.pyabout_dialog.py AutoComplete.pyautocomplete.py AutoCompleteWindow.pyautocomplete_window.py AutoExpand.pyautoexpand.py Bindings.pybindings.py CallTips.pycalltips.py CallTipWindow.pycalltip_window.py ClassBrowser.pyclass_browser.py CodeContext.pycode_context.py ColorDelegator.pycolor_delegator.py configDialog.pyconfig_dialog.py configHandler.pyconfig_handler.py configHelpSourceEdit.pyconfig_help_source_edit.py configSectionNameDialog.pyconfig_section_name_dialog.py Debugger.pydebugger.py Delegator.pydelegator.py dynOptionMenuWidget.pydyn_option_menu_widget.py EditorWindow.pyeditor_window.py FileList.pyfile_list.py FormatParagraph.pyformat_paragraph.py GrepDialog.pygrep_dialog.py HyperParser.pyhyper_parser.py IdleHistory.pyidle_history.py idlever.pyidle_ver.py IOBinding.pyio_binding.py keybindingDialog.pykeybinding_dialog.py macosxSupport.pymac_osx_support.py MultiCall.pymulti_call.py MultiStatusBar.pymulti_status_bar.py ObjectBrowser.pyobject_browser.py OutputWindow.pyoutput_window.py ParenMatch.pyparen_match.py PathBrowser.pypath_browser.py Percolator.pypercolator.py PyParse.pypyparse.py PyShell.pypyshell.py RemoteDebugger.pyremote_debugger.py RemoteObjectBrowser.pyremote_object_browser.py ReplaceDialog.pyreplace_dialog.py RstripExtension.pyrstrip_extension.py ScriptBinding.pyscript_binding.py ScrolledList.pyscrolled_list.py SearchDialog.pysearch_dialog.py SearchDialogBase.pysearch_dialog_base.py SearchEngine.pysearch_engine.py StackViewer.pystack_viewer.py tabbedpages.pytabbed_pages.py textView.pytext_view.py ToolTip.pytool_tip.py TreeWidget.pytree_widget.py UndoDelegator.pyundo_delegator.py WidgetRedirector.pywidget_redirector.py WindowList.pywindow_list.py ZoomHeight.pyzoom_height.py test_config_name.pytest_config_section_name_dialog.py test_configdialog.pytest_config_dialog.py test_formatparagraph.pytest_format_paragraph.py test_grep.pytest_grep_dialog.py test_hyperparser.pytest_hyper_parser.py test_idlehistory.pytest_idle_history.py test_parenmatch.pytest_paren_match.py test_pathbrowser.pytest_path_browser.py test_rstrip.pytest_rstrip_extension.py test_searchdialogbase.pytest_search_dialog_base.py test_textview.pytest_text_view.py test_searchengine.pytest_search_engine.py test_widgetredir.pytest_widget_redirector.py -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24225 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24225] IDLE test filenames don't match script filenames.
Al Sweigart added the comment: Serhiy: I completely understand. My first instinct is to look at mass renamings and dismiss it as cosmetic changes for the sake of cosmetic changes. However, there are several problems that this fix corrects: 1) It makes it obvious which identifiers are modules and which are classes: - AutoComplete.AutoComplete is a module and class with the same name, making them ambiguous. - Same for AutoCompleteWindow.AutoCompleteWindow. - Same for AutoExpand.AutoExpand. - Bindings.py is a module but there is also a Bindings member in the EditorWindow class. - Same for CallTips.CallTips having ambiguous module/class name. - Same for ClassBrowser.ClassBrowser. - Same for CodeContext.CodeContext. - Same for ColorDelegator.ColorDelegator - But not the same for configDialog.ConfigDialog. - Same for Debugger.Debugger - Same for Delegator.Delegator - Same for EditorWindow (this is a big one, where the ambiguious use is in several files) - Same for FileList.FileList - Same for FormatParagraph.FormatParagraph - Same for HyperParser.HyperParser - Same for IOBinding.IOBinding - Same for MultiCall.MultiCallCreator's inner class, MultiCall. - Same for MultiStatusBar.MultiStatusBar - Same for OutputWindow, ParenMatch, PathBrowser, Percolator, PyShell, ReplaceDialog, RstripExtension, ScriptBinding, ScrolledList, SearchDialog, SearchDialogBase, SearchEngine, ToolTip, UndoDelegator, WidgetRedirector, WindowList, ZoomHeight - There is a StackViewer.py module and a StackViewer class, except the class is in Debugger.py This isn't a trivial, just remember it works like this in one or two places kind of technical debt. 2) These ambiguous names can be mitigated with from x import * statements; always use from idlelib.AutoExpand import AutoExpand and you can always assume AutoExpand refers to the class, not the module. But the codebase doesn't consistently do that. There is from idlelib.AutoExpand import AutoExpand but also from idlelib import Debugger (so in that file, Debugger refers to the module while Debugger.Debugger refers to the class). 2) It puts idle_test names in sync with the files they test. Currently there is a test_config_name.py but there is no config_name.py or configName.py file. (It tests configSectionNameDialog.py) 3) Any extensions that break due to these changes can be fixed in one line: import new_name as OldName I agree that large changes are error prone. In this case, that's partly because names are confusing and ambiguous, which is precisely what this change tries to mitigate. I really beg folks to not dismiss this change out of hand. These readability issues are death-by-a-thousand-paper-cuts. I think we should address this technical debt, not actively preserve it. IDLE dev is at a standstill, with the bulk of it resting on the efforts of a handful of people. Getting it into a better state can invite more contributors (I can personally name some people who would want to become involved with IDLE but are intimidated by labyrinthine codebases.) I volunteer to test any extension people can name for compatibility issues with this change. (Where should I start? IDLEX? The https://wiki.python.org/moin/IDLEextensions also lists lwickjr. Are there any others?) All the unit tests pass after these changes, which is something at least. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24225 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24225] IDLE test filenames don't match script filenames.
New submission from Al Sweigart: From the idlelib/idle_test/README.txt file: The idle_test subdirectory should contain a test_xyz.py for each, where 'xyz' is lowercased even if xyz.py is not. However, this means the test file names are inconsistent with the scripts they test. Of the 20 test_*.py files, all 20 are inconsistent. Some of the test filenames don't even match the file, such as test_config_name.py which tests configSectionNameDialog.py. Since the original filenames aren't lowercase like the rest of the standard library, it would be better to rename them rather than renaming the test files: AutoComplete.py to autocomplete.py, ColorDelegator.py to colordelegator.py, etc. This is a find-and-replace change. Any shorter, better names for modules can also be made at this time. -- components: IDLE messages: 243464 nosy: Al.Sweigart priority: normal severity: normal status: open title: IDLE test filenames don't match script filenames. versions: Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24225 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23961] IDLE autocomplete window does not automatically close when selection is made
Al Sweigart added the comment: I should clarify: I'm referring to the Show Completion feature. The repro steps are (on Windows 7 64-bit, Python 3.5) 1. Type pri 2. Press Ctrl+Space or click Edit Show Completions. The autocomplete window appears. 3. Press Tab. The text updates from pri to print 4. However, the autocomplete window is still there. 5. Pressing space or ( will then cause the autocomplete window to disappear. This is distinct from issue 15786, but close enough that I'll close this bug and add this comment to it. Thanks for the input! -- resolution: - duplicate ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23961 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23964] Update README documentation for IDLE tests.
Al Sweigart added the comment: I'll add a note about running the human-mediated tests to section 0. Running python -m test.test_idle for 64-bit 3.4.3 on Windows 7 works fine for me (Ran 142 tests in 0.605s OK) I'll take out the indented code. You make a good point about copy/paste. I've added section 4 on human-mediated tests. I'd like to take a crack at improving the documentation a bit in htest.py before figuring out what to add to section 4. This can be addressed in a later patch. -- Added file: http://bugs.python.org/file39107/idle_test_readme.2.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23964 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15786] IDLE code completion window can hang or misbehave with mouse
Al Sweigart added the comment: Additionally, pressing tab after the autocomplete window has appeared should not just update the text but also close the autocomplete window. The repro steps are (on Windows 7 64-bit, Python 3.5): 1. Type pri 2. Press Ctrl+Space or click Edit Show Completions. The autocomplete window appears. 3. Press Tab. The text updates from pri to print 4. However, the autocomplete window is still there. 5. Pressing space or ( will then cause the autocomplete window to disappear. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15786 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15786] IDLE code completion window can hang or misbehave with mouse
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15786 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23977] Enhancing IDLE's test_delegator.py unit test
New submission from Al Sweigart: As part of trying to understand the IDLE codebase, I'm taking a look at IDLE's unit tests. -Added more specific messages when test_delegator.py's assertions fail. -Added detail to the comments. -Added an explicit test of the resetcache() method (which before was only tested as far as it was called when setdelegate() was called). I've rerun the unit test on the existing source code and it passes. -- components: Tests files: test_delegator.patch keywords: patch messages: 241284 nosy: Al.Sweigart priority: normal severity: normal status: open title: Enhancing IDLE's test_delegator.py unit test type: enhancement versions: Python 3.5 Added file: http://bugs.python.org/file39078/test_delegator.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23977 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23964] Update README documentation for IDLE tests.
Changes by Al Sweigart asweig...@gmail.com: -- type: - enhancement ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23964 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23964] Update README documentation for IDLE tests.
New submission from Al Sweigart: It took me a while to read through the idle_test documentation to figure out how to run the test. Similar to the Profiler documentation, I've added Instant User's Manual section at the top of the file, as well as edited the text and formatting a bit. -- components: IDLE files: idle_test_readme.patch keywords: patch messages: 241099 nosy: Al.Sweigart priority: normal severity: normal status: open title: Update README documentation for IDLE tests. versions: Python 3.5 Added file: http://bugs.python.org/file39035/idle_test_readme.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23964 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23937] IDLE start maximized
Al Sweigart added the comment: It is egregious for apps to assume that they are the only thing running I would agree for most apps, but I tend to think of IDEs as something that is generally run full screen. I'll note that Eclipse starts maximized, while PyCharm starts windowed. Though both will remember their state when the program is closed, and resume it the next time it starts. IDLE, however, always follows the width/height info in the config-main.def file. I propose the following: - Remove the Initial Window Size UI elements from the Configure IDLE window (Minimizing the number of choices the user must make on a config page keeps it uncluttered.) - Keep the config-main.def file settings, but have IDLE update it on exit. The next time IDLE starts it will have its previous size. This way if the user maximizes IDLE's window and then exits, it will start maximized the next time IDLE starts. Though I still think starting maximized as the default would be a good idea. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23937 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23961] IDLE autocomplete window does not automatically close when selection is made
New submission from Al Sweigart: All autocomplete features (for example, Eclipse Android Studio) cause the autocomplete window to disappear when a selection is made. When tab is pressed in IDLE, the window does not disappear. IDLE should be changed so that the window goes away when tab is pressed to complete the window after Ctrl+Space or Edit Show Completions openedit. Currently, the window stays open until another keyboard key is pressed (e.g. space, or an opening parenthesis) -- components: IDLE messages: 241068 nosy: Al.Sweigart priority: normal severity: normal status: open title: IDLE autocomplete window does not automatically close when selection is made type: behavior versions: Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23961 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23961] IDLE autocomplete window does not automatically close when selection is made
Al Sweigart added the comment: Edit: Looking into it further, this behavior was originally for when the Show Completions dropdown wasn't being displayed. In that case, pressing tab would complete only up to the first ambiguous completion. For example, typing os.ge and pressing tab would complete to os.get, since from there it is ambiguous whether it will be os.get_exec_path, os.get_handle_inheritable, get_terminal_size, etc. This behavior should stay the same. Although if it is completely unambiguous what the final completion is (say for typing pri and pressing tab, which can only autocomplete to print) then the Show Completions dropdown should disappear. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23961 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23954] Pressing enter/return or clicking IDLE's autocomplete does not select the option
New submission from Al Sweigart: Currently, when you press Ctrl+Space or select Edit Show Completions, a dropdown menu appears and lets you select an autocomplete option. If you press Tab, the highlighted option in the dropdown is selected and your typing autocompletes. However, pressing enter (which is a natural way to select an option) does not work. Instead of newline is entered, which is an annoyance. Also, clicking on the item with the mouse does not select an item from the dropdown either. -- components: IDLE messages: 240986 nosy: Al.Sweigart priority: normal severity: normal status: open title: Pressing enter/return or clicking IDLE's autocomplete does not select the option type: behavior versions: Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23954 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23937] IDLE start maximized
Al Sweigart added the comment: +1 to this idea. In classroom settings when I look over the shoulder of students, usually they're working with IDLE or an editor in a much smaller window. When I point out how to maximize it, they always enjoy the additional space. It seems like a minor thing, but a lot of newbies don't realize they can maximize the window. Having this as the default start state is a good idea. I'm trying to think of why you would want it to start windowed, and can't come up with anything. -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23937 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23922] turtle.py and turtledemo use the default tkinter icon
New submission from Al Sweigart: The turtle.py and turtledemo scripts launch windows that have the default tkinter icon. Instead, they should make use of the IDLE icon (which are already in the idlelib/Icons folder) -- components: IDLE messages: 240564 nosy: Al.Sweigart priority: normal severity: normal status: open title: turtle.py and turtledemo use the default tkinter icon versions: Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23922 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23922] turtle.py and turtledemo use the default tkinter icon
Al Sweigart added the comment: On my system (Windows 7) it shows up with a blue feather icon, which I is the generic Tk icon. The reason I suggest the IDLE icon is 1) we already have it and 2) it's the python logo on top of a generic sheet of paper icon so it fits well enough imo, and 3) I'm assuming that the use of the turtle demo and IDLE are pretty intertwined anyway. I've attached a patch which I've tested on Windows, but I'm away from my other machines right now. -- Added file: http://bugs.python.org/file38907/patch_issue_23922 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23922 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23546] Windows, 'Edit with IDLE', and multiple installed versions
Changes by Al Sweigart asweig...@gmail.com: -- title: Windows, 'Edit withIDLE', and multiple installed versions - Windows, 'Edit with IDLE', and multiple installed versions ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23546 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18704] IDLE: Integrate external code analysis tools
Al Sweigart added the comment: -1 on adding PEP8 checks. PEP8 is a guideline, and having IDLE present them as warnings or errors elevates their importance. Also, this would involve adding the pep8 dependency to the standard library. A linter might be a good idea, but not a style checker. -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18704 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17776] IDLE Internationalization
Al Sweigart added the comment: Someone should do a more refined search with an re that excludes '_' preceded or followed by an identifier char, to skip '__xyz__' or '_x' or 'y_'. I've run this regex over all the .py and .pyw files in idlelib: [^_'a-zA-Z0-9]_[^a-zA-Z0-9_] The only possible conflict I've found is in rpc.py's displayhook() function, which sets builtins._ to the argument passed to displayhook(). There is a cryptic comment: # Set '_' to None to avoid recursion I'm not sure what the reasoning behind this code is. This was written by Andrew Svetlov for issue 14200 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17776 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
Changes by Al Sweigart asweig...@gmail.com: Added file: http://bugs.python.org/file37760/idle_find_ui_redesign2.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23218 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
Changes by Al Sweigart asweig...@gmail.com: Added file: http://bugs.python.org/file37759/idle_grep_compare2.png ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23218 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
Al Sweigart added the comment: I've made some minor updates: Adding colons to the labels and right-justifying them. These updates can be seen in the second comparison screenshot. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23218 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23181] Unicode code point should be two words in documentation
Changes by Al Sweigart asweig...@gmail.com: -- versions: +Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23181 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23180] Rename IDLE's Windows menu item to Window
Al Sweigart added the comment: Added another patch for the documentation changes for the menu renaming. -- Added file: http://bugs.python.org/file37679/idle_window_doc_rename.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23180 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
New submission from Al Sweigart: Various changes to modernize the user interface of the Find, Replace, and Find in Files dialogs: - Got rid of the close button, since it is redundant. - Moved the buttons below the text fields, to make better use of screen real estate. - Shorten the titles by getting rid of the Dialog part. - Renamed Search title to Find to match the menu item. - Renamed Regular expression label to the shorter Regex - Added slightly more padding. - Removed the Replace+Find and made Replace have this functionality. (all modern editors use Replace to mean Replace and Find) The attached png shows the before/after differences in the design of these dialogs. -- components: IDLE files: idle_grep_compare.png messages: 233812 nosy: Al.Sweigart priority: normal severity: normal status: open title: Modernize the IDLE Find/Replace/Find in Files dialogs type: enhancement versions: Python 3.5 Added file: http://bugs.python.org/file37664/idle_grep_compare.png ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23218 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
Changes by Al Sweigart asweig...@gmail.com: -- keywords: +patch Added file: http://bugs.python.org/file37666/idle_find_ui_redesign.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23218 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23216] IDLE grep/find/replace source code needs docstrings
New submission from Al Sweigart: The following IDLE files need docstrings for their methods: GrepDialog.py SearchEngine.py SearchDialogBase.py SearchDialog.py ReplaceDialog.py -- components: IDLE files: idle_docstrings.diff keywords: patch messages: 233807 nosy: Al.Sweigart priority: normal severity: normal status: open title: IDLE grep/find/replace source code needs docstrings type: enhancement versions: Python 3.5 Added file: http://bugs.python.org/file37663/idle_docstrings.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23216 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23220] IDLE does not display \b backspace correctly.
Al Sweigart added the comment: For clarification, this happens on Windows 7. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23220 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23180] Rename IDLE's Windows menu item to Window
Al Sweigart added the comment: Will do, re marking IDLE issues for 2.7, 3.4, and 3.5 only. Thanks for the heads up. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23180 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23220] IDLE does not display \b backspace correctly.
New submission from Al Sweigart: IDLE cannot display the \b backspace character correctly. From IDLE's interactive shell: print('hello\b\b\b\b\bHELLO') helloâ—™HELLO Whereas from cmd: print('hello\b\b\b\b\bHELLO') HELLO -- messages: 233828 nosy: Al.Sweigart priority: normal severity: normal status: open title: IDLE does not display \b backspace correctly. versions: Python 3.4, Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23220 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23216] IDLE grep/find/replace source code needs docstrings
Changes by Al Sweigart asweig...@gmail.com: -- versions: +Python 2.7, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23216 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23218] Modernize the IDLE Find/Replace/Find in Files dialogs
Changes by Al Sweigart asweig...@gmail.com: -- versions: +Python 2.7, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23218 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23220] IDLE does not display \b backspace correctly.
Changes by Al Sweigart asweig...@gmail.com: -- versions: +Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23220 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23205] Unit test needed for IDLE's GrepDialog.py's findfiles()
Al Sweigart added the comment: I checked with a couple grep programs and they use depth first. Which makes sense, since you'd want the return order to be something like: /a/spam.txt /a/aa/spam.txt /a/bb/spam.txt /x/spam.txt /y/spam.txt /z/spam.txt ...instead of the bread-first: /a/spam.txt /x/spam.txt /y/spam.txt /z/spam.txt /a/aa/spam.txt /a/bb/spam.txt However, it turns out this is moot since the first thing GrepDialog.py does with the returned results is sort them. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23205 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23205] Unit test needed for IDLE's GrepDialog.py's findfiles()
New submission from Al Sweigart: GrepDialog.py's findfiles() method lacks a unit test. The comments in the unit test stub in test_grep.py correctly notes that since findfiles() method does not rely on the GrepDialog class, it can be made into a function. The attached patch does the following: - Moves findfiles() to be a function in the GrepDialog.py module. - Adds a unit test for findfiles() - Adds sensible default arguments - As suggested by the previous stub comments, findfiles() returns a generator instead of a full list - Changes 'list' and 'dir' names since those are built-ins - Uses os.walk() instead of reinventing it. There were so many changes to make that I eventually just rewrote the entire findfiles function. I've checked that the new version returns the same strings as the old version. -- components: IDLE files: idle_grep_findfiles_test.diff keywords: patch messages: 233727 nosy: Al.Sweigart priority: normal severity: normal status: open title: Unit test needed for IDLE's GrepDialog.py's findfiles() versions: Python 3.5 Added file: http://bugs.python.org/file37652/idle_grep_findfiles_test.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23205 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23184] Unused imports, variables, file in IDLE
Al Sweigart added the comment: *more transparent, that is. Not opaque. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23184 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23184] Unused imports, variables, file in IDLE
Al Sweigart added the comment: I've updated the patch. I've removed the EditorWindow deletion. Importing that and using it as a class variable instead of using an assignment statement wasn't picked up. (Is there a more opaque way to do this import?) I've left the RemoteDebugger.py change in. The frame variable name is (confusingly) reused: frame = frametable[fid] # ...cut for brevity... stack, i = self.idb.get_stack(frame, tb) stack = [(wrap_frame(frame), k) for frame, k in stack] Changed to: # ...cut for brevity... stack, i = self.idb.get_stack(frametable[fid], tb) stack = [(wrap_frame(frame), k) for frame, k in stack] The first use of frame is eliminated by simply using frametable[fid] instead. The second use is as the temporary variable inside the list comprehension, which means the frame name is reused. With this change, the only time the frame local variable is used is in the list comprehension. This gets rid of the name reuse and makes it a bit simpler. -- Added file: http://bugs.python.org/file37651/idle_unused_patch2.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23184 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7676] IDLE shell shouldn't use TABs
Al Sweigart added the comment: There are three pieces of user-specified configuration: (1) the number of spaces for a tab set in IDLE's config, (2) the sys.ps1 value, and (3) the sys.ps2 value. Currently IDLE's shell is ignoring (1) while the editor is not. IDLE's shell is ignoring (3) while the python shell isn't. I think the obvious solution is to make IDLE's shell follow the same behavior as IDLE's editor and the python shell. The draw back comes from variable-pitch fonts, but I think using variable-pitch fonts is a minority use case and will create spacing issues regardless (compared pasting 8 spaces and pasting 1 tab into the editor with Lucida Sans Unicode). Special cases aren't special enough to break the rules. This issue is concerned with mixed tabs and spaces in the IDLE shell, which has a simple fix. Putting the and ... prompts in a separate space so that they are not copied can be done in a separate issue. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7676 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7676] IDLE shell shouldn't use TABs
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7676 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19102] Add tests for CLI of the tabnanny module
Al Sweigart added the comment: Since tabnanny is also a module in the standard library (it is imported by the idle code), wouldn't moving it to lib/test/test_tools make it un-importable? This would be a good case for leaving it where it is. -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19102 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23184] Unused imports, variables, file in IDLE
New submission from Al Sweigart: The IDLE code base has several unused imports and local variables. The testcode.py file seems to have been accidentally checked in. These changes were found through a lint program, not by hand. All idle unit tests pass after these changes. -- components: IDLE files: idle_unused_patch.diff keywords: patch messages: 233573 nosy: Al.Sweigart priority: normal severity: normal status: open title: Unused imports, variables, file in IDLE versions: Python 3.4, Python 3.5 Added file: http://bugs.python.org/file37626/idle_unused_patch.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23184 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23184] Unused imports, variables, file in IDLE
Changes by Al Sweigart asweig...@gmail.com: -- type: - behavior ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23184 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23181] Unicode code point should be two words in documentation
New submission from Al Sweigart: According to http://unicode.org/glossary/ codepoint is incorrect and should be changed to code point. -- assignee: docs@python components: Documentation files: code_point_patch.diff keywords: patch messages: 233568 nosy: Al.Sweigart, docs@python priority: normal severity: normal status: open title: Unicode code point should be two words in documentation type: behavior versions: Python 3.4, Python 3.5 Added file: http://bugs.python.org/file37623/code_point_patch.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23181 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17776] IDLE Internationalization
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17776 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17760] No i18n of IDLE's interface in french
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17760 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2704] IDLE: Patch to make PyShell behave more like a Terminal interface
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue2704 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23180] Rename IDLE's Windows menu item to Window
New submission from Al Sweigart: Currently IDLE's top-level menu item is Windows on Windows Linux but is specifically changed to Window on OS X to match mac's look and feel. See https://hg.python.org/cpython/rev/1b3b6b1982aa The singular Window is the standard menu name on all platforms, and Windows should never be used. Note: Photoshop, Blender, Visual Studio, IntelliJ, WinMerge, HxD, and Notepad++ on Windows use the Window name in their menus. I can't find any that use Windows. -- components: IDLE files: patch.diff keywords: patch messages: 233566 nosy: Al.Sweigart priority: normal severity: normal status: open title: Rename IDLE's Windows menu item to Window type: behavior versions: Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.6 Added file: http://bugs.python.org/file37622/patch.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23180 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23158] IDLE's help.txt corrent typo
New submission from Al Sweigart: There is a typo in IDLE's help.txt file: into the corrent number of spaces -- messages: 233379 nosy: Al.Sweigart priority: normal severity: normal status: open title: IDLE's help.txt corrent typo type: behavior versions: Python 3.4, Python 3.5, Python 3.6 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23158 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23158] IDLE's help.txt corrent typo
Al Sweigart added the comment: I've attached a simple typo fix for this issue. -- keywords: +patch Added file: http://bugs.python.org/file37590/patch.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23158 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue23158] IDLE's help.txt corrent typo
Changes by Al Sweigart asweig...@gmail.com: -- components: +IDLE ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23158 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17583] IDLE HOWTO
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17583 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue14944] Setup Usage documentation for pydoc, idle 2to3
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue14944 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22628] Idle: Tree lines are spaced too close together.
Changes by Al Sweigart asweig...@gmail.com: -- nosy: +Al.Sweigart ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue22628 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com