Cluster · разработчикам

app.exchange

Договоры обмена между профилями юзерботов. Запрос должен быть одобрен получателем и активирован работающими экземплярами.

Все методы SDK · Типы и ошибки

Получение объекта

agreement = app.exchange.agreement("agreement-id")

__init__

Создаёт Exchange. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(app: App) -> None: ...

Аргументы

Результат

None. Создаёт Exchange. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

# Обычный способ получения объекта:
agreement = app.exchange.agreement("agreement-id")

__call__

Готовит запрос договора для выбранного юзербота и экземпляра.

def __call__(peer: str, module: str | None, slot: str | None = 'main') -> ExchangeRequest: ...

Аргументы

Результат

ExchangeRequest. Готовит запрос договора для выбранного юзербота и экземпляра.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.exchange("peer-id", "dependency-id")

agreement

Создаёт объект договора по его ID.

def agreement(id: str) -> Agreement: ...

Аргументы

Результат

Agreement. Создаёт объект договора по его ID.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.exchange.agreement("object-id")

iter

Перебирает доступные договоры порциями с проверкой продвижения курсора.

async def iter(limit: int = 100) -> AsyncIterator[Agreement]: ...

Аргументы

Результат

AsyncIterator[Agreement]. Перебирает доступные договоры порциями с проверкой продвижения курсора.

Права

Нужны exchange.request.

Ошибки

Пример

async for value in app.exchange.iter():
    break

request

Отправляет запрос договора на конкретный ресурс. Одобрение не проверяет наличие данных заранее.

async def request(peer: str, module: str | None, slot: str | None, resource: dict[str, JSON], **data: JSON) -> AgreementInfo: ...

Аргументы

Результат

AgreementInfo. Отправляет запрос договора на конкретный ресурс. Одобрение не проверяет наличие данных заранее.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.request("peer-id", "dependency-id", "main", {"kind": "data", "key": "notes"}, mode="permanent")

get

Получает доступное состояние договора.

async def get(id: str) -> AgreementInfo: ...

Аргументы

Результат

AgreementInfo. Получает доступное состояние договора.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.get("object-id")

list

Получает порцию договоров после указанного ID.

async def list(**data: JSON) -> list[AgreementInfo]: ...

Аргументы

Результат

list[AgreementInfo]. Получает порцию договоров после указанного ID.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.list(limit=20)

transfer

Выполняет согласованную передачу по активному договору.

async def transfer(id: str, **data: JSON) -> JSON: ...

Аргументы

Результат

JSON. Выполняет согласованную передачу по активному договору.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.transfer("object-id", value=None)

revoke

Отзывает договор. Завершённые и уже выполняющиеся действия не откатываются.

async def revoke(id: str) -> AgreementInfo: ...

Аргументы

Результат

AgreementInfo. Отзывает договор. Завершённые и уже выполняющиеся действия не откатываются.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.revoke("object-id")

history

Возвращает историю действий по договору.

async def history(id: str) -> list[dict[str, JSON]]: ...

Аргументы

Результат

list[dict[str, JSON]]. Возвращает историю действий по договору.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.history("object-id")

events

Получает порцию событий обмена после указанного номера.

async def events(id: str, after: int = 0, limit: int = 100) -> ExchangePage: ...

Аргументы

Результат

ExchangePage. Получает порцию событий обмена после указанного номера.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.events("object-id")

clear

Удаляет сохранённые события до указанной границы по правилам договора.

async def clear(id: str, before: int) -> dict[str, int]: ...

Аргументы

Результат

dict[str, int]. Словарь {removed: int} с числом удалённых событий.

Права

Нужны exchange.request.

Ошибки

Пример

result = await app.exchange.clear("object-id", 0)