msg215846 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2014-04-09 21:24 |
Upon restarting the user process, Idle prints a separator bar in the shell:
====================================== RESTART=====================....
When restart is due to running a file with F5, print "RUN filename" instead of "RESTART". Idea from Adnan Umer, pydev list. For Shell / Restart Shell Cntl+F6, maybe change to "RESTART Shell" (my additional idea).
|
msg215888 - (view) |
Author: Adnan Umer (Adnan.Umer) * |
Date: 2014-04-10 15:13 |
Method: runcode
Class: ModifiedInterpreter
Line: 752
Added
if code.co_filename[0] != '<':
self.tkconsole.write('Executing ' + code.co_filename + '\n')
To print file path that is executed
|
msg216277 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2014-04-15 05:29 |
I have not tried your patch yet, but the relevant code seems to be
class ModifiedInterpreter(InteractiveInterpreter):
def runcode(self, code):
if code.co_filename[0] != '<': ## your patch
self.tkconsole.write('Executing ' + code.co_filename + '\n')
if self.tkconsole.executing:
self.interp.restart_subprocess()
def restart_subprocess(self, with_cwd=False):
if was_executing:
console.write('\n')
console.showprompt()
halfbar = ((int(console.width) - 16) // 2) * '='
console.write(halfbar + ' RESTART ' + halfbar)
The 2 problems I see with the patch are that 1) it prints prematurely and 2) it does not replace RESTART. Both should be solved by passing the title string to restart_process as a new 'title' arg (title=' RESTART ').
The halfbar expression should use len(title). I believe 16 is 9 (len(' RESTART ')) + 4 (len('>>> ')) + 3 (console.width (80) - 77). So
halfbar = ((int(console.width) - len(title) - 7) // 2) * '='
I think the bar would be better without a prompt before it. If console.showprompt() is deleted, 7 becomes 3.
I will code this later.
|
msg216497 - (view) |
Author: Adnan Umer (Adnan.Umer) * |
Date: 2014-04-16 16:50 |
I tried to replace RESTART by doing these little changing
# PyShell.Py
class ModifiedInterpreter(InteractiveInterpreter):
def restart_subprocess(self, with_cwd=False, with_msg=True):
...
if with_msg:
halfbar = ((int(console.width) - 16) // 2) * '='
console.write(halfbar + ' RESTART ' + halfbar)
def runcode(self, code):
with_msg = True
if code.co_filename[0] != '<':
self.tkconsole.write('Executing ' + code.co_filename + '\n')
with_msg = False
if self.tkconsole.executing:
self.interp.restart_subprocess(with_msg)
# ScriptBinding.Py
class ScriptBinding:
def _run_module_event(self, event):
filename = self.getfilename()
if not filename:
return 'break'
code = self.checksyntax(filename)
if not code:
return 'break'
if not self.tabnanny(filename):
return 'break'
interp = self.shell.interp
if PyShell.use_subprocess:
interp.restart_subprocess(with_cwd=False, with_msg=False)
This works fine and replaces RESTART with Execute <filename> when file is executed in Python Shell.
Also instead of this
halfbar = ((int(console.width) - 16) // 2) * '='
console.write(halfbar + ' RESTART ' + halfbar)
my recomemdation is:
console.write('[SHELL RESTART]')
|
msg216525 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2014-04-16 17:57 |
I took another look and tried the patch and discovered that my comments are partly wrong because restart_shell is called before runcode when runcode is use to run a file. (I am not sure how it is called otherwise with self.tkconsole.executing == True.) This happens in ScriptBinding.ScriptBinding._run_module_event and that is where filename could be added to the restart_shell call.
The rest of my comment was about not printing fake prompts that the user can never respond to. In particular, Run F5 is like python -i, and for that the console interpreter does not print a prompt until it is done running the script and ready for user input.
C:\Programs\Python34>python -i tem.py
start
stop
>>>
|
msg247795 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2015-08-01 02:36 |
New changeset 20a8e5dccf66 by Terry Jan Reedy in branch '2.7':
Issue #21192: Idle Editor. When a file is run, put its name in the restart bar.
https://hg.python.org/cpython/rev/20a8e5dccf66
New changeset 2ae12789dcb8 by Terry Jan Reedy in branch '3.4':
Issue #21192: Idle Editor. When a file is run, put its name in the restart bar.
https://hg.python.org/cpython/rev/2ae12789dcb8
|
msg247796 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-08-01 02:39 |
This is how restarts look now. Thanks for the initial idea and patch.
>>>
====================== RUN C:\Programs\Python34\tem.py =================
xxxx
>>>
=============================== RESTART Shell =========================
>>>
|
msg247825 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2015-08-01 20:32 |
New changeset edf9bfe36ad0 by Terry Jan Reedy in branch '2.7':
Issue #21192: acks for 2.7
https://hg.python.org/cpython/rev/edf9bfe36ad0
|
msg248864 - (view) |
Author: Raymond Hettinger (rhettinger) *  |
Date: 2015-08-19 23:20 |
I've found this to be a serious usability regression and think it should be reverted right-away. It makes IDLE unsuitable for evening showing turtle demos to kids. For adults in my classes, it was also confusing because unlike the old restart-bar it fails to make a clean distinction between sessions and making it clear that old variable definitions have be forgotten. The issue is even more acute because cmd-p can cycle through statements in previous sessions.
|
msg248876 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-08-20 05:59 |
How about 'RESTART: Shell' and 'RESTART: <name of file>' to make it clear that old definitions are forgotten in both cases while new definitions are added in the second case.
I do not understand the comment about turtledemo as it runs separately from Idle.
|
msg249263 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-08-27 21:31 |
Now that Larry Hastings has posted directions for handling changes pulled into 3.5.0, I will soon commit the attached, or something close, and add a pull request.
|
msg249590 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2015-09-03 02:09 |
New changeset 69ea73015132 by Terry Jan Reedy in branch '2.7':
Issue #21192: Change 'RUN' back to 'RESTART' when running editor file.
https://hg.python.org/cpython/rev/69ea73015132
New changeset 130a3edcac1d by Terry Jan Reedy in branch '3.4':
Issue #21192: Change 'RUN' back to 'RESTART' when running editor file.
https://hg.python.org/cpython/rev/130a3edcac1d
|
msg249592 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-03 02:21 |
Larry, please pull @restart.diff into 3.5.0. I have already applied it to 2.7, 3.4, 3.5.1, and 3.6, so I will null merge from 3.5.0 into 3.5.1 and 3.6.
Reason. Aside from Raymond's request above, I was reminded about a week ago that a) when Idle runs in one process, running a file from the editor does *not* cause a restart, and b) we might want to add the option to not restart even when running with two processes. So I agree with Raymond that Idle should say RESTART (or the equivalent) when restarting the execution process and not say it when not, and that 3.5.0 should be consistent with other releases, and not make a change that is reverted in 3.5.1.
|
msg249619 - (view) |
Author: Larry Hastings (larry) *  |
Date: 2015-09-03 08:31 |
Terry, if you want this pulled in to Python 3.5.0, you'll need to create a pull request on Bitbucket. Instructions are here:
https://mail.python.org/pipermail/python-dev/2015-August/141167.html
and here:
https://mail.python.org/pipermail/python-dev/2015-August/141365.html
|
msg249686 - (view) |
Author: Larry Hastings (larry) *  |
Date: 2015-09-03 20:25 |
On the other hand, I do not hold with marking a minor cosmetic change like this as "release blocker". I'm willing to accept the change, given PEP 434, but I'm not going to delay any releases for it.
|
msg249692 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-03 21:50 |
Sorry, my memory was that I was supposed to that as a signal, but maybe that was with a different RM.
|
msg249704 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-04 01:35 |
https://bitbucket.org/larry/cpython350/pull-requests/12/issue-21192-change-run-back-to-restart/diff
|
msg249705 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-04 01:54 |
On 9/3/2015 4:31 AM, Larry Hastings wrote:
> Terry, if you want this pulled in to Python 3.5.0, you'll need to create a pull request on Bitbucket. Instructions are here:
>
> https://mail.python.org/pipermail/python-dev/2015-August/141167.html
I don't remember seeing this, but done now.
> and here:
>
> https://mail.python.org/pipermail/python-dev/2015-August/141365.html
I did get this. This step
4: Pull from the 3.5.0 repo into your "cpython351-merge" directory.
% hg pull ssh://hg@bitbucket.org/larry/cpython350
gives me a
Putty Fatal Error: Disconnected: No supported authentication methods
available (server sent publickey).
I presume it would require a key on deposit, as with python.org. It
seems however that
hg pull https://terryjreedy@bitbucket.org/larry/cpython350
might work in that it searched for changes and found none (as expected).
There is something odd about the size of your clone. My cpython clone
is 928 MB on disk with 30300 files, while the clone of my fork of your
repository is 1.59 GB for 14500 files.
|
msg249714 - (view) |
Author: Larry Hastings (larry) *  |
Date: 2015-09-04 05:07 |
Pull request accepted, please forward-merge. Thanks!
> There is something odd about the size of your clone. My cpython
> clone is 928 MB on disk with 30300 files, while the clone of my fork
> of your repository is 1.59 GB for 14500 files.
I have no idea why. All I can tell you is, I made my cpython350 directory by forking the official Bitbucket mirror of the cpython tree ( https://bitbucket.org/mirror/cpython ) and updating it.
If you're on a UNIX-y filesystem (something with hardlinks), the "relink" extension for Mercurial can help cut down on the disk space consumed.
|
msg249733 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-04 07:39 |
This was pull #12. Am I correct in thinking that all the merges Serhiy did after for pull #13 included the null merge for this?
|
msg249734 - (view) |
Author: Larry Hastings (larry) *  |
Date: 2015-09-04 07:49 |
The pull requests are numbered by creation order, not by merge order.
Normally I'd expect that yes, Serhiy's merge would include yours. But it didn't work out that way. If you look at the changeset graph:
https://bitbucket.org/larry/cpython350/commits/all
Serhiy merged his revision (2b6ce7e), not my merge commit afterwards (07e04c3) which includes your change. So your change still needs to be forward-merged.
Please pull and merge the current head (07e04c3), thanks!
|
msg249736 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-04 08:05 |
Since your merge contains the changes that Serhiy already merged, I expect that there will be some conflicts. If so, the only thing I would know to do is revert and make mine and his null merges. If that is correct, will do. Making merge clone now.
|
msg249737 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2015-09-04 08:19 |
New changeset 09cd7d57b080 by Terry Jan Reedy in branch '3.5':
Issue #21192: Change 'RUN' back to 'RESTART' when running editor file.
https://hg.python.org/cpython/rev/09cd7d57b080
|
msg249739 - (view) |
Author: Larry Hastings (larry) *  |
Date: 2015-09-04 08:21 |
There won't be conflicts with Serhiy's merge--just the opposite. His pull request was merged first, so it's perfect that he did his forward merge first. He's already resolved any conflicts with his merge, and so when you merge you'll only have to worry about your own changes.
Just merge the current head (07e04c3), it'll be fine, honest!
|
msg249740 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2015-09-04 08:22 |
I was wrong, no conflicts.
|
|
Date |
User |
Action |
Args |
2022-04-11 14:58:01 | admin | set | github: 65391 |
2015-09-04 08:22:53 | terry.reedy | set | status: open -> closed resolution: fixed messages:
+ msg249740
|
2015-09-04 08:21:52 | larry | set | messages:
+ msg249739 |
2015-09-04 08:19:12 | python-dev | set | messages:
+ msg249737 |
2015-09-04 08:05:53 | terry.reedy | set | messages:
+ msg249736 |
2015-09-04 07:49:17 | larry | set | messages:
+ msg249734 |
2015-09-04 07:39:16 | terry.reedy | set | messages:
+ msg249733 |
2015-09-04 05:07:38 | larry | set | messages:
+ msg249714 |
2015-09-04 01:54:05 | terry.reedy | set | messages:
+ msg249705 |
2015-09-04 01:35:01 | terry.reedy | set | messages:
+ msg249704 |
2015-09-03 21:50:01 | terry.reedy | set | messages:
+ msg249692 |
2015-09-03 20:25:46 | larry | set | priority: release blocker -> normal
messages:
+ msg249686 |
2015-09-03 08:31:06 | larry | set | messages:
+ msg249619 |
2015-09-03 02:21:30 | terry.reedy | set | priority: normal -> release blocker nosy:
+ larry, benjamin.peterson messages:
+ msg249592
|
2015-09-03 02:09:26 | python-dev | set | messages:
+ msg249590 |
2015-08-27 21:31:35 | terry.reedy | set | files:
+ @restart.diff keywords:
+ patch messages:
+ msg249263
|
2015-08-20 05:59:21 | terry.reedy | set | messages:
+ msg248876 |
2015-08-19 23:20:06 | rhettinger | set | status: closed -> open
nosy:
+ rhettinger messages:
+ msg248864
resolution: fixed -> (no value) |
2015-08-01 20:32:57 | python-dev | set | messages:
+ msg247825 |
2015-08-01 02:39:14 | terry.reedy | set | status: open -> closed versions:
+ Python 2.7, Python 3.5, Python 3.6 messages:
+ msg247796
resolution: fixed stage: needs patch -> resolved |
2015-08-01 02:36:14 | python-dev | set | nosy:
+ python-dev messages:
+ msg247795
|
2014-04-16 17:57:43 | terry.reedy | set | messages:
+ msg216525 |
2014-04-16 16:50:05 | Adnan.Umer | set | messages:
+ msg216497 |
2014-04-15 05:29:59 | terry.reedy | set | assignee: terry.reedy messages:
+ msg216277 |
2014-04-10 15:13:48 | Adnan.Umer | set | files:
+ PyShell.py versions:
+ Python 3.4 nosy:
+ Adnan.Umer
messages:
+ msg215888
|
2014-04-10 04:56:34 | Adnan.Umer | set | components:
+ IDLE |
2014-04-09 21:24:46 | terry.reedy | create | |