<commit_before>aiogreen
========

.. image:: poplar_hawk-moth.jpg
   :alt: Poplar Hawk-moth (Laothoe populi), photo taken in France
   :align: right
   :target: https://www.flickr.com/photos/haypo/7181768969/in/set-72157629731066236

aiogreen implements the asyncio API (`PEP 3156
<http://www.python.org/dev/peps/pep-3156/>`_) on top of eventlet. It makes
possible to write asyncio code in a project currently written for eventlet.

aiogreen allows to use greenthreads in asyncio coroutines, and to use asyncio
coroutines, tasks and futures in greenthreads: see :func:`link_future` and
:func:`wrap_greenthread` functions.

The main visible difference between aiogreen and trollius is the behaviour of
``run_forever()``: ``run_forever()`` blocks with trollius, whereas it runs in a
greenthread with aiogreen. It means that aiogreen event loop can run in an
greenthread while the Python main thread runs other greenthreads in parallel.

* `aiogreen documentation <http://aiogreen.readthedocs.org/>`_
* `aiogreen project in the Python Cheeseshop (PyPI)
  <https://pypi.python.org/pypi/aiogreen>`_
* `aiogreen project at Bitbucket <https://bitbucket.org/haypo/aiogreen>`_
* Copyright/license: Open source, Apache 2.0. Enjoy!

Table Of Contents
=================

.. toctree::

   using
   status
   openstack
   changelog

Event loops
===========

* `asyncio documentation <http://docs.python.org/dev/library/asyncio.html>`_
* `trollius documentation <http://trollius.readthedocs.org/>`_
* `tulip project <http://code.google.com/p/tulip/>`_
* `eventlet documentation <http://eventlet.net/doc/>`_
* `eventlet project <http://eventlet.net/>`_
* `greenlet documentation <http://greenlet.readthedocs.org/>`_

See also the `greenio project <https://github.com/1st1/greenio/>`_:
"Greenlets support for asyncio (PEP 3156)".<commit_msg>see also<commit_after>aiogreen
========

.. image:: poplar_hawk-moth.jpg
   :alt: Poplar Hawk-moth (Laothoe populi), photo taken in France
   :align: right
   :target: https://www.flickr.com/photos/haypo/7181768969/in/set-72157629731066236

aiogreen implements the asyncio API (`PEP 3156
<http://www.python.org/dev/peps/pep-3156/>`_) on top of eventlet. It makes
possible to write asyncio code in a project currently written for eventlet.

aiogreen allows to use greenthreads in asyncio coroutines, and to use asyncio
coroutines, tasks and futures in greenthreads: see :func:`link_future` and
:func:`wrap_greenthread` functions.

The main visible difference between aiogreen and trollius is the behaviour of
``run_forever()``: ``run_forever()`` blocks with trollius, whereas it runs in a
greenthread with aiogreen. It means that aiogreen event loop can run in an
greenthread while the Python main thread runs other greenthreads in parallel.

* `aiogreen documentation <http://aiogreen.readthedocs.org/>`_
* `aiogreen project in the Python Cheeseshop (PyPI)
  <https://pypi.python.org/pypi/aiogreen>`_
* `aiogreen project at Bitbucket <https://bitbucket.org/haypo/aiogreen>`_
* Copyright/license: Open source, Apache 2.0. Enjoy!

Table Of Contents
=================

.. toctree::

   using
   status
   openstack
   changelog

Event loops
===========

Projects used by aiogreen:

* `asyncio documentation <http://docs.python.org/dev/library/asyncio.html>`_
* `trollius documentation <http://trollius.readthedocs.org/>`_
* `tulip project <http://code.google.com/p/tulip/>`_
* `eventlet documentation <http://eventlet.net/doc/>`_
* `eventlet project <http://eventlet.net/>`_
* `greenlet documentation <http://greenlet.readthedocs.org/>`_

See also:

* `aiogevent <https://pypi.python.org/pypi/aiogevent>`_: asyncio API
  implemented on top of gevent
* `geventreactor <https://pypi.python.org/pypi/geventreactor>`_: gevent-powered
  Twisted reactor
* `greenio <https://github.com/1st1/greenio/>`_: Greenlets support
  for asyncio (PEP 3156)
* `tulipcore <https://github.com/decentfox/tulipcore>`_: run gevent code on
  top of asyncio
{'fraction_non_alphanumeric': 0.13432835820895522, 'fraction_numerical': 0.021755628636478622, 'mean_word_length': 4.797653958944282, 'pattern_counts': {'":': 0, '<': 28, '<?xml version=': 0, '>': 28, 'https://': 11, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6221347', 'n_tokens_mistral': 1425, 'n_tokens_neox': 1318, 'n_words': 371}