К содержимому

Документация

Python SDK: KeyValue: состояние обхода

ctx.state() хранит небольшой курсор обхода, например номер следующей страницы. Чтение и запись синхронны; это не хранилище товарных записей.

Примеры являются фрагментами тела def run(ctx):. Все методы SDK синхронны, await не нужен.

Методы

get

ctx.state().get(key, default=None) -> Any

Аргумент Тип Обязателен Назначение
key str | None Да Ключ записи, состояния, объекта или входа по назначению метода.
default Any Нет, default в сигнатуре Резервное значение при отсутствии результата.

Результат: Any.

Прочитать сохранённое значение состояния. Если ключа ещё нет, вернётся default.

result = ctx.state().get('page', 1)

set

ctx.state().set(key, value) -> None

Аргумент Тип Обязателен Назначение
key str | None Да Ключ записи, состояния, объекта или входа по назначению метода.
value Any Да Значение по назначению метода; см. описание результата.

Результат: None. Метод не возвращает значение данных.

Записать значение состояния для продолжения обхода.

ctx.state().set('page', 2)

incr

ctx.state().incr(key, by=1) -> int

Аргумент Тип Обязателен Назначение
key str | None Да Ключ записи, состояния, объекта или входа по назначению метода.
by int Нет, default в сигнатуре Целочисленное приращение.

Результат: int.

Увеличить целочисленный счётчик состояния.

result = ctx.state().incr('processed', 1)

Ошибки и контекст выполнения

Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.