New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
idlelib for Python 3 with Guilherme Polo GSoC enhancements #54288
Comments
It is proposed to incorporate the work of Guilherme Polo in the 2009 Here is a description from NEWS.txt: In December 2008 David Scherer created an alternative version
Polo submitted patches at the end of the summer of 2009, found at Because the mechanism was not clear for getting these patches In October 2010 Bruce Sherwood manually applied Polo's patches In addition to applying Polo's patches, the new code uses the new |
Thanks for creating the patch. Since it is a feature, it would be considered to be applied to the current py3k branch (which at the moment is what will be going into the 3.2 release) rather than 3.1 which is generally only accepting bug fixes. By the way, since I was investigating some other issues in IDLE for OS X, I thought it would be interesting to try the code here on the current 3.2. To that end, I did a quick forward port of the patch file, vidle20101012.diff, to the current py3k (3.2) branch. The results are attached, but need to be thoroughly reviewed. I simply did a quick test which indicated the patch did not have an impact one way or the other on the other issues so, at the moment, I am not planning to work further on this patch. I am uploading it here in case it might be of use. Some notes: the 3.2 version of the patch differs because some of the changes in the original patch have already been checked in to py3k; there was another new file missing from the original patch (utils.py) which I pulled in from the vpython.org VIDLE 3.1.2 source patch, and I noticed one line in IOBinding.py that is commented out in the vidle20101012.diff file but not in the vpython.org source (I added a further comment there around line 240). |
Thanks for catching the missing utils.py file. I can explain the missing/commented statement in IOBinding.py. I found experimentally that if that statement is present, when you open a file on Windows the first line is off the top of the display, which can be quite confusing; this bug is not present on the Mac, and deleting the statement makes Windows work properly without affecting the Mac. The deletion of the statement was the very last correction Guilherme Polo made, and I got the correction into the patch I submitted but not into a less correct file at vpython.org. |
I found a couple of mistakes in the patch I submitted (places where "vidle" should have been "idlelib", and which aren't addressed in Ned Deily's patch), so I've rebuilt the patch starting from the tag r32a3, which I assume is the version from which Ned started. |
At Guido's request, I've carried out the same update to the IDLE distributed with Python 2.7 that I submitted for Python 3, to incorporate the work of Guilherme Polo in the Google Summer of Code 2009. Guido was concerned that with significant problems reported for IDLE 2.7, there should be an update despite Python 2.7 itself being essentially frozen. The basic structure for IDLE 3.2 was carried over. The main changes that had to be made to the Polo code were the change in module names between Python 2.7 and Python 3.2 (e.g. Tkinter in 2.7 is tkinter in 3.2). The patch was built from the release27-maint branch. Bug report 10137 should now be listed as a duplicate. |
Ping. IDLE dead again? |
Not dead, just pining for the fjords. The two versions of the patch as submitted need some work before being ready for review. One issue is that the patches were originally applied to earlier snapshots of IDLE, so some subsequent changes have been reverted in the patches. Also the patches contains a collection of mostly disparate features and changes: some appear to be straightforwardly compatible while other parts appeared to change existing behavior and may need to be discussed. Rather than troubling Bruce again, I'd be happy to refresh them and perhaps split them up into more manageable pieces. I'll try to find some time to do so in the near future. |
Thanks for the reassurance, Ned. I would be happy to help, but frankly I don't know my way around in IDLE very well, and I pretty much tried simply to get Polo's changes into the hopper. Presumably if you want a view of the separate issues he addressed, you can get some guidance from his GSoC work. |
I went through the changes in "idlelib20101012_From_r32a3.patch". A lot of the changes are for using relative imports. Those changes aside, here is a list of issues that this patch covers. Most of these issues already have patches that are included in the large patch. EditorWindow.py, textView.py: EditorWindow.py, OutputWindow.py, PyShell.py: ClassBrowser.py: FileRevert.py: IOBinding.py: PyShell.py: There are two major changes that are not covered by other issues (AFAIK).
There are several other small tweaks in the patch that will need some review. If I missed anything, please add a comment. |
minor mistake - bpo-3559 "Pasted \n not same as typed \n" |
Thanks, Roger. It would also be helpful if you ascertain for the overlaps which of the two versions is newer, the individual issue/path or the large feature diff. The relative import changes should not be applied in the standard library; they were specifically removed earlier. |
I checked the submitted patches from the issues against the large patch by eye. Guilherme's patches in these separate issues have the same contents: bpo-1207589, bpo-1612262, bpo-1721083, bpo-6699, bpo-3359. The large patch updates bpo-964437, but the "view_file" change is outdated. |
The large patch also contains the same patch in bpo-6649. |
With PEP-343 accepted, we can apply changes more uniformly. I think each of the changes listed should be separate issues with separate review, as most already are (msg149930). "Run a script without saving it first." I am sure this has been mentioned on at least 1 other issue, but I cannot find an issue devoted to this. "The "PseudoStderrFile" in PyShell.py brings the shell forward if an error occurs." The PseudoFiles were updated last fall. Has this behavior been added? |
House cleaning: much time has passed since this issue was originally opened and the state of IDLE development has changed dramatically for the better since then, thanks, in large part, to Terry taking charge. I suspect that nearly all of the individual items here have already been addressed as separate issues. But, as I no longer have time to follow IDLE development, I am going to reassign this issue to Terry for a final review and closing. |
I'd just like to say that I like A configuration preference that permits writing and running very much, it would save me a lot of time, and would like to see it in some future version of IDLE. I can even try to implement it myself, but of course, it would be much better if Terry did it. |
In msg149930, Roger said "There are two major changes that are not covered by other issues (AFAIK).
There are several other small tweaks in the patch that will need some review. "
|
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: