[issue46290] Parameter names are inaccurate in dataclasses docs
Tal Einat added the comment: Indeed, the argument name in the code is "obj", and in 3 of those 4 functions it is a normal (positional or keyword) argument, so the name is important. -- assignee: eric.smith -> taleinat nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue46290> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46279] [docs] Minor information-ordering issue in __main__ doc
Tal Einat added the comment: I agree that it seems better to avoid menntioning venv in that sentence. Specifically I suggest: This won’t work for __main__.py files in the root directory of a .zip file though. Hence, for consistency, minimal __main__.py without a __name__ check are preferred. -- nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue46279> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46290] Parameter names are inaccurate in dataclasses docs
Tal Einat added the comment: New changeset ef5376e69e72fa922d7f1b3df47b99d3576f9df1 by Zsolt Dollenstein in branch 'main': bpo-46290: Fix parameter names in dataclasses docs (GH-30450) https://github.com/python/cpython/commit/ef5376e69e72fa922d7f1b3df47b99d3576f9df1 -- ___ Python tracker <https://bugs.python.org/issue46290> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46290] Parameter names are inaccurate in dataclasses docs
Tal Einat added the comment: Thanks for the report and the PR, Zsolt! -- nosy: -miss-islington resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46290> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46290] Parameter names are inaccurate in dataclasses docs
Tal Einat added the comment: Good to know Eric, will do! -- ___ Python tracker <https://bugs.python.org/issue46290> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46086] Add ratio_min() function to the difflib library
Tal Einat added the comment: Thanks for the suggestion and the PR, Giacomo! However, in my opinion, this is better suited to be something like a cookbook recipe. The number of use cases for this will be low, and there would be little advantage to having this in the stdlib rather than elsewhere. -- nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue46086> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46261] [doc] fix inaccuracies in sqlite3.Cursor.lastrowid docs
Tal Einat added the comment: New changeset b6aa38f1ca79600f2ab46ac114ff36461a19c4a3 by Erlend Egeberg Aasland in branch 'main': bpo-46261: Update `sqlite3.Cursor.lastrowid` docs (GH-30407) https://github.com/python/cpython/commit/b6aa38f1ca79600f2ab46ac114ff36461a19c4a3 -- nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue46261> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46141] Fix ipaddress.ip_network TypeErrors
Change by Tal Einat : -- nosy: +pmoody, taleinat stage: -> patch review status: pending -> open versions: -Python 3.8 ___ Python tracker <https://bugs.python.org/issue46141> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46261] [doc] fix inaccuracies in sqlite3.Cursor.lastrowid docs
Tal Einat added the comment: New changeset 987fba102e909229dd2aa1a6115aa28d514c1818 by Miss Islington (bot) in branch '3.10': bpo-46261: Update `sqlite3.Cursor.lastrowid` docs (GH-30407) https://github.com/python/cpython/commit/987fba102e909229dd2aa1a6115aa28d514c1818 -- ___ Python tracker <https://bugs.python.org/issue46261> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46261] [doc] fix inaccuracies in sqlite3.Cursor.lastrowid docs
Tal Einat added the comment: New changeset b29aa71090e4dd34900660ecca8bb62667440f41 by Miss Islington (bot) in branch '3.9': [3.9] bpo-46261: Update `sqlite3.Cursor.lastrowid` docs (GH-30407) https://github.com/python/cpython/commit/b29aa71090e4dd34900660ecca8bb62667440f41 -- ___ Python tracker <https://bugs.python.org/issue46261> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46261] [doc] fix inaccuracies in sqlite3.Cursor.lastrowid docs
Tal Einat added the comment: Thanks for this, Erlend! -- stage: resolved -> patch review ___ Python tracker <https://bugs.python.org/issue46261> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46261] [doc] fix inaccuracies in sqlite3.Cursor.lastrowid docs
Change by Tal Einat : -- stage: patch review -> resolved ___ Python tracker <https://bugs.python.org/issue46261> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46005] [doc] replace 'distutils' examples with 'setuptools'
Tal Einat added the comment: First, I think that it's good and useful to have full, well-maintained examples of how to build extension modules in the docs. Second, until distutils is removed, I think we should keep the documentation for how to use it. Due to this, I don't think adding the "setuptools disclaimer" would be appropriate, since we shouldn't remove the section once the setuptools docs are updated. It seems to me that we should: 1. Add a prominent note about distutils being deprecated and what that means: can one still use it, should one still use it, when is it planned to be removed, etc. 2. Add mention that 3rd-party tools are now the recommended way to build extensions. Include links to the sections in these libraries' docs explaining how to build extensions. -- nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue46005> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue43654] IDLE: Fix tab completion after settings and some keys
Tal Einat added the comment: Terry, for all intents and purposes you're the one in charge of IDLE now. I suggest deciding whether to change all three bindings as in the current PR or only the one for completions. Just le me know and if needed I'll make a new PR. -- ___ Python tracker <https://bugs.python.org/issue43654> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46086] Add ratio_min() function to the difflib library
Tal Einat added the comment: I'm closing this for now since nobody has followed up and to the best of my understanding this wouldn't be an appropriate addition to the stdlib. This can be re-opened in the future if needed, of course. -- resolution: -> rejected stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46086> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Change by Tal Einat : -- versions: +Python 3.11, Python 3.9 ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40529] Auto Completions with case insensitive
Change by Tal Einat : -- Removed message: https://bugs.python.org/msg382482 ___ Python tracker <https://bugs.python.org/issue40529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40529] Auto Completions with case insensitive
Change by Tal Einat : -- Removed message: https://bugs.python.org/msg382481 ___ Python tracker <https://bugs.python.org/issue40529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40529] Auto Completions with case insensitive
Tal Einat added the comment: This should probably be brought up in the python-ideas mailing list, which is much more active than the group on discuss.python.org. -- ___ Python tracker <https://bugs.python.org/issue40529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46080] argparse.BooleanOptionalAction with default=argparse.SUPPRESS and help specified raises exception
Tal Einat added the comment: New changeset 9e87c0e03fa501fb90008547983ce4c1dcaaf90c by Felix Fontein in branch 'main': bpo-46080: fix argparse help generation exception in edge case (GH-30111) https://github.com/python/cpython/commit/9e87c0e03fa501fb90008547983ce4c1dcaaf90c -- nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue46080> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Tal Einat added the comment: New changeset 27df7566bc19699b967e0e30d7808637b90141f6 by Zane Bitter in branch 'main': bpo-41857: mention timeout argument units in select.poll() and select.depoll() doc-strings (GH-22406) https://github.com/python/cpython/commit/27df7566bc19699b967e0e30d7808637b90141f6 -- nosy: +taleinat ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46080] argparse.BooleanOptionalAction with default=argparse.SUPPRESS and help specified raises exception
Tal Einat added the comment: Thanks for the report and the PR, Felix! -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46080> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Change by Tal Einat : -- pull_requests: +28928 pull_request: https://github.com/python/cpython/pull/30741 ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Change by Tal Einat : -- pull_requests: +28929 pull_request: https://github.com/python/cpython/pull/30742 ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Tal Einat added the comment: New changeset f6e5972fa984c10d47694973db1c91c6486d654a by Tal Einat in branch '3.10': [3.10] bpo-41857: mention timeout argument units in select.poll() and select.depoll() doc-strings (GH-22406) https://github.com/python/cpython/commit/f6e5972fa984c10d47694973db1c91c6486d654a -- ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Tal Einat added the comment: New changeset 656971e4953a70a6048170377888db5530eea0a6 by Tal Einat in branch '3.9': [3.9] bpo-41857: mention timeout argument units in select.poll() and select.depoll() doc-strings (GH-22406) https://github.com/python/cpython/commit/656971e4953a70a6048170377888db5530eea0a6 -- ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41857] Document timeout arguments to poll() in select module
Tal Einat added the comment: Thanks for this improvement, Zane! -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue41857> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45193] IDLE Show completions pop-up not working on Ubuntu Linux
Change by Tal Einat : -- pull_requests: +29025 pull_request: https://github.com/python/cpython/pull/28332 ___ Python tracker <https://bugs.python.org/issue45193> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45578] Missing tests for the dis module
Tal Einat added the comment: Thanks for your work on this Nikita! -- nosy: +taleinat resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue45578> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1178] IDLE - add "paste code" functionality
New submission from Tal Einat: Patch adding a 'Paste Code' item to the 'Edit' menu, as well as hotkeys. Using 'Paste Code' instead of the normal paste will remove prompts ('>>> ' or '... ') from the code, and also remove empty lines if pasting to a shell window. This allows easily copy/pasting code between shell and editor windows, as well as easily pasting code from other applications (e.g. a web browser) into IDLE. This patch uses IDLE's PyParse.py for parsing code, and Tk's clipboard API for interaction with the clipboard (it changes the clipboard's contents, generates a normal paste event, and changes the contents back). Test only on WinXP SP2 so far, needs to be tested on other platforms, especially the clipboard interaction. -- components: IDLE files: IDLE_paste_code.070918.patch messages: 56017 nosy: taleinat severity: minor status: open title: IDLE - add "paste code" functionality type: behavior versions: Python 2.6 __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1178> __ IDLE_paste_code.070918.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1130] Idle - Save (buffer) - closes IDLE and does not save file (Windows XP)
New submission from Tal Einat: The saving bug is a string/bytes issue, simply fixed by replaced line 366 in Lib\idlelib\IOBinding.py with: chars = chars.replace(b"\n", self.eol_convention.encode('ASCII')) -- nosy: +taleinat __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1130> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1225] IDLE - Fix: pressing Ctrl+C while printing exception -> stuck
New submission from Tal Einat: Patch run.py, adding a global 'interruptable' flag which is set only when executing code. This avoids interrupting the main thread while it is printing an exception, which would cause IDLE to freeze up. Reworked patch from IDLE-Spoon. -- components: IDLE files: IDLE_Interrupt.071001.patch messages: 56209 nosy: kbk, taleinat severity: normal status: open title: IDLE - Fix: pressing Ctrl+C while printing exception -> stuck type: crash versions: Python 2.5, Python 2.6 __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1225> __ IDLE_Interrupt.071001.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1130] Idle - Save (buffer) - closes IDLE and does not save file (Windows XP)
Tal Einat added the comment: Your solution is better than my suggestion, but has two minor bugs: 1) eol_convention must be initialized somewhere. For instance, opening a new editor window (Ctrl+N) and saving it fails because self.eol_convention is not defined. I agree that is shouldn't be a class attribute, but it must be intialized in __init__. 2) You meant chars = self.encode(text), right? (otherwise the eol change is discraded...) __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1130> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1252] IDLE - patch Delegator to support callables
New submission from Tal Einat: Add an __call__ magic method to Delegator so that it can delegate to callables. This will raise the required exception if the delegate isn't callable. The built-in callable() method will now return True for any Delegator. Before this patch it always returns False, which is wrong if the delegate is callable, so callable() doesn't really work on Delegator instances in both cases. I couldn't see how this could be harmful. Also make the Delegator class a new-style class. This patch is required for the Squeezer and ShellLogger IDLE extensions found on PyPI to be able to co-exist. -- components: IDLE files: IDLE_Delegator.071010.patch messages: 56305 nosy: kbk, taleinat severity: normal status: open title: IDLE - patch Delegator to support callables type: behavior versions: Python 2.5, Python 2.6 __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1252> __ IDLE_Delegator.071010.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1253] IDLE - Percolator overhaul
New submission from Tal Einat: The Percolator class has been very hard to figure out, and has been a source of confusion for users wanting to "hack" IDLE. This patch makes Percolator a generally useful class which inherits from Delegator. It also adds a new class, TkTextPercolator, which inherits from Percolator and does all of the Text widget specific stuff. The code has been refactored, cleaned up, and the in-code comments have been improved. UndoDelegator.py, ColorDelegator.py and EditorWindow.py have been updated as needed. Also, the code using ColorDelegator in EditorWindow.py has been slightly modified to work better with the Percolator. I've done some testing (only on WinXP but nothing here is platform specific) and this seems to work without a hitch. This patch is required for the Squeezer and ShellLogger IDLE extensions found on PyPI to be able to co-exist. -- components: IDLE files: IDLE_Percolator.071010.patch messages: 56306 nosy: kbk, taleinat severity: normal status: open title: IDLE - Percolator overhaul type: behavior versions: Python 2.5, Python 2.6 __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1253> __ IDLE_Percolator.071010.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1253] IDLE - Percolator overhaul
Tal Einat added the comment: The change required for Squeezer and ShellLogger is the separation of the Tk Text specific logic into a subclass, which makes Percolator a generally useful class. Along with the simple patch to Delegator.py which allows delegation to callables, this change allows one to replace a method with a Percolator instance. I want to do this for EditorWindow.write, since both Squeezer and ShellLogger need to hook onto this call somehow. Furthermore, ShellLogger must catch this call before Squeezer does, since Squeezer may change the output, but the original output should pass through ShellLogger first. Since there is no way to control the order in which extensions are loaded, this constraint must be enforced by the extensions themselves. Using the patched Percolator is the simplest way I could come up with to support this. (IMHO adding a constraint solver for extensions at this point would be overkill.) __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1253> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1252] IDLE - patch Delegator to support callables
Tal Einat added the comment: I understand your argument, but am not convinced. I'll try to explain how I see this and how I came to this view. I wished to wrap a specific method (or function) instead of wrapping the father object with a Delegator and implementing a single method. But I needed more than simple function wrapping - I wanted a chain of functions where each wraps the next, and the ability to change the order of links in this chain. So what I really wanted was a Percolator, but instead of having it wrap an object and delegate methods, I wanted it to delegate direct calls. My first idea was to implement a FunctionDelegator class. But I realized I would have to implement a FunctionPercolator class, which would be indentical to the existing Percolator class except that it would inherit from FunctionDelegator instead of Delegator. >From there I had three choices: 1) create a second pair of delegator/percolator classes which are nearly identical (much code ducplication) 2) make a Percolator generator function, which accepts a Delegator class, and returns a Percolator class/object which uses it (possibly inheriting from it) 3) make Delegator able to delegate direct calls The third option is obviously the simplest to implement, requiring the least code without any code duplication. After some thought, I came to the point-of-view described below, and realized that the third option is actually what I would expect if I were thinking about delegators and percolators as transparent proxies. > Delegates are not intended to be callable. Why not? IMO, the nice thing about the Delegator class is that you can use an instance just as if it were the underlying object, transparently. The major exception from this behavior was that calling a Delegator never works, even if the underlying object is callable. From this point of view, my patch makes the Delegator concept complete, while before it was broken. > I think this patch increases the complexity and obscurity of the > Delegator/Percolator/WidgetRedirector code, rather than improving > it. Apparently you want to sometimes call a chain of methods (as > in current usage) and sometimes call a chain of functions. The > semantic overload, which was bad enough already, is too great. You describe method calls and direct calls as though they were fundamentally different. Therefore you find that delegating both is too much semantic overloading. However, if one views direct calling of an object as a special case of calling a method (since functions are also objects) -- the __call__ method -- then delegating both method calls and direct calls is The Right Thing. > Also, this __call__ method, if actually used, propagates to the > end of the Delegator chain and calls the function at the end, > (assuming it is a function). Or it will skip non-callable > Delegators and stop at the first callable one. True, since this is precisely what Delegators do for any method call -- this is the expected behavior. > If Squeezer and ShellLogger require this change, then I'd > suggest changing them to match current Percolator usage, instead. > Currently I don't see a Delegator being used in Squeezer. Could > you be more specific about why the change is needed for those > two extensions? Squeezer currently replaces PyShell's write method with a method of its own. ShellLogger also needs to hook onto the write method, but ShellLogger's function must be called before Squeezer's method, since Squeezer can insert a button without calling the underlying write method. But extensions must replace the write method in their constructor, and the order of their construction is "random". In other words, a rudimentary form of constraint enforcement is required, which can be achieved using a Percolator. Without the suggested change to Delegator, this can be accomplished by wrapping EditorWindow with a Percolator, and having extensions insert Delegators (filters) as appropriate. However, this is a much larger change to the code -- for example, this breaks type checks, e.g. assert isinstance(editwin, EditorWindow)). This would also add overhead to every method call done on EditorWindow, with this overhead growing linearly with the number of Delegators inserted. I find wrapping specific methods to be more straightforward and therefore simpler, but this can be argued. __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1252> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1334] IDLE - Fix several highlighting bugs
New submission from Tal Einat: This patch fixes the following bugs: * Configured selection highlighting colors were ignored * Updating highlighting in the config dialog would cause non-Python files to be colored as if they were Python source Additionally, adding and removing of ColorDelegators to the Percolator was not being done in an organized fashion, causing multiple colorizers to be present simultaneously in certain cases. This patch ensures that there will always be at most one colorizer present in the Percolator. This patch also reduces code duplication by grouping colorization code into EditorWindow.ResetColorizer, and having __init__ let ResetColorizer do its thing. There is one side effect to this patch - applying a new highlighting scheme or renaming a file causes the screen to "blink". This can be avoided without too much work, but IMHO is minor enough to leave as it is. -- components: IDLE files: IDLE_highlighting.071026.patch messages: 56788 nosy: kbk, taleinat severity: normal status: open title: IDLE - Fix several highlighting bugs versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file8618/IDLE_highlighting.071026.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1334> __ IDLE_highlighting.071026.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1252] IDLE - patch Delegator to support callables
Tal Einat added the comment: It seems we're looking at Delegators and Percolators from increasingly different points of view. Let's back up a little. I see a Delegator object as a transparent proxy to its "delegate". This means that attribute access is automatically delegated to the delegate, unless it is explicitly overridden by the Delegator. That's it. Some use cases for such a transparent proxy are: * override only specific attributes/methods of an object * allow replacement of an object which is referenced in several places without having to update every reference (Caching is just an implementation detail, whose only purpose is to facilitate changing a Delegator's delegate.) As for Percolator, it really "is a" delegator -- it delegates attribute access to the bottom of the chain, unless it is explicitly overridden. True, in a "normal" Delegator this overriding can only be done in one place, and in a Percolator it can also happen in any of the chain's links. But the concept is identical -- it is a transparent proxy for an underlying object. IMO chaining Percolators makes just as much sense as chaining Delegators -- you're just chaining proxies. How each proxy works internally doesn't really matter (as long as they work :). Now, it seems to me that you aren't looking at Delegators and Peroclators as transparent proxies at all. Specifically, what you wrote implies that in order to proxy a callable, one should explicitly define an __call__ method in their Delegator class/instance. But this is exactly the opposite of the behavior with any other method/attribute, where I can implicitly have the underlying attribute used by not defining it in the Delegator. This is Delegator is for! I'm attaching a Python file which will hopefully show how __call__ is out of sync with the rest of Delegator's behavior. In its context, "forwarded" means explicitly defined by a Delegator. "intercepted" means that except for the interceptor and catcher, the method is not defined (i.e. by the passers). Please take a moment to run it. I should note that the situation is similar with other "magic" methods, e.g. len(). This seems to make Python a bit less dynamic that I would expect. Aside from implementation considerations such as speed, I'm not sure I see why this is the way it is, e.g. why dynamically giving a __call__ attribute to an instance shouldn't make it callable. I'll do some more searching and reading on this. Even though, I still think being able to delegate/percolate callables is important enough to warrant such a change. After all, at the bottom line, if the underlying object is callable then it will be called, and if not then an appropriate exception will be raised. Isn't that the Right Thing? Added file: http://bugs.python.org/file8637/Delegators3.py __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1252> __import traceback from Delegator import Delegator class NamedDelegator(Delegator): "A bit of infrastructure..." def __init__(self, name): Delegator.__init__(self) self.name = name def _forward(self, to): return self.name + ' -> ' + to def _catch(self): return self.name class Catcher(NamedDelegator): "Just catches everything" forwarded = intercepted = quietly_forwarded = quietly_intercepted = \ __call__ = NamedDelegator._catch class Passer(NamedDelegator): "Just forwards everything" def forwarded(self): return self._forward(self.delegate.forwarded()) def intercepted(self): return self._forward(self.delegate.intercepted()) # forwarding quietly means letting Delegator take care of it class Interceptor(NamedDelegator): "Forwards or intercepts, according to method names" def forwarded(self): return self._forward(self.delegate.forwarded()) quietly_intercepted = NamedDelegator._catch intercepted = NamedDelegator._catch __call__ = NamedDelegator._catch class CallableDelegator(Delegator): def __call__(self, *args, **kwargs): return self.delegate.__call__(*args, **kwargs) # Set up a chain bottom = b0 = Catcher("Catcher") b1 = Passer("Passer 1") b1.setdelegate(b0) b2 = Interceptor("Interceptor 2") b2.setdelegate(b1) top = b3 = Passer("Passer 3") b3.setdelegate(b2) # See what happens print '"forwarded" is only implemented by the bottom ("Catcher"):' print 'top.forwarded() =', top.forwarded() print print 'but "intercepted" is also implemented by b2 ("Interceptor 2"):' print 'top.intercepted() =', top.intercepted() print print 'this is how it looks without
[issue1334] IDLE - Fix several highlighting bugs
Tal Einat added the comment: The first patch contained a bug - a window opened using the "New Window" menu option would not be colorized. This patch removes the assumption that EditorWindow.ResetColorizer will be called by IOBinding code, by calling ResetColorizer during __init__ anyways. This means that in some cases it will be called multiple times, but this has no noticeable effect since the window is not shown until afterwards. (In the worst case scenario, the colors would "blink" once or twice.) Added file: http://bugs.python.org/file8640/IDLE_highlighting.071028.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1334> __ IDLE_highlighting.071028.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
New submission from Tal Einat: This (relatively speaking) simple patch allows the full doc-string of a callable to be displayed in a textView window. Once a call-tip is being displayed, hitting one of the keys which is bound to the force-open-calltip virtual event (Control-backslash by default) opens the new window. If there is no extra documentation to be shown (in addition to what is already shown in the call-tip), the window is not displayed. -- components: IDLE files: IDLE_CallTips.071028.patch messages: 56876 nosy: kbk, taleinat severity: minor status: open title: IDLE - CallTips enhancement - show full doc-string in new window versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file8641/IDLE_CallTips.071028.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ IDLE_CallTips.071028.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1717170] "Really print?" Dialog
Tal Einat added the comment: :) Minor note - shouldn't there be a question mark at the end of the message? _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1717170> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1612746] Enhanced tabbed pane widget
Tal Einat added the comment: Update, as requested. After the recent configDialog.py changes, very little changes to it are required. I've included a much updated version of tabbedPages.py in this patch. Since posting the original patch, I've discovered and fixed a few bugs, implemented a 3d look for the tabs, and cleaned up the code. This version has also been tested more thoroughly. Also, this version very nicely supports tabbed panes with more than one row of tabs. However you can't see this with configDialog.py, you'll have to use the test code to check it out (just add several new pages and then play around with them). I've used this feature in implementing the extension config dialog, where every extension gets its own tab. I hope I can finally get to posting a patch for it... Enjoy! Added file: http://bugs.python.org/file8650/IDLE_tabbedPages.071029.patch _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1612746> _ IDLE_tabbedPages.071029.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1612746] Enhanced tabbed pane widget
Tal Einat added the comment: Bah, sorry, included wrong version of tabbedPages.py in the previous patch. (differences are very minor, just some code cleanup and one very minor bug) Added file: http://bugs.python.org/file8653/IDLE_tabbedPages.071029.patch _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1612746> _ IDLE_tabbedPages.071029.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1252] IDLE - patch Delegator to support callables
Tal Einat added the comment: I'm trying to keep this as simple as possible, because it seems we're tending to over-complicate. We're discussing two distinct issues: 1) Should Delegator delegate calls to callables 2) Should Percolator inherit from Delegator Have I missed something? Regarding the first issue, I do think Delegator should do this, because I view calling a callable as a special case of calling a method. To illustrate my point, please take the code in example1.py, run it once with Delegator as it is, and run it again after adding the __call__ method to Delegator's definition. Regarding the second issue, I don't think I can put my thoughts better than I already have: As for Percolator, it really "is a" delegator -- it delegates attribute access to the bottom of the chain, unless it is explicitly overridden. True, in a "normal" Delegator this overriding can only be done in one place, and in a Percolator it can also happen in any of the chain's links. But the concept is identical -- it is a transparent proxy for an underlying object. Added file: http://bugs.python.org/file8654/example1.py __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1252> __import traceback from Delegator import Delegator class Callable(object): def __call__(self, *args, **kw): return args, kw def method(self, *args, **kw): return args, kw if __name__ == '__main__': delegator = Delegator(Callable()) print 'Normal method call:', print delegator.method('one', two='two') print '"Direct" call (the underlying object is callable):', try: print delegator('one', two='two') except: print traceback.print_exc() ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1612746] Enhanced tabbed pane widget
Tal Einat added the comment: Updated patch as requested. Most of the changes are cosmetic, except one minor bug (kw -> **kw). I added a few comments and doc-strings as well. Consider removing tabpage.py, which is no longer used... Added file: http://bugs.python.org/file8671/IDLE_tabbedpages.071101.patch _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1612746> _ IDLE_tabbedpages.071101.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1374] IDLE - minor FormatParagraph bug fix
New submission from Tal Einat: The format_paragraph_event method was not returning "break", causing unwanted side effects when called via a key binding. -- components: IDLE files: IDLE_FormatParagraph.071102.patch messages: 57060 nosy: kbk, taleinat severity: normal status: open title: IDLE - minor FormatParagraph bug fix versions: Python 2.5, Python 2.6, Python 3.0 Added file: http://bugs.python.org/file8678/IDLE_FormatParagraph.071102.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1374> __ IDLE_FormatParagraph.071102.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1457] IDLE - configDialog - new layout for key config
New submission from Tal Einat: As brought up on the idle-dev mailing list, I have redesigned the key config window. The new layout is two wide frames one above the other, instead of two tall frames side-by-side. This allows the key-binding entries to be completely visible in the listbox. -- components: IDLE files: IDLE_configDialog.071118.patch messages: 57617 nosy: kbk, taleinat severity: normal status: open title: IDLE - configDialog - new layout for key config versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file8771/IDLE_configDialog.071118.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1457> __ IDLE_configDialog.071118.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1705362] cannot change cursor color in IDLE
Tal Einat added the comment: Fixed in patch 1725576. -- title: cannot change cursor color in IDLE -> cannot change cursor color in IDLE _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1705362> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1692335] Fix exception pickling: Move initial args assignment to BaseException.__new__
Tal Einat added the comment: I'd just like to weigh in and say that this is a major issue for me at the moment. Not being able to indiscriminately pickle/unpickle exceptions is making my parallel-processing work very painful, because of problematic stdlib exceptions. I'm surprised this hasn't been fixed way back in 2.x. FWIW, for my project having this fixed in 3.x could be a significant incentive to finally ditch 2.x. -- nosy: +taleinat ___ Python tracker <http://bugs.python.org/issue1692335> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12411] cgi.parse_multipart is broken on 3.x
Tal Einat added the comment: The patch seems broken to me. In cgi.parse_multipart(), the 'boundary' variable can be a string even though it is concatenated to bytes. Its default value is a string, and a string can be given via the pdict argument. There is no validity check other than valid_boundary(), which allows both string and bytes. Most of the changes to test_cgi.py are entirely unrelated. The one test added which tests cgi.parse_multipart() should fail since it uses a string (not bytes) boundary, while the correct boundary for the test is commented out. I short this patch seems half-baked. IMO reject this patch and fix just the bytes/strings issue with cgi.parse_multipart. Or, as mentioned in the comments, use FieldStorage to implement it and be done with it. -- nosy: +taleinat ___ Python tracker <http://bugs.python.org/issue12411> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12411] cgi.parse_multipart is broken on 3.x
Tal Einat added the comment: Yes, please submit the other additional tests in a separate issue. The default value for boundary should surely be b"". A simple test should be added where cgi.parse_multipart() uses the default boundary. If valid_boundary() is used only for cgi.parse_multipart() then it should be changed to validate that the boundary is a bytes instance (which would also make it simpler). Otherwise (if vaild_boundary() is also used elsewhere) cgi.parse_multipart() should itself check that the boundary is indeed a bytes instance, throwing a TypeError otherwise. Tip: You should run the relevant tests, making sure they all pass, before submitting a patch. That way you really know that the patch actually works (as far as passing all of the tests). Thanks for adding more stdlib tests :) -- ___ Python tracker <http://bugs.python.org/issue12411> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12590] First line and cursor not visible when opening files
Changes by Tal Einat : -- nosy: +taleinat ___ Python tracker <http://bugs.python.org/issue12590> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10107] Quitting IDLE on Mac doesn't save unsaved code
Tal Einat added the comment: Note that some discussion about this issue is taking place on the idle-dev mailing list. Bruce Sherwood found the line "root.bind('<>', flist.close_all_callback)", which seems to be an unsuccessful attempt to achieve the wanted behavior. Kevin Walzer mentioned that a grep on the idlelib code doesn't turn up any references to "tk::mac::Quit". I don't have access to OSX for testing. Could someone please replace the root.bind call with what Kevin suggested, and see if it solves the problem? -- ___ Python tracker <http://bugs.python.org/issue10107> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Changes by Tal Einat <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file8641/IDLE_CallTips.071028.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Changes by Tal Einat <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file8960/IDLE_CallTips.071214.incremental.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Tal Einat <[EMAIL PROTECTED]> added the comment: After more testing, I discovered a bug which broke Goto Line. Attaching a fixed patch. Added file: http://bugs.python.org/file10555/IDLE_standardize_dialogs.080609.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Changes by Tal Einat <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file10555/IDLE_standardize_dialogs.080609.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Changes by Tal Einat <[EMAIL PROTECTED]>: Added file: http://bugs.python.org/file10556/IDLE_standardize_dialogs.080609.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3068] IDLE - Add an extension configuration dialog
New submission from Tal Einat <[EMAIL PROTECTED]>: Attaching a patch for a straightforward extension config dialog, largely based on configDialog.py. This uses the multiple-tab-rows feature of the TabbedPageSet widget from the tabbedPages module, as well as the included VerticalScrolledFrame widget. Other than that there's nothing really new here. -- components: IDLE files: IDLE_configExtensionsDialog.080609.patch keywords: patch messages: 67872 nosy: kbk, taleinat severity: normal status: open title: IDLE - Add an extension configuration dialog type: behavior versions: Python 2.6 Added file: http://bugs.python.org/file10560/IDLE_configExtensionsDialog.080609.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue3068> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3068] IDLE - Add an extension configuration dialog
Changes by Tal Einat <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file10560/IDLE_configExtensionsDialog.080609.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue3068> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3068] IDLE - Add an extension configuration dialog
Tal Einat <[EMAIL PROTECTED]> added the comment: I forgot to mention: This patch also removes the "paragraph width" option from the "General" tab in the normal IDLE config, since that configures a parameter of the FormatParagraph extension, which can now be done in the extension config dialog. Added file: http://bugs.python.org/file10561/IDLE_configExtensionsDialog.080609.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue3068> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1529018] Move firewall warning to "about" menu
Tal Einat <[EMAIL PROTECTED]> added the comment: What if this message was made part of the error message which is displayed when the connection to the subprocess fails? This way only users in situations where it is likely that the warning is relevant will see it. I suggest this since the original problem for which the warning was added has become very uncommon, so bugging all of our users with such a warning (even if it has a "don't show this again" check-box) seems unnecessary. ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1529018> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3344] IDLE - use enumerate instead of zip(count(), ...)
New submission from Tal Einat <[EMAIL PROTECTED]>: Just minor code cleanup. Only one instance of zip(count(), ...) in EditorWindow.py, where I also changed 'file' to 'file_name' to avoid overriding the built-in 'file' class. -- files: IDLE_EditorWindow_minor.patch keywords: patch messages: 69571 nosy: kbk, taleinat severity: normal status: open title: IDLE - use enumerate instead of zip(count(), ...) Added file: http://bugs.python.org/file10878/IDLE_EditorWindow_minor.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue3344> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Tal Einat added the comment: Yes, I admit I haven't tested this very thoroughly. I'll give this some more time this weekend and submit another patch. As for 3.0, I'll have to see what you've changed, but I'll gladly work up a patch based on the newer version. __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Tal Einat added the comment: Alrighty then! Since I had also done some work on CallTips.py since the previous patch, I've worked up a merged version, including stuff from the py3k version and better tests. Changes since the first patch: * add support for callable instances (e.g. __call__) * use inspect, which does the hackish stuff for us, such as using .im_func where needed and formatting doc-strings appropriately * use isinstance instead of type checking, like in the py3k branch * rename get_arg_text to get_arg_text_and_doc * add test cases for callable instances, classmethods, staticmethods and old-style classes * rework testing code * tested extensively (only on WinXP, Python2.5) I'm attaching a patch relative to the current SVN head, and another one relative to the current SVN head with the previous patch applied. Added file: http://bugs.python.org/file8957/IDLE_CallTips.071214.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ IDLE_CallTips.071214.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Changes by Tal Einat: Added file: http://bugs.python.org/file8958/IDLE_CallTips.071214.incremental.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Tal Einat added the comment: Now for CallTipWindow.py: * split conditionals into two lines as requested * changed the test (took me a while to understand what "controversy" you were referring to...) I couldn't find anything wrong with the first line. It is the function/method signature if it was found, or just the beginning of the doc-string otherwise. Unless you think the adding the signature (when possible) is unnecessary/confusing... The above changes are included in both new patches. Added file: http://bugs.python.org/file8959/IDLE_CallTips.071214.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ IDLE_CallTips.071214.patch Description: Binary data ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Changes by Tal Einat: Added file: http://bugs.python.org/file8960/IDLE_CallTips.071214.incremental.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Tal Einat added the comment: (bah, sorry for the mess, use the patch files from the later hour) __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1607] Patch for TCL 8.5 support
Changes by Tal Einat: -- nosy: +taleinat __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1607> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1777398] IDLE Freezes After Running Scripts
Changes by Tal Einat: -- nosy: +taleinat _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1777398> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1350] IDLE - CallTips enhancement - show full doc-string in new window
Tal Einat added the comment: I had a working version which also used inspect before I saw your 3.0 version, but they both use inspect similarly, very straightforward. I seem to recall only one of the version used inspect to get the doc string, but I don't remember which one... Depending on how you divide things, this patch includes more than just two different developments. But they are interrelated to some extent. And one of the developments is more rigorous testing, which this version passes with flying colors. If you wish, I can try to get another developer or two to test and review this patch, if that will help somehow. Or anything else that will help... __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1350> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1607] Patch for TCL 8.5 support
Tal Einat added the comment: I say close it, but start a discussion on switching to Tcl/Tk8.5 on the appropriate list(s). __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1607> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2050] IDLE - make ScriptBinding event handlers return 'break'
New submission from Tal Einat: Event handlers in ScriptBinding.py were not returning 'break', although they should have been. -- components: IDLE files: IDLE_ScriptBinding.080208.patch messages: 62196 nosy: kbk, taleinat severity: minor status: open title: IDLE - make ScriptBinding event handlers return 'break' type: behavior versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file9391/IDLE_ScriptBinding.080208.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2050> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2049] IDLE - Restart Shell & Run Module
New submission from Tal Einat: When IDLE is run with a subprocess, add a 'Restart Shell & Run Module' item to the 'Run' menu in editor windows. Also add Alt-F5 as a hotkey for this item. This is what the 'Run Module' (F5) item used to do (when there was a subprocess). As of this patch 'Run Module' will not restart the shell under any circumstances. The advantages of this are that the user has more control (can run a module in the shell either with or without restarting). It also avoids surprising users which wouldn't expect 'Run Module' to restart the shell. Based on changes proposed by Doug on idle-dev: http://mail.python.org/pipermail/idle-dev/2007-January/002541.html -- components: IDLE files: IDLE_restart_shell_and_run_module.080208.patch messages: 62195 nosy: kbk, taleinat severity: normal status: open title: IDLE - Restart Shell & Run Module type: behavior versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file9390/IDLE_restart_shell_and_run_module.080208.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2049> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
New submission from Tal Einat: In many places in the code, tkMessageBox dialogs were being used directly, with the master (parent) widget being set explicitly to the EditorWindow's text widget. Only in some cases was the focus being set to the text widget afterwards, although in most this is the Right Thing To Do. This patch adds a decorator which wraps a tkMessage box (or similar) function to use the EditorWindow's text widget as a parent by default and set focus back to it afterwards. This is used to wrap the showerror and ask* methods. It also changes the code to use these methods wherever appropriate. All in all, the change in functionality is that the dialogs' parent widget will always be the text widget, and that focus will always be returned to it. This makes the interface more consistent. As a bonus, a lot of repetitive cruft is removed from the code, and writing extensions is made another bit simpler. -- components: IDLE files: IDLE_standardize_dialogs.080208.patch messages: 62214 nosy: kbk, taleinat severity: normal status: open title: IDLE - standardize dialogs versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file9394/IDLE_standardize_dialogs.080208.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1794] Hot keys must work in any keyboard layout
Tal Einat added the comment: (sorry to be joining in late, but I just happened upon this...) Nashev, if you configured your IDLE's keys to fit a Russian keyboard layout, then you could post your config-keys.cfg file (from your .idlerc directory) on the internet for others to enjoy. (this is the file where user-configured key bindings are saved) IMHO, specifically in the case of IDLE, binding to scan codes instead of characters would be harmful, since it would be harder for users not familiar with scan codes to understand and tweak. -- nosy: +taleinat __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1794> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Tal Einat added the comment: Bah, the initial version contained a silly bug in EditorWindow.goto_line_event. Please remove it, and use this version instead. Added file: http://bugs.python.org/file9395/IDLE_standardize_dialogs.080209.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Tal Einat added the comment: Going through the code more thoroughly, found additional places where the standardized dialogs should be used. Also fixed remaining places where these dialogs are used but the parent widget was still being explicitly set to be the text widget, which is now the default. (should be easy to apply both patches in any order without conflicts) Added file: http://bugs.python.org/file9396/IDLE_standardize_dialogs.080209_2.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2061] IDLE - autocompletion to support alternate patch separators
New submission from Tal Einat: This patch makes the auto-completion of file names support possible alternate separator characters (e.g. '/' in windows). -- components: IDLE files: IDLE_AutoComplete_path_separators.080211.patch messages: 62263 nosy: kbk, taleinat severity: minor status: open title: IDLE - autocompletion to support alternate patch separators type: rfe versions: Python 2.6 Added file: http://bugs.python.org/file9400/IDLE_AutoComplete_path_separators.080211.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2061> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2062] IDLE - autocompletion logic optimization
New submission from Tal Einat: Improve the code in AutoCompleteWindow._complete_string to be more efficient. (this is to be followed up by a more extensive patch, which builds on this change to support case-insensitive completion) -- components: IDLE files: IDLE_AutoComplete_complete_string_optimization.080211.patch messages: 62265 nosy: kbk, taleinat severity: minor status: open title: IDLE - autocompletion logic optimization type: behavior versions: Python 2.6 Added file: http://bugs.python.org/file9402/IDLE_AutoComplete_complete_string_optimization.080211.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2062> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2062] IDLE - autocompletion logic optimization
Tal Einat added the comment: Found two more instances in the code where a similar improvement can be made. This (second) version of the patch is more consistent, please use it instead of the initial version. Added file: http://bugs.python.org/file9403/IDLE_AutoComplete_complete_string_optimization.080211.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2062> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2049] IDLE - Restart Shell & Run Module
Tal Einat added the comment: First of all, installing Python on Windows creates a 'Edit with IDLE' context-menu item whenever you right-click a .py file, which opens IDLE without a subprocess. The reason for this is that there is still a problem regarding having several instances of IDLE, each with a subprocess, open in parallel on Windows. The result is that many users on Windows are often running IDLE without a subprocess; we can't treat it as an 'expert' mode. IMHO if you really feel strongly about this, then the Windows issue must be resolved, and the 'Edit with IDLE' context-menu item should run IDLE with a subprocess. I understand your point that having the shell be restarted every time helps teach good programming practices. But IDLE is used not only as a learning environment; it's also a great Python shell for other purposes, such as testing & debugging or scientific uses. I agree that these are more advanced uses, so perhaps restarting the shell could be the default, and the option to not have it restarted available when needed. Thinking about it, I like the idea of an extension which is disabled by default. I'll think about it some more, and then perhaps implement it. Just a thought: It would be important to mention such an extension in a prominent place in the documentation. __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2049> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2062] IDLE - autocompletion logic optimization
Tal Einat added the comment: Well, I admit, I haven't tested this enough. Specifically, there is a bug in this patch (both versions); please delete it. I accept your criticism of my latest patches, they truly are of inferior quality. I deeply apologize for having taken up more of your time than I should have. Allow me to explain my situation: I work with a highly modified version of IDLE to which I have added many features, and which is also used daily by ~10 friends and colleagues. Many of these patches are my attempt to contribute the more mature and successful changes/features back to CPython. However, the completion code differs greatly from the CPython version, making porting changes a large effort, requiring me to re-implement many things, as well as go once more through the process of testing and debugging. This is really a great deal of work and I have been eager to contribute some of the better features. While I have tried to be methodical, thorough and test everything, I seem to still have been too hasty. I must tell you that I spent many hours preparing the last few patches, but I realize that doing half a job is worse than not doing it at all. In the future I will test every change much more thoroughly before posting it as a patch. __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2062> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2049] IDLE - Restart Shell & Run Module
Tal Einat added the comment: I agree that the interface should be kept as simple as possible, but this is a meaningful and important addition, which will help clarify to the users how to work with the subprocess. The point of this change is avoid surprising the user, while also making the interface more straightforward and consistent. The major usage issues that this patch addresses, as I see them, are: 1. New users are surprised and aggravated when they first use 'Run Module', because they weren't expecting the shell to be restarted, causing them to lose a lot of work done before the restart. This also happens to experienced users sometimes (accidents happen) and can be very frustrating. I don't think the 'normal state' should be to restart the shell, rather this should always be explicitly requested by the user. 2. When working with a subprocess, there is no (simple) way to just run the module in the shell without restarting it. 3. Inconsistency in the functionality of 'Run Module' depending on whether you have a subprocess. The problem with the configuration option approach is that if you configure 'Run Module' to not restart, then restarting requires: switching to the Shell window, restarting, switching back to the editor window, and running the module: 4 actions instead of one. __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2049> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2062] IDLE - autocompletion logic optimization
Tal Einat added the comment: After fixing the aforementioned bug and testing as thoroughly as I can, here is a revised patch. Added file: http://bugs.python.org/file9426/IDLE_AutoComplete_complete_string_optimization.080214.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2062> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2061] IDLE - autocompletion to support alternate path separators
Tal Einat added the comment: Umm, that's me being silly and forgetting to remove some backwards compatibility stuff. Revised (simpler) version attached. Added file: http://bugs.python.org/file9439/IDLE_AutoComplete_path_separators.080216.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2061> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1529142] Allowing multiple instances of IDLE with sub-processes
Tal Einat <[EMAIL PROTECTED]> added the comment: I really, really wish we could get this in for Python2.6 - this issue is a major drawback for beginners, for whom IDLE is mostly intended. Perhaps not this specific patch; I am willing to work on cleaning up the code and getting it tested by users on different platforms. Is there any chance of this happening? What can I do to get this moving again? _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1529142> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1529142] Allowing multiple instances of IDLE with sub-processes
Tal Einat <[EMAIL PROTECTED]> added the comment: Thanks for taking the time to review this patch, Guilherme. For the record, on which OS+Python have you tested this? _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1529142> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Tal Einat <[EMAIL PROTECTED]> added the comment: uploaded a single comprehensive patch file Added file: http://bugs.python.org/file10140/IDLE_standardize_dialogs.080429.patch __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3640] test_cpickle crash on AMD64 Windows build
Tal Einat <[EMAIL PROTECTED]> added the comment: Will this be back-ported to 2.5.3? (please say yes...) -- nosy: +taleinat ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue3640> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1529142] Allowing multiple instances of IDLE with sub-processes
Tal Einat <[EMAIL PROTECTED]> added the comment: First of all, the multiprocessing module doesn't work fully in an interactive shell. >From the Python2.6 docs: "Note Functionality within this package requires that the __main__ method be importable by the children. This is covered in Programming guidelines however it is worth pointing out here. This means that some examples, such as the multiprocessing.Pool examples will not work in the interactive interpreter." And later on that same page (under Programming Guidelines -> Windows): "Make sure that the main module can be safely imported by a new Python interpreter without causing unintended side effects (such a starting a new process)." This is probably why IDLE is acting up for you. I would be surprised if using the multiprocessing module will work well in IDLE either with or without a sub-process. As per the patch, someone should just work up an updated one with all of the insight gained in the last several years (!) regarding this. It should just do two things: 1) remove the use of the SO_REUSEADDR flag in the sub-process spawning code -- see http://bugs.python.org/issue1201569 2) pass zero as the argument for the port number, which instructs the underlying socket library to select an available port, and later retrieve the selected port from the socket object -- see http://mail.python.org/pipermail/idle-dev/2008-June/002687.html The other changes in my original patch, while they do work, are unnecessarily complex and make it much harder to get the patch accepted. They should also not be significant if the spawning delays are fixed. If you'd like to work up such a patch and get it reviewed and committed, please be my guest! I will help you in any way I can if you take this up. Otherwise I guess it will wait until I find the time and energy... ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1529142> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2053] IDLE - standardize dialogs
Tal Einat <[EMAIL PROTECTED]> added the comment: Attaching a new patch against a more recent revision (resolved minor conflict). Only 3 extremely minor changes from previous patch: fixed two more places where the parent was being passed explicitly (no longer required) and changed two tabs -> spaces. I've done some fairly thorough manual testing of this, and have been using it without any issues for almost six months. Added file: http://bugs.python.org/file12161/IDLE_standardize_dialogs.081129.patch ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2053> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37821] IDLE shell uses wrong namespace for completions
Tal Einat added the comment: Terry, many thanks for the clarifications! > The intended behavior is to complete if at all possible. I can see the point in that. > What is odd to me is that you seem happy using the more numerous non-user > IDLE imports when there is no Shell. The alternative would just be completing in an empty namespace, which would be completely useless. I do agree that having a shell should increase the available modules etc. available for completion. FWIW I brought this up trying the dict-key completions in the shell with `globals()`, and got very surprising results. Perhaps we should differentiate between completions in the shell vs. when editing a file. In the shell, having completions for things not actually available is weird IMO. In the editor it makes more sense. Or perhaps we should really go the route of 18766 and try to make all available modules available for completions. I really dislike the arbitrary availability of only certain modules for completion. That would likely be a *huge* undertaking, though, and I don't think it's worth it. Maybe restrict this to just stdlib modules, and/or use lazy (on demand) importing. Finally, we can also decide that the current behavior is what we want. It's there, documented, and normally not very surprising. -- ___ Python tracker <https://bugs.python.org/issue37821> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37821] IDLE shell uses wrong namespace for completions
Change by Tal Einat : -- Removed message: https://bugs.python.org/msg349556 ___ Python tracker <https://bugs.python.org/issue37821> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37821] IDLE shell uses wrong namespace for completions
Tal Einat added the comment: Terry, many thanks for the clarifications! > The intended behavior is to complete if at all possible. I can see the point in that. > What is odd to me is that you seem happy using the more numerous non-user > IDLE imports when there is no Shell. The alternative would just be completing in an empty namespace, which would be completely useless. I do agree that having a shell should increase the available modules etc. available for completion. FWIW I brought this up trying the dict-key completions in the shell with `globals()[` and got surprising results. Perhaps we should differentiate between completions in the shell vs. when editing a file. In the shell, having completions for things not actually available is weird IMO. In the editor it makes more sense. Or perhaps we should really go the route of issue #18766 and try to make all available modules available for completions. I really dislike the arbitrary availability of only certain modules for completion. That would likely be a *huge* undertaking, though, and I don't think it's worth it. Maybe restrict this to just stdlib modules, and/or use lazy (on demand) importing. Finally, we can also decide that the current behavior is what we want. It's there, documented, and normally not very surprising. -- ___ Python tracker <https://bugs.python.org/issue37821> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37849] IDLE: Completion window misplaced when shown above current line
New submission from Tal Einat : When the current line is near the bottom of the shell window, the completions list will be shown above it. However, instead of appearing directly above the current line, it appears quite a bit higher, about one line too high. See attached screenshot. Seen on Windows 10 with current master (2a570af12ac5e4ac5575a68f8739b31c24d01367). First brought up by Terry Reedy in a comment on PR GH-15169 [1]. [1] https://github.com/python/cpython/pull/15169#issuecomment-521066906 -- assignee: terry.reedy components: IDLE messages: 349652 nosy: taleinat, terry.reedy priority: normal severity: normal status: open title: IDLE: Completion window misplaced when shown above current line versions: Python 3.7, Python 3.8, Python 3.9 ___ Python tracker <https://bugs.python.org/issue37849> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37849] IDLE: Completion window misplaced when shown above current line
Change by Tal Einat : Added file: https://bugs.python.org/file48541/idle_completion_window_position.png ___ Python tracker <https://bugs.python.org/issue37849> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37849] IDLE: Completion window misplaced when shown above current line
Change by Tal Einat : -- keywords: +patch pull_requests: +14988 stage: -> patch review pull_request: https://github.com/python/cpython/pull/15267 ___ Python tracker <https://bugs.python.org/issue37849> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com