mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
Merge 3.4 (asyncio doc)
This commit is contained in:
commit
0afc3dc183
1 changed files with 24 additions and 15 deletions
|
@ -14,16 +14,22 @@ This page lists common traps and explains how to avoid them.
|
||||||
Debug mode of asyncio
|
Debug mode of asyncio
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
To enable the debug mode globally, set the environment variable
|
The implementation of :mod:`asyncio` module has been written for performances.
|
||||||
:envvar:`PYTHONASYNCIODEBUG` to ``1``. To see debug traces, set the log level
|
To development with asyncio, it's required to enable the debug checks to ease
|
||||||
of the :ref:`asyncio logger <asyncio-logger>` to :py:data:`logging.DEBUG`. The
|
the development of asynchronous code.
|
||||||
simplest configuration is::
|
|
||||||
|
|
||||||
import logging
|
Setup an application to enable all debug checks:
|
||||||
# ...
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
|
||||||
|
|
||||||
Examples of effects of the debug mode:
|
* Enable the asyncio debug mode globally by setting the environment variable
|
||||||
|
:envvar:`PYTHONASYNCIODEBUG` to ``1``
|
||||||
|
* Set the log level of the :ref:`asyncio logger <asyncio-logger>` to
|
||||||
|
:py:data:`logging.DEBUG`. For example, call
|
||||||
|
``logging.basicConfig(level=logging.DEBUG)`` at startup.
|
||||||
|
* Configure the :mod:`warnings` module to display :exc:`ResourceWarning`
|
||||||
|
warnings. For example, use the ``-Wdefault`` command line option of Python to
|
||||||
|
display them.
|
||||||
|
|
||||||
|
Examples debug checks:
|
||||||
|
|
||||||
* Log :ref:`coroutines defined but never "yielded from"
|
* Log :ref:`coroutines defined but never "yielded from"
|
||||||
<asyncio-coroutine-not-scheduled>`
|
<asyncio-coroutine-not-scheduled>`
|
||||||
|
@ -33,6 +39,8 @@ Examples of effects of the debug mode:
|
||||||
* Log callbacks taking more than 100 ms to be executed. The
|
* Log callbacks taking more than 100 ms to be executed. The
|
||||||
:attr:`BaseEventLoop.slow_callback_duration` attribute is the minimum
|
:attr:`BaseEventLoop.slow_callback_duration` attribute is the minimum
|
||||||
duration in seconds of "slow" callbacks.
|
duration in seconds of "slow" callbacks.
|
||||||
|
* :exc:`ResourceWarning` warnings are emitted when transports and event loops
|
||||||
|
are :ref:`not closed explicitly <asyncio-close-transports>`.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
|
@ -372,14 +380,15 @@ traceback where the task was created. Example of log in debug mode::
|
||||||
|
|
||||||
:ref:`Detect coroutine objects never scheduled <asyncio-coroutine-not-scheduled>`.
|
:ref:`Detect coroutine objects never scheduled <asyncio-coroutine-not-scheduled>`.
|
||||||
|
|
||||||
|
.. _asyncio-close-transports:
|
||||||
|
|
||||||
Close transports
|
Close transports and event loops
|
||||||
----------------
|
--------------------------------
|
||||||
|
|
||||||
When a transport is no more needed, call its ``close()`` method to release
|
When a transport is no more needed, call its ``close()`` method to release
|
||||||
resources.
|
resources. Event loops must also be closed explicitly.
|
||||||
|
|
||||||
If a transport (or an event loop) is not closed explicitly, a
|
If a transport or an event loop is not closed explicitly, a
|
||||||
:exc:`ResourceWarning` warning will be emitted in its destructor. The
|
:exc:`ResourceWarning` warning will be emitted in its destructor. By default,
|
||||||
:exc:`ResourceWarning` warnings are hidden by default: use the ``-Wd`` command
|
:exc:`ResourceWarning` warnings are ignored. The :ref:`Debug mode of asyncio
|
||||||
line option of Python to show them.
|
<asyncio-debug-mode>` section explains how to display them.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue