summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-05-20 00:16:53 -0700
committerGitHub <noreply@github.com>2019-05-20 00:16:53 -0700
commit2d94d4f1a5f54f73450d2982eab54a6301741a32 (patch)
tree21e907d4b7900c4c958090cc7ed479188d94867e
parent64b0bdba7ee30ecc5c4c5ad46fb6afd6c0ddd487 (diff)
downloadcpython-git-2d94d4f1a5f54f73450d2982eab54a6301741a32.tar.gz
bpo-36958: In IDLE, print exit message (GH-13435)
Print any argument other than None or int passed to SystemExit or sys.exit(). (cherry picked from commit 6d965b39b7a486dd9e96a60b19ee92382d668299) Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
-rw-r--r--Doc/library/idle.rst3
-rw-r--r--Lib/idlelib/NEWS.txt6
-rw-r--r--Lib/idlelib/help.html4
-rw-r--r--Lib/idlelib/run.py11
-rw-r--r--Misc/NEWS.d/next/IDLE/2019-05-19-22-02-22.bpo-36958.DZUC6G.rst2
5 files changed, 20 insertions, 6 deletions
diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst
index f511d64b55..c51cf19e97 100644
--- a/Doc/library/idle.rst
+++ b/Doc/library/idle.rst
@@ -700,6 +700,9 @@ If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``,
IDLE's changes are lost and input from the keyboard and output to the screen
will not work correctly.
+When user code raises SystemExit either directly or by calling sys.exit, IDLE
+returns to a Shell prompt instead of exiting.
+
User output in Shell
^^^^^^^^^^^^^^^^^^^^
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 3f0480e0ac..512ee8b32f 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,12 @@ Released on 2019-06-24?
======================================
+bpo-36958: Print any argument other than None or int passed to
+SystemExit or sys.exit().
+
+bpo-36807: When saving a file, call file.flush() and os.fsync()
+so bits are flushed to e.g. a USB drive.
+
bpo-36429: Fix starting IDLE with pyshell.
Add idlelib.pyshell alias at top; remove pyshell alias at bottom.
Remove obsolete __name__=='__main__' command.
diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html
index 56f9ca503d..bc287d637a 100644
--- a/Lib/idlelib/help.html
+++ b/Lib/idlelib/help.html
@@ -659,6 +659,8 @@ will then be attached to that window for input and output.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">sys</span></code> is reset by user code, such as with <code class="docutils literal notranslate"><span class="pre">importlib.reload(sys)</span></code>,
IDLE’s changes are lost and input from the keyboard and output to the screen
will not work correctly.</p>
+<p>When user code raises SystemExit either directly or by calling sys.exit, IDLE
+returns to a Shell prompt instead of exiting.</p>
</div>
<div class="section" id="user-output-in-shell">
<h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this headline">¶</a></h3>
@@ -941,7 +943,7 @@ also used for testing.</p>
<br />
<br />
- Last updated on May 16, 2019.
+ Last updated on May 19, 2019.
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
<br />
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 6fa373f258..b4a2b54a33 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -474,15 +474,16 @@ class Executive(object):
exec(code, self.locals)
finally:
interruptable = False
- except SystemExit:
- # Scripts that raise SystemExit should just
- # return to the interactive prompt
- pass
+ except SystemExit as e:
+ if e.args: # SystemExit called with an argument.
+ ob = e.args[0]
+ if not isinstance(ob, (type(None), int)):
+ print('SystemExit: ' + str(ob), file=sys.stderr)
+ # Return to the interactive prompt.
except:
self.usr_exc_info = sys.exc_info()
if quitting:
exit()
- # even print a user code SystemExit exception, continue
print_exception()
jit = self.rpchandler.console.getvar("<<toggle-jit-stack-viewer>>")
if jit:
diff --git a/Misc/NEWS.d/next/IDLE/2019-05-19-22-02-22.bpo-36958.DZUC6G.rst b/Misc/NEWS.d/next/IDLE/2019-05-19-22-02-22.bpo-36958.DZUC6G.rst
new file mode 100644
index 0000000000..c5a675d678
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2019-05-19-22-02-22.bpo-36958.DZUC6G.rst
@@ -0,0 +1,2 @@
+Print any argument other than None or int passed to SystemExit or
+sys.exit().