Skip to content

Context

Adapter

Bases: typing.Protocol[T]

is_closed(client)

Returns whether the client state is closed or released.

new()

Creates a new client.

release(client)

Closes or releases the client.

AsyncAdapter

Bases: typing.Protocol[T]

Represents an Adapter to a Specific Service.

is_closed(client) async

Returns whether the client state is closed or released.

new() async

Creates a new client.

release(client) async

Closes or releases the client.

AtomicAdapter

Bases: Adapter[T], typing.Protocol[T]

Represents an Adapter to a Specific Service that can perform atomic operations.

begin(client)

Starts an atomic operation.

commit(client)

Commits an atomic operation.

in_atomic(client)

Returns whether the client is currently in an atomic operation.

rollback(client)

Rolls back an atomic operation.

AtomicAsyncAdapter

Bases: AsyncAdapter[T], typing.Protocol[T]

Represents an Adapter to a Specific Service that can perform atomic operations.

begin(client) async

Starts an atomic operation.

commit(client) async

Commits an atomic operation.

in_atomic(client) async

Returns whether the client is currently in an atomic operation.

rollback(client) async

Rolls back an atomic operation.

Context

Bases: typing.Generic[T]

adapter: interfaces.Adapter[T] property

Returns the adapter that is being used by this context.

stack: int property

Returns how many frames are using this context.

__enter__()

Acquires a new resource from the adapter and increases the stack count.

__exit__(*_)

Releases the current resource if the stack count is 1, and decreases the stack count.

__init__(adapter)

Initialize a new Context.

Parameters:

Name Type Description Default
adapter interfaces.Adapter[T]

An adapter that will be used to acquire and release resources.

required

acquire()

Acquires a new resource from the adapter and increases the stack count.

begin()

A context manager that acquires and releases resources and returns it.

client()

Returns the current resource being used by the context. Acquires a new resource if the current one is closed or doesn't exist.

is_active()

Returns whether the context is currently in use.

open()

A context manager that acquires and releases resources without returning it.

release()

Releases the current resource if the stack count is 1, and decreases the stack count.

AsyncContext

Bases: typing.Generic[T]

adapter: interfaces.AsyncAdapter[T] property

Returns the adapter that is being used by this context.

stack: int property

Returns how many frames are using this context.

__aenter__() async

Acquires a new resource from the adapter and increases the stack count.

__aexit__(*_) async

Releases the current resource if the stack count is 1, and decreases the stack count.

__init__(adapter)

Initialize a new AsyncContext.

Parameters:

Name Type Description Default
adapter interfaces.AsyncAdapter[T]

An async adapter that will be used to acquire and release resources.

required

acquire() async

Acquires a new resource from the adapter and increases the stack count.

begin() async

An async context manager that acquires and releases resources and returns it.

client() async

Returns the current resource being used by the context. Acquires a new resource if the current one is closed or doesn't exist.

is_active()

Returns whether the context is currently in use.

open() async

An async context manager that acquires and releases resources without returning it.

release() async

Releases the current resource if the stack count is 1, and decreases the stack count.

atomic(context, bound=True)

Create an atomic context or a bound context based on the given context.

Parameters:

Name Type Description Default
context Union[Context[T], AsyncContext[T]]

The base context to be wrapped.

required
bound bool

Whether to create a bound context. Defaults to True.

True

Returns:

Type Description
Union[Context[T], AsyncContext[T]]

Union[Context[T], AsyncContext[T]]: The created atomic or bound context.

Raises:

Type Description
ValueError

If the provider received is not compliant with the atomic adapter interface.