Хранить аккаунты и сессии#

Пакет eazy_sdk_accounts хранит аккаунты, подтверждения, ограничения, связи, события и сессии. Он не зависит от HTTP-клиента и подходит для нескольких созданных SDK.

Установите хранилище в памяти:

uv add "eazy-sdk-core[accounts]"

Создайте аккаунт, отметьте адрес подтверждённым и выберите подходящую запись из пула:

    # examples/docs/integration_accounts.py
    workspace = AccountWorkspace(MemoryStorage())
    account = await workspace.accounts.create(
        "ada@mail.example",
        provider="mail",
        meta={"display_name": "Ada"},
    )
    await workspace.verifications.mark(account, "email", target=account.identifier)
    selected = await workspace.pool.pick(provider="mail", requires_verified={"email"})
Файл целиком
"""Store and select one account in the in-memory workspace."""

from __future__ import annotations

import asyncio

from eazy_sdk_accounts.storage import AccountWorkspace, MemoryStorage


async def main() -> None:
    # docs:integration-accounts:start
    # examples/docs/integration_accounts.py
    workspace = AccountWorkspace(MemoryStorage())
    account = await workspace.accounts.create(
        "ada@mail.example",
        provider="mail",
        meta={"display_name": "Ada"},
    )
    await workspace.verifications.mark(account, "email", target=account.identifier)
    selected = await workspace.pool.pick(provider="mail", requires_verified={"email"})
    # docs:integration-accounts:end
    print(f"account: {account.identifier}")
    print(f"selected: {selected.identifier if selected else None}")


if __name__ == "__main__":
    asyncio.run(main())
account: ada@mail.example
selected: ada@mail.example

MemoryStorage хранит состояние только в текущем процессе. Для SQLite или PostgreSQL используйте плагин SQLModel.

Дальше#