Контекст сценариев
Модуль modeler.script предоставляет контекст, в котором выполняется сценарий. Этот модуль автоматически импортируется в сценарий SPSS Modeler во время выполнения. Этот модуль определяет четыре функции, обеспечивающие сценарию доступ в его среду выполнения:
- Функция
session()возвращает сеанс для сценария. Сеанс определяет такую информацию, как локаль и механизм обработки SPSS Modeler (или локальный процесс, или сетевой процесс SPSS Modeler Server), используемые для запуска любых потоков. - Функцию
stream()можно использовать со сценариями потоков и надузлов. Эта функция возвращает поток, который владеет исполняемым сценарием потока или сценарием надузла. - Функцию
diagram()можно использовать со сценариями надузлов. Эта функция возвращает диаграмму в надузле. Для остальных типов сценариев возвращаемое значение то же, что у функцииstream(). - Функцию
supernode()можно использовать со сценариями надузлов. Эта функция возвращает надузел, который владеет исполняемым сценарием.
Эти четыре функции и их выводы сведены в следующей таблице.
| Тип сценария | session() |
stream() |
diagram() |
supernode() |
|---|---|---|---|---|
| Локальный режим | Возвращает сеанс | Возвращает текущий управляемый поток на момент вызова сценария (например, поток, прошедший через опцию -stream пакетного режима) или значение None. |
То же, что и stream() |
Неприменимо |
| Поток | Возвращает сеанс | Возвращает поток | То же, что и stream() |
Неприменимо |
| Надузел | Возвращает сеанс | Возвращает поток | Возвращает поток надузла | Возвращает надузел |
Модуль modeler.script определяет также способ завершения сценария при помощи кода выхода. Функция exit(код-выхода) останавливает выполнение сценария и возвращает предоставленный целочисленный код выхода.
Один из определенных для потока методов - это runAll(List).
Этот метод запускает все выполняемые узлы. Все модели и выводы, генерируемые при выполнении узлов, добавляются к предоставленному списку.
Обычно при выполнении потока генерируются такие выводы, как модели, графики и другие объекты. Для захвата этих выводов сценарий может использовать переменную, инициализированную для списка, например:
stream = modeler.script.stream()
results = []
stream.runAll(results)
Когда выполнение закончено, ко всем сгенерированным объектам можно получить доступ в списке results.