from __future__ import annotations
from typing import TYPE_CHECKING
from ._utils import AttrDict
from .account import Account
if TYPE_CHECKING:
from .rpc import Rpc
[docs]
class DeltaChat:
"""
Delta Chat accounts manager.
This is the root of the object oriented API.
"""
def __init__(self, rpc: "Rpc") -> None:
self.rpc = rpc
[docs]
def add_account(self) -> Account:
"""Create a new account database."""
account_id = self.rpc.add_account()
return Account(self, account_id)
[docs]
def get_all_accounts(self) -> list[Account]:
"""Return a list of all available accounts."""
account_ids = self.rpc.get_all_account_ids()
return [Account(self, account_id) for account_id in account_ids]
[docs]
def start_io(self) -> None:
"""Start the I/O of all accounts."""
self.rpc.start_io_for_all_accounts()
[docs]
def stop_io(self) -> None:
"""Stop the I/O of all accounts."""
self.rpc.stop_io_for_all_accounts()
[docs]
def maybe_network(self) -> None:
"""Indicate that the network likely has come back or just that the network
conditions might have changed.
"""
self.rpc.maybe_network()
[docs]
def get_system_info(self) -> AttrDict:
"""Get information about the Delta Chat core in this system."""
return AttrDict(self.rpc.get_system_info())
[docs]
def set_translations(self, translations: dict[str, str]) -> None:
"""Set stock translation strings."""
self.rpc.set_stock_strings(translations)