Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d24d925

Browse filesBrowse files
[3.13] gh-133264: Correct documentation of how Py_Main and Py_RunMain handle SystemExit (GH-135337) (#135395)
gh-133264: Correct documentation of how Py_Main and Py_RunMain handle SystemExit (GH-135337) (cherry picked from commit b706ff0) Co-authored-by: Malcolm Smith <smith@chaquo.com>
1 parent 6ae5158 commit d24d925
Copy full SHA for d24d925

File tree

Expand file treeCollapse file tree

1 file changed

+8
-22
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+8
-22
lines changed

‎Doc/c-api/init.rst

Copy file name to clipboardExpand all lines: Doc/c-api/init.rst
+8-22Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -488,17 +488,8 @@ Initializing and finalizing the interpreter
488488
strings other than those passed in (however, the contents of the strings
489489
pointed to by the argument list are not modified).
490490
491-
The return value will be ``0`` if the interpreter exits normally (i.e.,
492-
without an exception), ``1`` if the interpreter exits due to an exception,
493-
or ``2`` if the argument list does not represent a valid Python command
494-
line.
495-
496-
Note that if an otherwise unhandled :exc:`SystemExit` is raised, this
497-
function will not return ``1``, but exit the process, as long as
498-
``Py_InspectFlag`` is not set. If ``Py_InspectFlag`` is set, execution will
499-
drop into the interactive Python prompt, at which point a second otherwise
500-
unhandled :exc:`SystemExit` will still exit the process, while any other
501-
means of exiting will set the return value as described above.
491+
The return value is ``2`` if the argument list does not represent a valid
492+
Python command line, and otherwise the same as :c:func:`Py_RunMain`.
502493
503494
In terms of the CPython runtime configuration APIs documented in the
504495
:ref:`runtime configuration <init-config>` section (and without accounting
@@ -535,23 +526,18 @@ Initializing and finalizing the interpreter
535526
536527
If :c:member:`PyConfig.inspect` is not set (the default), the return value
537528
will be ``0`` if the interpreter exits normally (that is, without raising
538-
an exception), or ``1`` if the interpreter exits due to an exception. If an
539-
otherwise unhandled :exc:`SystemExit` is raised, the function will immediately
540-
exit the process instead of returning ``1``.
529+
an exception), the exit status of an unhandled :exc:`SystemExit`, or ``1``
530+
for any other unhandled exception.
541531
542532
If :c:member:`PyConfig.inspect` is set (such as when the :option:`-i` option
543533
is used), rather than returning when the interpreter exits, execution will
544534
instead resume in an interactive Python prompt (REPL) using the ``__main__``
545535
module's global namespace. If the interpreter exited with an exception, it
546536
is immediately raised in the REPL session. The function return value is
547-
then determined by the way the *REPL session* terminates: returning ``0``
548-
if the session terminates without raising an unhandled exception, exiting
549-
immediately for an unhandled :exc:`SystemExit`, and returning ``1`` for
550-
any other unhandled exception.
551-
552-
This function always finalizes the Python interpreter regardless of whether
553-
it returns a value or immediately exits the process due to an unhandled
554-
:exc:`SystemExit` exception.
537+
then determined by the way the *REPL session* terminates: ``0``, ``1``, or
538+
the status of a :exc:`SystemExit`, as specified above.
539+
540+
This function always finalizes the Python interpreter before it returns.
555541
556542
See :ref:`Python Configuration <init-python-config>` for an example of a
557543
customized Python that always runs in isolated mode using

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.