Skip to content

Connection

Bases: AbstractAsyncContextManager[Transaction]

Async database connection that assembles t-string queries and parses results.

Use as an async context manager to start a fassung.connection.Transaction:

async with connection as txn:
    await txn.execute(t"...")

add_listener(channel, payload_type, callback) async

Subscribe to PostgreSQL LISTEN/NOTIFY notifications on channel.

The raw notification payload is parsed into payload_type before being passed to callback.

Parameters:

Name Type Description Default
channel str

The notification channel name.

required
payload_type type[T]

The type to parse the payload into.

required
callback Listener[T]

The listener to invoke on each notification.

required

cursor(type_, query, *, prefetch=None, timeout=None)

Create a cursor factory for iterating over query results.

Parameters:

Name Type Description Default
type_ type[T]

The row type to parse each result into.

required
query Template

A t-string template containing the SQL query.

required
prefetch int | None

Number of rows to prefetch.

None
timeout float | None

Optional query timeout in seconds.

None

execute(query, *, timeout=None) async

Execute a SQL command and return its status string.

Parameters:

Name Type Description Default
query Template

A t-string template containing the SQL to execute.

required
timeout float | None

Optional query timeout in seconds.

None

fetch(type_, query, *, timeout=None) async

Execute a query and return all resulting rows as a typed list.

Parameters:

Name Type Description Default
type_ type[T]

The row type to parse each result into.

required
query Template

A t-string template containing the SQL query.

required
timeout float | None

Optional query timeout in seconds.

None

fetchrow(type_, query, *, timeout=None) async

Execute a query and return the first row, or None if empty.

Parameters:

Name Type Description Default
type_ type[T]

The row type to parse the result into.

required
query Template

A t-string template containing the SQL query.

required
timeout float | None

Optional query timeout in seconds.

None

fetchval(type_, query, column=0, *, timeout=None) async

Execute a query and return a single scalar value.

Parameters:

Name Type Description Default
type_ type[T]

The expected type of the returned value.

required
query Template

A t-string template containing the SQL query.

required
column int

Zero-based column index to extract.

0
timeout float | None

Optional query timeout in seconds.

None

remove_listener(channel, callback) async

Unsubscribe a previously registered listener from channel.

Parameters:

Name Type Description Default
channel str

The notification channel name.

required
callback Listener[T]

The listener to remove.

required