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 либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.