Настройка узла Python
Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server.

Окно свойств узла Python содержит как минимум три вкладки: Скрипт Python, Переменные среды и Общие. Это происходит в тех случаях, когда узел используется для импорта данных в PolyAnalyst и не имеет входящего соединения с родительским узлом. Подробнее об этом здесь.

Обычно узлу Python предшествует родительский узел, поэтому в окне настроек узла чаще всего имеются четыре вкладки: Скрипт Python, вкладка для выбора рабочих колонок, название которой зависит от имени родительской таблицы, Переменные среды и Общие.

python settings.rus

Для начала необходимо выбрать интерпретатор Python. Если у вас установлено несколько интерпретаторов, вы можете выбрать необходимый интерпретатор для конкретного узла Python.

python menu intepreter.rus

По умолчанию выбрано значение General. Это означает, что установлена основная (серверная) версия интерпретатора. Дополнительную информацию смотрите в разделе предыдущая глава.

Узел Python может иметь несколько родительских узлов.

python several nodes.rus

В таком случае в настройках отобразятся несколько дополнительных вкладок с названием каждого из данных узлов.

python settings several nodes.rus

Все специфичные для данного узла настройки расположены на первой вкладке Скрипт Python. Она содержит текстовое поле для составления, вставки и редактирования скрипта Python.

Давайте взглянем на скрипт узла Python по умолчанию.

""" Get columns from parent datasets """
if preliminary_run:
    result = pandas.DataFrame(columns=['Node name','Column name','Records'])
else:
    data = []
    for name, dataset in parents.items():
        for col in dataset:
            data.append({'Node name': name, 'Column name': col, 'Records': len(dataset[col])})
    result = pandas.DataFrame(data)

Приведенный выше код используется в качестве примера. Код возвращает колонки родительского набора данных с указанием количества строк для каждой колонки.

В узле Python библиотека pandas используется по умолчанию, поэтому вы можете опустить строку import pandas из скрипта (если только вы не предпочитаете задавать другое имя библиотеки при импорте, например, import pandas as pd).

Обратите внимание, что такие переменные, как "parents" и "result", задаются по умолчанию и считаются глобальными. Переменная "result" необходима для хранения результатов узла.

Переменная parents представляет собой Python-словарь, в котором хранится имя родительского набора данных. Если родительского набора данных нет, словарь parents будет пустым.

Если существует только один родительский узел, он сохраняется в переменной parent (данная переменная представляет собой экземпляр pandas.Dataframe).

Использование переменной preliminary_run необязательно. Она необходима только для получения колонок родительского набора данных и их типов.
Чтобы получить оригинальную таблицу данных, используйте следующий скрипт: result=parent.

В зависимости от поставленной задачи, вы можете указать тип выходной таблицы: узел Python может создавать новую таблицу данных, отдельные колонки или возвращать индекс строк. Выберите нужный вам тип из выпадающего меню Интерпретировать результат как:

  • Новая таблица – узел создает новую таблицу данных с результатами (опция по умолчанию);

  • Новые колонки – узел добавляет новые колонки с результатами к существующей таблице данных;

  • Индекс строк (начиная с нуля) – узел вернет измененную копию родительского набора данных, порядок строк в которой задан в соответствии с их индексом. Индекс первой строки родительского набора данных равен 0. См. данный раздел для примера.

Кнопка Загрузить скрипт позволяет указать путь к папке, в которой хранится файл скрипта с расширением *.py.

Кнопка Проверить синтаксис позволяет выполнить проверку скрипта на наличие ошибок.

Опция Перегружать скрипт при каждом выполнении узла может быть удобна в том случае, если вы регулярно обновляете файл со Python-скриптом в той папке, где он хранится, и не хотите всякий раз перенастраивать узел перед его следующим выполнением. Чтобы использовать такую возможность, включите опцию и укажите директорию с файлом с помощью кнопки Выбор. Если опция включена, возможность редактирования скрипта отключается.

Если пользователь выберет локальный компьютер в меню Загрузить скрипт, а затем включит опцию Перегружать скрипт при каждом выполнении узла, узел гарантированно выполнится только в том случае, если сервер PolyAnalyst установлен на локальной машине. В противном случае узел может выполниться с ошибкой.

После того как нужный файл будет выбран, он загружается в редактор (независимо от того, активно ли окно редактора или нет). Пользователь может вручную указать имя файла со скриптом.

Нажмите Выполнить по завершении настройки узла.