Использование переменных в узле Python
| Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server. |
Вы можете использовать предопределенные переменные среды, а также самостоятельно определять пользовательские переменные в узле Python. Переменные среды PolyAnalyst доступны через настройки узла.
Обратите внимание, что узел Python существует внутри среды сервера PolyAnalyst: узел не видит переменные среды, принадлежащие операционной системе.
Если в проекте появляется новая переменная, ее можно либо Передать узлу Python, либо Пропустить, выбрав соответствующую опцию в выпадающем меню.
Под новой переменной понимается та переменная, которая задается в Настройках проекта.
Значения меню рассматриваются как "стратегии слияния переменных". Значение Передать означает, что новая переменная будет передана узлу Python. Значение Пропустить означают, что такая переменная не будет использоваться при выполнении узла. Отметьте переменную галочкой, чтобы включить/отключить ее.
Доступны следующие предопределенные переменные среды:
-
APIToken – API-токен, который создается для текущего пользователя.
-
__mode – способ интерпретации результатов работы узла (Новая таблица, Новые колонки или Индекс строк на основе 0, см. предыдущую главу).
-
host – URL-адрес сервера.
-
objId – идентификатор узла Python.
-
prjUUID – идентификатор текущего проекта.
-
$Examples$ – путь до папки с тренировочным набором данных.
-
@administrator@ – путь к папке текущего пользователя; обратите внимание, что имя данной переменной зависит от текущего пользователя, например, если вы открываете проект под учетной записью пользователя (user), переменная будет называться
@user@.
Нажмите соответствующую кнопку, чтобы добавить новую переменную:
Обратите внимание, что на переменную, добавленную через настройки узла, не влияют стратегии слияния.
Введите имя переменной и ее значение:
Чтобы изменить значение переменной, щелкните по полю Значение и введите новое значение:
Вы можете создать глобальную переменную в Административном клиенте, чтобы использовать ее в узле Python.
Если имя новой переменной совпадает с существующим, то такие переменные будут выделены красным цветом.
При необходимости снимите флажок с переменной.
Обратите внимание, что существует определенная иерархия переменных (в порядке убывания):
-
Переменные, определяемые пользователем – переменные, заданные пользователем в узле Python.
-
Переменные пользовательских настроек – переменные, которые задаются через пользовательские настройки.
-
Переменные, заданные в настройках проекта – переменные, которые задаются в настройках проекта.
-
Переменные, заданные в настройках сервера – переменные, которые задаются через настройки сервера.
Другими словами, определяемые пользователем переменные обладают наивысшим приоритетом.
| Переменная среды не может быть изменена. |
В колонке Тип указывается тип переменной:
-
Определяемая пользователем переменная – переменная, которая была задана пользователем.
-
Переменная, содержая путь к папке пользователя – путь к папке текущего пользователя.
-
Именованные папки – путь к именованной папке (например, путь к папке с тренировочным набором данных).
-
Пользовательская SRL-переменная – SRL-переменная, установленная пользователем.
-
Проектная SRL-переменная – SRL-переменная, заданная в проекте.
-
Серверная SRL-переменная – SRL-переменная, заданная в настройках сервера.
-
Системный – системеная переменная, значение которой берется с сервера (например, URL-адрес сервера, идентификатор проекта, идентификатор узла Python и т.д.).
| Переменные, которые были установлены в Настройках проекта не будут видны в других проектах. |
Серверная SRL-переменная устанавливается через Административный клиент (см. далее).
Обратите внимание, что доступ к именованной папке может быть отключен:
В этом случае такая переменная не будет отображаться в списке переменных.
Значение переменной APIToken задается только при выполнении узла. Токен устанавливается для текущего пользователя, который запускает узел. Для токена автоматически задаются следующие области видимости:
-
Общий
-
Показать проект
-
Редактировать проект
-
Файл
Токен необходим для выполнения операций через API при работе с узлом Python. Подробнее про области видимости см. здесь.
Создание серверной SRL-переменной через Административный клиент
Чтобы задать переменную, откройте настройки SRL/PDL Переменных в Настройках сервера в Административном клиенте. Нажмите кнопку с изображением плюса. Введите имя переменной и ее значение (см. пример ниже):
Нажмите кнопку Применить и закройте окно настроек. Таким образом, мы создали глобальную переменную с именем "var" со значением 100.
Теперь давайте создадим новый проект, чтобы проиллюстрировать использование переменной. Для этого используйте узел Файлы CSV и добавьте "CarData.csv" в качестве примера. Выполните узел и подсоедините к нему узел Python.
Откройте окно настроек узла Python и введите следующий код:
column = parent["Displacement"] + int(parameters['var']) result = pandas.DataFrame(column)
Переменные SRL/PDL сохраняются в виде пары ключ-значение. В нашем примере var – это ключ, содержащий значение 100. Чтобы получить значение по его ключу, нам нужно обратиться к Python-словарю parameters, где лежат указанные пары ключ-значение.
В нашем примере нам необходимо изменить тип переменной (см int()), поскольку SRL/PDL-переменные по умолчанию хранятся в строковом формате.
|
Чтобы увидеть новую колонку с исходным набором данных, выберите опцию Новые колонки в выпадающем меню, как показано ниже. После этого запустите узел.
Таким образом, мы получаем новую колонку ""Displacement1" со значениями оргининальной колонки "Displacement", увеличенными на 100.