txaio

Submodules

Classes

IFailedFuture

This defines the interface for a common object encapsulating a

ILogger

This defines the methods you can call on the object returned from

Functions

Package Contents

class IFailedFuture[source]

Bases: abc.ABC

This defines the interface for a common object encapsulating a failure from either an asyncio task/coroutine or a Twisted Deferred.

An instance implementing this interface is given to any errback callables you provide via txaio.add_callbacks()

In your errback you can extract information from an IFailedFuture with txaio.failure_message() and txaio.failure_traceback() or use .value to get the Exception instance.

Depending on other details or methods will probably cause incompatibilities between asyncio and Twisted.

abstractmethod value()[source]

An actual Exception instance. Same as the second item returned from sys.exc_info()

class ILogger[source]

Bases: abc.ABC

This defines the methods you can call on the object returned from txaio.make_logger() – although the actual object may have additional methods, you should only call the methods listed here.

All the log methods have the same signature, they just differ in what “log level” they represent to the handlers/emitters. The message argument is a format string using PEP3101-style references to things from the kwargs. Note that there are also the following keys added to the kwargs: log_time and log_level.

For example:

class MyThing(object):
    log = txaio.make_logger()

    def something_interesting(self, things=dict(one=1, two=2)):
        try:
            self.log.debug("Called with {things[one]}", things=things)
            result = self._method_call()
            self.log.info("Got '{result}'.", result=result)
        except Exception:
            fail = txaio.create_failure()
            self.log.critical(txaio.failure_format_traceback(fail))

The philsophy behind txaio’s interface is fairly similar to Twisted’s logging APIs after version 15. See Twisted’s documentation for details.

critical(message, **kwargs)[source]

log a critical-level message

debug(message, **kwargs)[source]

log an debug-level message

error(message, **kwargs)[source]

log a error-level message

info(message, **kwargs)[source]

log an info-level message

trace(message, **kwargs)[source]

log a trace-level message

warn(message, **kwargs)[source]

log a error-level message

use_asyncio()[source]
use_twisted()[source]