diff options
-rw-r--r-- | Doc/library/idle.rst | 3 | ||||
-rw-r--r-- | Lib/idlelib/NEWS.txt | 6 | ||||
-rw-r--r-- | Lib/idlelib/help.html | 4 | ||||
-rw-r--r-- | Lib/idlelib/run.py | 11 | ||||
-rw-r--r-- | Misc/NEWS.d/next/IDLE/2019-05-19-22-02-22.bpo-36958.DZUC6G.rst | 2 |
5 files changed, 20 insertions, 6 deletions
diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index f511d64..c51cf19 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 be855bc..3f19ce7 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -3,6 +3,12 @@ Released on 2019-10-20? ====================================== +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 56f9ca5..bc287d6 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 6fa373f..b4a2b54 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 0000000..c5a675d --- /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(). |