New submission from Atsuo Ishimoto <ishim...@python.jp>:

I sometime use a hack to start interactive console after running script.

.. code-block:: python

   import os

   os.environ['PYTHONINSPECT'] = 'x'
   print("Hello")

This hack works because ``PYTHONINSPECT`` is checked `here 
<https://github.com/python/cpython/blob/master/Modules/main.c#L738>`__ when 
exiting Python.

However, if the script uses ``sys.exit()`` to exit from Python, interactive 
console doen't apper because unhandled ``SystemExit`` exception leads 
``exit()`` call to kill process, without checking ``PYTHONINSPECT``.

.. code-block:: python

   import os, sys

   os.environ['PYTHONINSPECT'] = 'x'
   print("Hello")

   sys.exit(1)  # Interactive console will not start


I think feature to allow updating ``Py_InspectFlag`` is useful, and this is a 
bugs to be fixed. However, setting environment variable to start console is not 
intuituve.

So instead of fixing bug, I would like to propose a small function to set 
``Py_InspectFlag`` to start interactive console after running script.

.. code-block:: python

    sys.setinteractiveflag(bool)

Thoughts?

----------
components: Interpreter Core
messages: 336993
nosy: ishimoto
priority: normal
severity: normal
status: open
title: Updating Py_InspectFlag programmatically
type: behavior

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue36164>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to