# eventlet

Deprecated since version 2.0.3.

Warning

eventlet support is deprecated and will be removed in Pykka 3.0.

## Installation

To run Pykka on top of eventlet, you first need to install the eventlet package from PyPI:

    pip install eventlet

## Code changes

Next, all actors must subclass `pykka.eventlet.EventletActor` instead of `pykka.ThreadingActor`.

If you create any futures yourself, you must replace `pykka.ThreadingFuture` with `pykka.eventlet.EventletFuture`.

With those changes in place, Pykka should run on top of eventlet.

## API

class pykka.eventlet.EventletActor(*args, **kwargs)

  `EventletActor` implements `pykka.Actor` using the eventlet library.

  This implementation uses eventlet green threads.

class pykka.eventlet.EventletEvent

  `EventletEvent` adapts `eventlet.event.Event` to `threading.Event` interface.

class pykka.eventlet.EventletFuture

  `EventletFuture` implements `pykka.Future` for use with `EventletActor`.

  get(timeout=None)

    Get the value encapsulated by the future.

    If the encapsulated value is an exception, it is raised instead of returned.

    If `timeout` is `None`, as default, the method will block until it gets a reply, potentially forever. If `timeout` is an integer or float, the method will wait for a reply for `timeout` seconds, and then raise `pykka.Timeout`.

    The encapsulated value can be retrieved multiple times. The future will only block the first time the value is accessed.

    Parameters

      timeout (float or `None`) – seconds to wait before timeout

    Raise

      `pykka.Timeout` if timeout is reached

    Raise

      encapsulated value if it is an exception

    Returns

      encapsulated value if it is not an exception

  set(value=None)

    Set the encapsulated value.

    Parameters

      value (any object or `None`) – the encapsulated value or nothing

    Raise

      an exception if set is called multiple times

  set_exception(exc_info=None)

    Set an exception as the encapsulated value.

    You can pass an `exc_info` three-tuple, as returned by `sys.exc_info()`. If you don’t pass `exc_info`, `sys.exc_info()` will be called and the value returned by it used.

    In other words, if you’re calling `set_exception()`, without any arguments, from an except block, the exception you’re currently handling will automatically be set on the future.

    Parameters

      exc_info (three-tuple of (exc_class, exc_instance, traceback)) – the encapsulated exception