DuckoLab

Python и данные проекта

В действии Python выберите API проекта project-v1, интерпретатор bundled, функцию main и при необходимости переменную результата. Для SDK текущего выполнения явно объявите ctx.

def main(ctx, name="world"):
    message = "Hello, " + name
    ctx.variables.set("greeting", message)
    ctx.log(message)
    return {"message": message}

Следующее действие читает {-Variable.greeting-}. Возвращённый словарь сохраняется одним объектом в переменную результата; его поля не становятся переменными автоматически.

Переменные

ctx.variables.get(name, default), set(name, value), delete(name), names(). Профиль, проект и окружение доступны только для чтения.

Списки и таблицы

Найдите ресурс через ctx.resources.find(name, kind). Используйте read(id, offset, limit), replace(id, data), append_rows(id, rows). Большие ресурсы читаются страницами.

HTTP

ctx.http.request("GET", url) использует профиль, прокси, cookies и журнал трафика текущего выполнения. Ответ предоставляет статус, заголовки, текст и json(). Сторонние клиенты автоматически не разделяют эту сессию.

Файлы и ошибки

Файловым методам нужны разрешение и допустимый путь. Изменения переменных и ресурсов применяются после успеха действия. Внешние записи и HTTP-запросы не откатываются при последующей ошибке.

Совместимый API без контекста сохраняет вызов функции без ctx. Оба API поддерживают встроенный и настроенный системный интерпретатор; сторонние библиотеки должны соответствовать выбранному интерпретатору. Справочник методов доступен в помощи Python редактора.