PooledClient (per-loop pooling, satisfies the contract
BaseClient Protocol) and is reached by class through client_ctx. The
driver each impl needs is declared by an extra (tai42-kit[curl] /
[postgres]); import a driver submodule only when its driver is installed.
ClientDisconnectedError
tai42_contract.errors.ClientDisconnectedError
ClientSettings
tai42_kit.clients.settings.ClientSettings
client_kwargs().
Attributes
Members
client_kwargs
tai42_kit.clients.settings.ClientSettings.client_kwargs
_create / current.
PooledClient
tai42_kit.clients.base.PooledClient
T.
Subclasses implement _create and _close; callers lease the shared client
through current, which rebuilds it after a classified disconnection.
Members
current
tai42_kit.clients.base.PooledClient.current
kwargs, creating it on first use.
A disconnection inside the body evicts and closes the client and raises
ClientDisconnectedError; retry to rebuild it.
Parameters
close
tai42_kit.clients.base.PooledClient.close
kwargs in the current epoch, if one is pooled.
Parameters
PostgresConnectionSettings
tai42_kit.clients.settings.PostgresConnectionSettings
TAI_DATABASE_<NAME>_ prefix.
Attributes
Members
pg_dsn
tai42_kit.clients.settings.PostgresConnectionSettings.pg_dsn
client_kwargs
tai42_kit.clients.settings.PostgresConnectionSettings.client_kwargs
RedisConnectionSettings
tai42_kit.clients.settings.RedisConnectionSettings
Members
client_kwargs
tai42_kit.clients.settings.RedisConnectionSettings.client_kwargs
retry_attempts travels as an int;
the redis client turns it into a Retry object at construction time —
a Retry instance is not serializable and would break the pool key.
env_prefix rides along so the client can name this store’s own env var
when redis_url is unset; it is not connection identity, so the redis
client drops it from the pool key.
advance_client_epoch
tai42_kit.clients.base.advance_client_epoch
current() leases pool under the new epoch; the retired epoch’s pools
stay live until their last lease releases (or drain_epoch force-closes
them at a deadline). The same counter stamps cached settings instances.
client_ctx
tai42_kit.clients.facade.client_ctx
client_cls.
Pass either settings (its client_kwargs() supplies the connection kwargs) or raw
**kwargs, never both. fresh=True builds a one-shot client outside the pool and closes it
on exit; otherwise the client is pooled and reused per event-loop + connection params.
Parameters
current_client_epoch
tai42_kit.clients.base.current_client_epoch
drain_epoch
tai42_kit.clients.base.drain_epoch
deadline seconds for every leased client of epoch to reach
zero leases (each closes itself on its last release), then force-closes any
that remain regardless of held leases, collecting failures into an
ExceptionGroup so none is dropped. Must run on the loop that owns the
pools; the current epoch cannot be drained.
Parameters
shutdown_all_clients
tai42_kit.clients.base.shutdown_all_clients

