[issue38636] "Alt + T" and "Alt + U" Broken in IDLE on Windows
New submission from Stephen Paul Chappell : In the latest Python 3.8.0 installation when running IDLE on Windows, pressing "Alt + T" generates the following error: Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\Python38\Lib\tkinter\__init__.py", line 1883, in __call__ return self.func(*args) File "C:\Program Files\Python38\Lib\idlelib\multicall.py", line 176, in handler r = l[i](event) TypeError: toggle_tabs_event() missing 1 required positional argument: 'event' Similarly, pressing "Alt + U" will generate a very similar error: Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\Python38\Lib\tkinter\__init__.py", line 1883, in __call__ return self.func(*args) File "C:\Program Files\Python38\Lib\idlelib\multicall.py", line 176, in handler r = l[i](event) TypeError: change_indentwidth_event() missing 1 required positional argument: 'event' -- assignee: terry.reedy components: IDLE, Windows messages: 355678 nosy: Zero, paul.moore, steve.dower, terry.reedy, tim.golden, zach.ware priority: normal severity: normal status: open title: "Alt + T" and "Alt + U" Broken in IDLE on Windows type: behavior versions: Python 3.8 ___ Python tracker <https://bugs.python.org/issue38636> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38636] IDLE regression: toggle tabs and change indent width functions
Stephen Paul Chappell added the comment: When I start IDLE and the shell window appears, my first task is to press "Alt + T" to change from using tabs to spaces and then "Alt + U" to change from using 8 spaces to 4. This allows code pasted from the shell into an editor window or other IDE to not require reformatting since those settings seem to be common for Python code. If the defaults for these settings were to be exposed in IDLE's settings under the General tab (maybe near the new "Show line numbers in new windows" checkbox), would it be best to make that request here or to open a new bug with an enhancement suggestion? -- ___ Python tracker <https://bugs.python.org/issue38636> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37903] IDLE Shell sidebar.
Stephen Paul Chappell added the comment: The documentation for sys.ps1 and sys.ps2 states that they "are only defined if the interpreter is in interactive mode." Since the IDLE shell is meant to be interactive (and to reduce the differences between the shell and running Python directly), would it be helpful if ps1 and ps2 were defined when running IDLE? The shell could then honor their values. If such a direction was explored, one issue may be that the sidebar could not simply be 3 char wide. The documentation also states that non-strings are evaluated each time they are needed by the interpreter. This allows for such interesting possibilities as shown with the code below but may not be desired functionality for the IDLE shell window. import sys from datetime import datetime class TimePrompt: def __init__(self, prefix, suffix): self.prefix, self.suffix = prefix, suffix def __str__(self): return f'{self.prefix}{datetime.now()}{self.suffix}' sys.ps1, sys.ps2 = TimePrompt('', ' >>> '), TimePrompt('', ' ... ') -- nosy: +Zero ___ Python tracker <https://bugs.python.org/issue37903> ___ ___ 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
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue7676> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31476] Stdlib source files not installed
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue31476> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18558] Iterable glossary entry needs clarification
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue18558> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31848] "aifc" module does not always initialize "Aifc_read._ssnd_chunk"
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue31848> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21537] functools.lru_cache does not cache exceptions
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue21537> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21402] tkinter.ttk._val_or_dict assumes tkinter._default_root exists
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue21402> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18601] Example "command-line interface to difflib" has typographical error
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue18601> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24185] Add Function for Sending File to Trash (or Recycling Bin)
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue24185> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21957] ASCII Formfeed (FF) & ASCII Vertical Tab (VT) Have Hexadecimal Representation
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue21957> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6188] Error Evaluating float(x) ** float(y)
Change by Stephen Paul Chappell : -- nosy: -Zero ___ Python tracker <https://bugs.python.org/issue6188> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37903] IDLE Shell sidebar.
Stephen Paul Chappell added the comment: Maybe my impression has been false this whole time, but the Python interactive interpreter seems to be very similar to the IDLE shell window. My question is, "Why not make them even more so?" Having IDLE react to sys.ps1 and sys.ps2 opens up the shell to similar use cases as having them defined in the interactive interpreter. My suggestion is not to have them added as text as is usual in a terminal window but to print the values of ps1 and ps2 in the proposed ShellIO subclass. That would make label customization possible in a way that is already documented and standard. -- ___ Python tracker <https://bugs.python.org/issue37903> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37903] IDLE Shell sidebar.
Stephen Paul Chappell added the comment: Zero: "not to have them added as text as is usual in a terminal window" taleinat: "removing prompts from the shell window's text widget" Zero: "print the values of ps1 and ps2 in the proposed ShellIO subclass" taleinat: "separate sidebar showing where prompts and user input were" We appear to be in agreement. terry.reedy: "Labels, such as '>>>', 'Out', 'Inp', and 'Err' would be used" Zero:"Having IDLE react to sys.ps1 and sys.ps2" My suggestion is to take those labels terry.reedy talks about from the values of ps1 and ps2 since they are already documented and standard for "the interpreter ... in interactive mode." If psX needs to introduced for other prompts that may be needed ("Maybe use 'Con', maybe use Dbg and Wrn."), it would provide a sensible way to customize those labels as well. -- ___ Python tracker <https://bugs.python.org/issue37903> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37903] IDLE Shell sidebar.
Stephen Paul Chappell added the comment: @rhettinger: The turtle demo is easily accessible through the menus via Help > Turtle Demo. It is nice to see there are others interested in IDLE's improvement. :-) -- ___ Python tracker <https://bugs.python.org/issue37903> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue35228] Index search in CHM help crashes viewer
Change by Stephen Paul Chappell : -- nosy: +Zero ___ Python tracker <https://bugs.python.org/issue35228> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31476] "Open Module..." Not Working in IDLE for Standard Library
New submission from Stephen Paul Chappell: Ever since Python 3.6.1, trying to open a Python-source library module in IDLE on Windows (10) has not worked properly since the installer has only been providing *.pyc files. Learning how to use Python has always been easy since it (1) has a great help document, (2) makes it easy to get help() on objects, and (3) allows the source to easily be explored and/or patched. Is there something special that needs to be done to get both the standard library's *.py files and precompile them to *.pyc during installation? I would be glad to run further tests if the Windows installer can be run headless with specific command-line arguments. -- assignee: terry.reedy components: IDLE, Library (Lib), Windows messages: 302201 nosy: Zero, paul.moore, steve.dower, terry.reedy, tim.golden, zach.ware priority: normal severity: normal status: open title: "Open Module..." Not Working in IDLE for Standard Library type: behavior versions: Python 3.6 ___ Python tracker <https://bugs.python.org/issue31476> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31476] Stdlib source files not installed
Stephen Paul Chappell added the comment: The URL for the installer that was used last is: https://www.python.org/ftp/python/3.6.2/python-3.6.2-amd64-webinstall.exe -- ___ Python tracker <https://bugs.python.org/issue31476> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31848] "aifc" module does not always initialize "Aifc_read._ssnd_chunk"
New submission from Stephen Paul Chappell : When Aifc_read runs initfp, it conditionally sets self._ssnd_chunk and is not guaranteed to do so. At the bottom of the method, a check is made to see if the attribute has a false value; and if so, an error is supposed to be raised. If a SSND chunk is never found, checking self._ssnd_chunk causes an attribute error to be raised similar to this: AttributeError: 'Aifc_read' object has no attribute '_ssnd_chunk' The error was found on the following distribution: Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32 -- components: Library (Lib), Tests messages: 304804 nosy: Zero priority: normal severity: normal status: open title: "aifc" module does not always initialize "Aifc_read._ssnd_chunk" type: crash versions: Python 3.6 ___ Python tracker <https://bugs.python.org/issue31848> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18558] Iterables not detected correctly
New submission from Stephen Paul Chappell: The following interactive session shows that iterables are not detected properly by the `collections.abc.Iterable` class. >>> class IsIterable: def __init__(self, data): self.data = data def __getitem__(self, key): return self.data[key] >>> is_iterable = IsIterable(range(5)) >>> for value in is_iterable: value 0 1 2 3 4 >>> from collections.abc import Iterable >>> isinstance(is_iterable, Iterable) False -- components: Library (Lib) messages: 193723 nosy: Zero priority: normal severity: normal status: open title: Iterables not detected correctly type: behavior versions: Python 3.3 ___ Python tracker <http://bugs.python.org/issue18558> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18601] Example "command-line interface to difflib" has typographical error
New submission from Stephen Paul Chappell: The example at the bottom is good but has a line with a bad variable it is name. It says: with open(fromlines) as fromf, open(tofile) as tof: fromlines, tolines = list(fromf), list(tof) In the first line, fromlines does no even exist yet. should say: with open(fromlines) as fromf, open(tofile) as tof: from, tolines = list(fromf), list(tof) -- assignee: docs@python components: Demos and Tools, Documentation messages: 193948 nosy: Zero, docs@python priority: normal severity: normal status: open title: Example "command-line interface to difflib" has typographical error versions: Python 3.3 ___ Python tracker <http://bugs.python.org/issue18601> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18558] Iterable glossary entry needs clarification
Stephen Paul Chappell added the comment: If my program needed to know if an object is iterable, it would be tempting to define and call the following function instead of using collections.abc.Iterable: def iterable(obj): try: iter(obj) except TypeError: return False return True Something tells me that is not what the author of collections.abc.Iterable intended. -- ___ Python tracker <http://bugs.python.org/issue18558> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18558] Iterable glossary entry needs clarification
Stephen Paul Chappell added the comment: Maybe this would have been more appropriate as a question on StackOverflow: What is the proper way of asking if an object is iterable if it does not support the iterator protocol but does support the old getitem protocol? One might argue that it is better to ask for forgiveness rather than permission, but that does not really answer the question. My impression of collections.abc.Iterable is that programmers can use it to ask if an object is iterable. Some argue that it is better to ask for forgiveness rather that permission and would suggest pretending that an object is iterable until it is proven otherwise. However, what do we use collections.abc.Iterable’s for then? The true question is really, “What is the proper way of asking if an object is iterable if it does not support the iterator protocol but does support the old getitem protocol?” More generically, how can you ask an object if it supports ANY iteration protocol? The query probably should have been posted on StackOverflow and not here. This may not be a problem with collections.abc.Iterable, and thus the issue should be closed. However, the previous question remains, and it is apparent that it cannot be answered with the abstract class as it currently is. Maybe the solution is to just ask for forgiveness where appropriate. -- ___ Python tracker <http://bugs.python.org/issue18558> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21402] tkinter.ttk._val_or_dict assumes tkinter._default_root exists
New submission from Stephen Paul Chappell: If a call is made to tkinter.NoDefaultRoot, then calls to tkinter.ttk._val_or_dict may fail. NoDefaultRoot ends with "del _default_root" (line 174) and removes the variable from the module's namespace. _val_or_dict can try to access this variable but assumes that it exists (line 319). If _default_root does not exist, the function will raise an AttributeError: 'module' object has no attribute '_default_root'. -- components: Library (Lib), Tkinter messages: 217644 nosy: Zero priority: normal severity: normal status: open title: tkinter.ttk._val_or_dict assumes tkinter._default_root exists type: crash versions: Python 3.4 ___ Python tracker <http://bugs.python.org/issue21402> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21402] tkinter.ttk._val_or_dict assumes tkinter._default_root exists
Stephen Paul Chappell added the comment: I discovered the problem when trying to run the program listed at http://code.activestate.com/recipes/577633/ (Directory Pruner 2). -- ___ Python tracker <http://bugs.python.org/issue21402> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21402] tkinter.ttk._val_or_dict assumes tkinter._default_root exists
Stephen Paul Chappell added the comment: It seems that most functions and methods do not bother checking if _default_root exists before trying to access it. However, upon seeing line 366 in ttk (if tkinter._support_default_root:), my recommendation would be to change line 319 to "if tkinter._support_default_root and tkinter._default_root:" to fix the problem. Several similar lines appear in tkinter\__init__.py at locations 1835, 1845, and 2050. -- ___ Python tracker <http://bugs.python.org/issue21402> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21402] tkinter.ttk._val_or_dict assumes tkinter._default_root exists
Stephen Paul Chappell added the comment: There is discussion of removing wantobjects in issue3015. If it gets removed, a better patch might be created for future versions of tkinter. However, accessing self.tk would probably be a good replacement for anywhere tkinter._default_root can be found (except in cases where a widget is not given a parent). -- ___ Python tracker <http://bugs.python.org/issue21402> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21402] tkinter.ttk._val_or_dict assumes tkinter._default_root exists
Stephen Paul Chappell added the comment: >Because there are explicit tests for these private functions. Does that not mean that both the functions and their explicit tests should be changed? -- ___ Python tracker <http://bugs.python.org/issue21402> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21537] functools.lru_cache does not cache exceptions
New submission from Stephen Paul Chappell: While examining the implementation for lru_cache, it came to my attention that the wrappers ignore the possibility of exceptions. Is this on purpose? If the cache is designed to reduce the overhead of running certain functions, it seems like lru_cache should handle returned values along with raised exceptions. -- components: Library (Lib) messages: 218808 nosy: Zero priority: normal severity: normal status: open title: functools.lru_cache does not cache exceptions type: enhancement versions: Python 3.4 ___ Python tracker <http://bugs.python.org/issue21537> ___ ___ 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 Stephen Paul Chappell : -- nosy: +Zero versions: +Python 3.4, Python 3.5 ___ Python tracker <http://bugs.python.org/issue7676> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21957] ASCII Formfeed (FF) & ASCII Vertical Tab (VT) Have Hexadecimal Representation
New submission from Stephen Paul Chappell: In the string module, the definition of whitespace is ' \t\n\r\v\f'. However, the representation of string.whitespace is ' \t\n\r\x0b\x0c'. Would it be terribly inconvenient to change the representation of '\x0b\x0c' to '\v\f'? The documentation at https://docs.python.org/3.4/reference/lexical_analysis.html#string-and-bytes-literals lists recognized escape sequences, but string represetations seem to diverge slightly from what is recognized. The same "problem" exists with the representation of bytes. -- messages: 222749 nosy: Zero priority: normal severity: normal status: open title: ASCII Formfeed (FF) & ASCII Vertical Tab (VT) Have Hexadecimal Representation type: enhancement versions: Python 2.7, Python 3.1, Python 3.2, Python 3.3, Python 3.4, Python 3.5 ___ Python tracker <http://bugs.python.org/issue21957> ___ ___ 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
Stephen Paul Chappell added the comment: If you want the IDLE shell to be as consistent as possible with the editor windows, changing the TAB binding to insert four spaces instead of a tab (alternative 2) would be helpful. -- ___ Python tracker <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
Stephen Paul Chappell added the comment: In Lib\idlelib\PyShell.py, there are usetabs and indentwidth attributes in the PyShell class. Is there some reason that these settings cannot be reconfigured in the Options > Configure IDLE... menu? I just edited these to False and 4 respectively and am quite content with the resulting behavior. -- ___ Python tracker <http://bugs.python.org/issue7676> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6188] Error Evaluating float(x) ** float(y)
New submission from Stephen Paul Chappell : This is what I get while the interactive interpreter (IDLE 3.0.1) on the platform Python 3.0.1 (r301:69561, Feb 13 2009, 20:04:18) [MSC v.1500 32 bit (Intel)] on win32 >>> a = -6.276479035564047 >>> b = -5.7974497499584849 >>> a ** b != -6.276479035564047 ** -5.7974497499584849 True >>> Something is wrong. The float values are the same but not evaluated as being equal. After writing an automated testing program, these sample numbers were generated and found to create erroneous symptoms in the system being automatically tested. -- components: Interpreter Core messages: 88808 nosy: Zero severity: normal status: open title: Error Evaluating float(x) ** float(y) type: behavior versions: Python 3.0 ___ Python tracker <http://bugs.python.org/issue6188> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue26158] File truncate() not defaulting to current position as documented
Changes by Stephen Paul Chappell : -- nosy: +Zero ___ Python tracker <http://bugs.python.org/issue26158> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24185] Add Function for Sending File to Trash (or Recycling Bin)
Changes by Stephen Paul Chappell : -- nosy: +Zero ___ Python tracker <http://bugs.python.org/issue24185> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com