async_db

class mautrix.util.async_db.Database

Bases: ABC

__init__(url, upgrade_table, db_args=None, log=None, owner_name=None, ignore_foreign_tables=True)
Parameters:
Return type:

None

abstractmethod acquire()
Return type:

AsyncContextManager[LoggingConnection, bool | None]

classmethod create(url, *, db_args=None, upgrade_table=None, log=None, owner_name=None, ignore_foreign_tables=True)
Parameters:
Return type:

Database

async execute(query, *args, timeout=None)
Parameters:
  • query (str)

  • args (Any)

  • timeout (float | None)

Return type:

str | Cursor

async executemany(query, *args, timeout=None)
Parameters:
  • query (str)

  • args (Any)

  • timeout (float | None)

Return type:

str | Cursor

async fetch(query, *args, timeout=None)
Parameters:
  • query (str)

  • args (Any)

  • timeout (float | None)

Return type:

list[Record]

async fetchrow(query, *args, timeout=None)
Parameters:
  • query (str)

  • args (Any)

  • timeout (float | None)

Return type:

Record | None

async fetchval(query, *args, column=0, timeout=None)
Parameters:
Return type:

Any

override_pool(db)
Parameters:

db (Database)

Return type:

None

schemes: dict[str, Type[Database]] = {'cockroach': <class 'mautrix.util.async_db.PostgresDatabase'>, 'cockroachdb': <class 'mautrix.util.async_db.PostgresDatabase'>, 'postgres': <class 'mautrix.util.async_db.PostgresDatabase'>, 'postgresql': <class 'mautrix.util.async_db.PostgresDatabase'>, 'sqlite': <class 'mautrix.util.async_db.SQLiteDatabase'>, 'sqlite3': <class 'mautrix.util.async_db.SQLiteDatabase'>}
async start()
Return type:

None

abstractmethod async stop()
Return type:

None

async table_exists(name)
Parameters:

name (str)

Return type:

bool

log: TraceLogger
scheme: Scheme
url: URL
upgrade_table: UpgradeTable | None
owner_name: str | None
ignore_foreign_tables: bool
class mautrix.util.async_db.UpgradeTable

Bases: object

__init__(allow_unsupported=False, version_table_name='version', database_name='database', log=None)
Parameters:
Return type:

None

register(_outer_fn=None, *, index=-1, description='', transaction=True, upgrades_to=None)
Parameters:
Return type:

Callable[[LoggingConnection, Scheme], Awaitable[int | None]] | Callable[[Callable[[LoggingConnection, Scheme], Awaitable[int | None]] | Callable[[LoggingConnection], Awaitable[int | None]]], Callable[[LoggingConnection, Scheme], Awaitable[int | None]]]

async upgrade(db)
Parameters:

db (Database)

Return type:

None

upgrades: list[Upgrade]
allow_unsupported: bool
database_name: str
version_table_name: str
log: TraceLogger
mautrix.util.async_db.register_upgrade(index=-1, description='')
Parameters:
  • index (int)

  • description (str)

Return type:

Callable[[Callable[[LoggingConnection, Scheme], Awaitable[int | None]]], Callable[[LoggingConnection, Scheme], Awaitable[int | None]]]

class mautrix.util.async_db.PostgresDatabase

Bases: Database

__init__(url, upgrade_table, db_args=None, log=None, owner_name=None, ignore_foreign_tables=True)
Parameters:
Return type:

None

acquire()
Return type:

LoggingConnection

override_pool(db)
Parameters:

db (PostgresDatabase)

Return type:

None

property pool: Pool
scheme = 'postgres'
async start()
Return type:

None

async stop()
Return type:

None

class mautrix.util.async_db.SQLiteDatabase

Bases: Database

__init__(url, upgrade_table, db_args=None, log=None, owner_name=None, ignore_foreign_tables=True)
Parameters:
Return type:

None

acquire()
Return type:

AsyncContextManager[LoggingConnection, bool | None]

override_pool(db)
Parameters:

db (Database)

Return type:

None

scheme = 'sqlite'
async start()
Return type:

None

async stop()
Return type:

None

mautrix.util.async_db.SQLiteCursor

alias of Cursor

mautrix.util.async_db.Connection

alias of LoggingConnection

class mautrix.util.async_db.Scheme

Bases: Enum

POSTGRES = 'postgres'
COCKROACH = 'cockroach'
SQLITE = 'sqlite'
exception mautrix.util.async_db.DatabaseException

Bases: RuntimeError

property explanation: str | None
exception mautrix.util.async_db.DatabaseNotOwned

Bases: DatabaseException

__init__(owner)
Parameters:

owner (str)

Return type:

None

property explanation: str
exception mautrix.util.async_db.UnsupportedDatabaseVersion

Bases: DatabaseException

__init__(name, version, latest)
Parameters:
Return type:

None

property explanation: str
exception mautrix.util.async_db.ForeignTablesFound

Bases: DatabaseException

__init__(explanation)
Parameters:

explanation (str)

Return type:

None

property explanation: str