mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
[3.12] gh-121957: Emit audit events for python -i and python -m asyncio (GH-122117)
This commit is contained in:
parent
6e9b3f79fe
commit
c1e834dd78
5 changed files with 22 additions and 1 deletions
|
@ -56,8 +56,12 @@ Additionally, there are **low-level** APIs for
|
|||
* :ref:`bridge <asyncio-futures>` callback-based libraries and code
|
||||
with async/await syntax.
|
||||
|
||||
.. include:: ../includes/wasm-notavail.rst
|
||||
|
||||
.. _asyncio-cli:
|
||||
|
||||
.. rubric:: asyncio REPL
|
||||
|
||||
You can experiment with an ``asyncio`` concurrent context in the REPL:
|
||||
|
||||
.. code-block:: pycon
|
||||
|
@ -70,7 +74,10 @@ You can experiment with an ``asyncio`` concurrent context in the REPL:
|
|||
>>> await asyncio.sleep(10, result='hello')
|
||||
'hello'
|
||||
|
||||
.. include:: ../includes/wasm-notavail.rst
|
||||
.. audit-event:: cpython.run_stdin "" ""
|
||||
|
||||
.. versionchanged:: 3.12.5 (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20)
|
||||
Emits audit events.
|
||||
|
||||
.. We use the "rubric" directive here to avoid creating
|
||||
the "Reference" subsection in the TOC.
|
||||
|
|
|
@ -720,6 +720,11 @@ conflict.
|
|||
This variable can also be modified by Python code using :data:`os.environ`
|
||||
to force inspect mode on program termination.
|
||||
|
||||
.. audit-event:: cpython.run_stdin "" ""
|
||||
|
||||
.. versionchanged:: 3.12.5 (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20)
|
||||
Emits audit events.
|
||||
|
||||
|
||||
.. envvar:: PYTHONUNBUFFERED
|
||||
|
||||
|
|
|
@ -89,6 +89,8 @@ class REPLThread(threading.Thread):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.audit("cpython.run_stdin")
|
||||
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Fixed missing audit events around interactive use of Python, now also
|
||||
properly firing for ``python -i``, as well as for ``python -m asyncio``. The
|
||||
event in question is ``cpython.run_stdin``.
|
|
@ -540,6 +540,10 @@ pymain_repl(PyConfig *config, int *exitcode)
|
|||
return;
|
||||
}
|
||||
|
||||
if (PySys_Audit("cpython.run_stdin", NULL) < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
PyCompilerFlags cf = _PyCompilerFlags_INIT;
|
||||
int res = PyRun_AnyFileFlags(stdin, "<stdin>", &cf);
|
||||
*exitcode = (res != 0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue