Cluster · разработчикам
app.modules
Вызовы объявленных функций и сигналов зависимостей. Полный доступ вызывающего не передаётся автоматически.
Все методы SDK · Типы и ошибки
Получение объекта
target = app.modules("dependency-id", "main")__init__
Создаёт Modules. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
def __init__(app: App) -> None: ...Аргументы
app: App, обязательный. Переданный ядром объект app. Второй App в модуле создавать не нужно.
Результат
None. Создаёт Modules. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
# Обычный способ получения объекта:
target = app.modules("dependency-id", "main")__call__
Выбирает модуль и необязательный профиль экземпляра для последующих вызовов.
def __call__(module: str | None, slot: str | None = None) -> Module: ...Аргументы
module: str | None, обязательный. ID публикации модуля. None выбирает текущий раздел там, где это предусмотрено.slot: str | None, по умолчаниюNone. Имя профиля экземпляра. None использует выбор зависимости или текущий профиль.
Результат
Module. Выбирает модуль и необязательный профиль экземпляра для последующих вызовов.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.modules("dependency-id")start
Запускает функцию зависимости и возвращает объект вызова без ожидания результата.
async def start(module: str | None, function: str, values: dict[str, JSON] | None = None, slot: str | None = None) -> Call: ...Аргументы
module: str | None, обязательный. ID публикации модуля. None выбирает текущий раздел там, где это предусмотрено.function: str, обязательный. Имя функции, сигнала либо поля в выбранном объекте.values: dict[str, JSON] | None, по умолчаниюNone. Именованные JSON-аргументы объявленного обработчика по его схеме. None означает пустой словарь.slot: str | None, по умолчаниюNone. Имя профиля экземпляра. None использует выбор зависимости или текущий профиль.
Результат
Call. Запускает функцию зависимости и возвращает объект вызова без ожидания результата.
Права
Нужны modules.call.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
result = await app.modules.start("dependency-id", "status")emit
Передаёт сигнал зависимости с JSON-аргументами.
async def emit(module: str | None, signal: str, values: dict[str, JSON] | None = None, slot: str | None = None) -> JSON: ...Аргументы
module: str | None, обязательный. ID публикации модуля. None выбирает текущий раздел там, где это предусмотрено.signal: str, обязательный. Имя функции, сигнала либо поля в выбранном объекте.values: dict[str, JSON] | None, по умолчаниюNone. Именованные JSON-аргументы объявленного обработчика по его схеме. None означает пустой словарь.slot: str | None, по умолчаниюNone. Имя профиля экземпляра. None использует выбор зависимости или текущий профиль.
Результат
JSON. Передаёт сигнал зависимости с JSON-аргументами.
Права
Нужны modules.call.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
result = await app.modules.emit("dependency-id", "status")call
Запускает функцию зависимости и ожидает результат до timeout. TimeoutError не означает, что удалённое действие отменено. Ядро возвращает готовый результат по сигналу завершения, без обязательной паузы между проверками.
async def call(module: str | None, function: str, values: dict[str, JSON] | None = None, slot: str | None = None, timeout: float = 30) -> JSON: ...Аргументы
module: str | None, обязательный. ID публикации модуля. None выбирает текущий раздел там, где это предусмотрено.function: str, обязательный. Имя функции, сигнала либо поля в выбранном объекте.values: dict[str, JSON] | None, по умолчаниюNone. Именованные JSON-аргументы объявленного обработчика по его схеме. None означает пустой словарь.slot: str | None, по умолчаниюNone. Имя профиля экземпляра. None использует выбор зависимости или текущий профиль.timeout: float, по умолчанию30. Конечный положительный срок ожидания в секундах. Истечение не отменяет удалённое действие.
Результат
JSON. Запускает функцию зависимости и ожидает результат до timeout. TimeoutError не означает, что удалённое действие отменено.
Права
Нужны modules.call.
Ошибки
resources.error(result['error']): условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- TimeoutError при истечении срока ожидания; задача или вызов у получателя может продолжаться. Не отправляй действие повторно без проверки состояния.
Пример
result = await app.modules.call("dependency-id", "status")