Контекст сценариев

Модуль modeler.script предоставляет контекст, в котором выполняется сценарий. Этот модуль автоматически импортируется в сценарий SPSS Modeler во время выполнения. Этот модуль определяет четыре функции, обеспечивающие сценарию доступ в его среду выполнения:

  • Функция session() возвращает сеанс для сценария. Сеанс определяет такую информацию, как локаль и механизм обработки SPSS Modeler (или локальный процесс, или сетевой процесс SPSS Modeler Server), используемые для запуска любых потоков.
  • Функцию stream() можно использовать со сценариями потоков и надузлов. Эта функция возвращает поток, который владеет исполняемым сценарием потока или сценарием надузла.
  • Функцию diagram() можно использовать со сценариями надузлов. Эта функция возвращает диаграмму в надузле. Для остальных типов сценариев возвращаемое значение то же, что у функции stream().
  • Функцию supernode() можно использовать со сценариями надузлов. Эта функция возвращает надузел, который владеет исполняемым сценарием.

Эти четыре функции и их выводы сведены в следующей таблице.

Табл. 1. Сводка функций modeler.script
Тип сценария session() stream() diagram() supernode()
Локальный режим Возвращает сеанс Возвращает текущий управляемый поток на момент вызова сценария (например, поток, прошедший через опцию -stream пакетного режима) или значение None. То же, что и stream() Неприменимо
Поток Возвращает сеанс Возвращает поток То же, что и stream() Неприменимо
Надузел Возвращает сеанс Возвращает поток Возвращает поток надузла Возвращает надузел

Модуль modeler.script определяет также способ завершения сценария при помощи кода выхода. Функция exit(код-выхода) останавливает выполнение сценария и возвращает предоставленный целочисленный код выхода.

Один из определенных для потока методов - это runAll(List). Этот метод запускает все выполняемые узлы. Все модели и выводы, генерируемые при выполнении узлов, добавляются к предоставленному списку.

Обычно при выполнении потока генерируются такие выводы, как модели, графики и другие объекты. Для захвата этих выводов сценарий может использовать переменную, инициализированную для списка, например:

stream = modeler.script.stream()
results = []
stream.runAll(results)

Когда выполнение закончено, ко всем сгенерированным объектам можно получить доступ в списке results.