View #467
Pull request Compare This branch is 1601 commits ahead, 2 commits behind redirect.
Permalink
Failed to load latest commit information.
asyncio Fix asyncio to support instantiation of new event loops in subprocesses Feb 22, 2017
examples Suppress most voluminous output from report() in quiet mode. Jul 25, 2016
tests Fix asyncio to support instantiation of new event loops in subprocesses Feb 22, 2017
.gitattributes Switch hgignore and hgeol to git equivalents Apr 11, 2015
.gitignore add in .gitignore pyvenv and Pycharm files Apr 11, 2015
.travis.yml CI: Turn off testing of Python 3.3 and 3.4. Oct 21, 2016
AUTHORS create_server() accepts a list for host Sep 21, 2015
COPYING Python issue #23208: Add BaseEventLoop._current_handle Jan 26, 2015
ChangeLog Issue #234: Drop JoinableQueue on Python 3.5+ Jul 10, 2015
MANIFEST.in Python issue #23208: Add BaseEventLoop._current_handle Jan 26, 2015
Makefile Modify 'make test' to run tests in debug mode too Nov 21, 2015
README.rst Add AppVeyor integration May 28, 2016
appveyor.yml CI: Turn off testing of Python 3.3 and 3.4. Oct 21, 2016
check.py Python issue #23208: Add BaseEventLoop._current_handle Jan 26, 2015
overlapped.c Revert "Sync overlapped.c with CPython" -- let's keep asyncio compati… Sep 15, 2016
pypi.bat Python issue #23208: Add BaseEventLoop._current_handle Jan 26, 2015
release.py Remove unused imports. (#435) Sep 29, 2016
run_aiotest.py Python issue #23208: Add BaseEventLoop._current_handle Jan 26, 2015
runtests.py runtests.py: Print out all warnings Dec 17, 2015
setup.py Added version check to prevent installation on Python < 3.3.0 (#387) Jul 24, 2016
tox.ini tox.ini: enable ResourceWarning warnings Jan 29, 2015
update_asyncio.sh update_asyncio.sh: Make target python dir configurable Sep 15, 2016
update_stdlib.sh Ignore test_pep492.py when copying to 3.4 branch. Sep 29, 2015

README.rst

https://travis-ci.org/python/asyncio.svg?branch=master https://ci.appveyor.com/api/projects/status/u72781t69ljdpm2y?svg=true

The asyncio module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives. Here is a more detailed list of the package contents:

  • a pluggable event loop with various system-specific implementations;
  • transport and protocol abstractions (similar to those in Twisted);
  • concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and others (some may be system-dependent);
  • a Future class that mimics the one in the concurrent.futures module, but adapted for use with the event loop;
  • coroutines and tasks based on yield from (PEP 380), to help write concurrent code in a sequential fashion;
  • cancellation support for Futures and coroutines;
  • synchronization primitives for use between coroutines in a single thread, mimicking those in the threading module;
  • an interface for passing work off to a threadpool, for times when you absolutely, positively have to use a library that makes blocking I/O calls.

Note: The implementation of asyncio was previously called "Tulip".

Installation

To install asyncio, type:

pip install asyncio

asyncio requires Python 3.3 or later! The asyncio module is part of the Python standard library since Python 3.4.

asyncio is a free software distributed under the Apache license version 2.0.

Websites

Development

The actual code lives in the 'asyncio' subdirectory. Tests are in the 'tests' subdirectory.

To run tests, run:

tox

Or use the Makefile:

make test

To run coverage (coverage package is required):

make coverage

On Windows, things are a little more complicated. Assume P is your Python binary (for example C:\Python33\python.exe).

You must first build the _overlapped.pyd extension and have it placed in the asyncio directory, as follows:

C:\> P setup.py build_ext --inplace

If this complains about vcvars.bat, you probably don't have the required version of Visual Studio installed. Compiling extensions for Python 3.3 requires Microsoft Visual C++ 2010 (MSVC 10.0) of any edition; you can download Visual Studio Express 2010 for free from http://www.visualstudio.com/downloads (scroll down to Visual C++ 2010 Express).

Once you have built the _overlapped.pyd extension successfully you can run the tests as follows:

C:\> P runtests.py

And coverage as follows:

C:\> P runtests.py --coverage