Движок Python
Пользователи также могут запускать свои скрипты python на портале Requirements & Systems Portal для выполнения некоторых вычислений с помощью кодирования на python, аналогичного движку octave. Кроме того, это также позволяет пользователям получать доступ к остальным API и выполнять модификации объектов по отдельности или в большом количестве. Встроенный движок python в настоящее время поддерживает пакеты python "Valispace", pint и Scipy (включает NumPy и другие). В настоящее время доступны не все пакеты python.
Поток сценариев Python в модуле сценариев
Типичный рабочий процесс в модуле сценариев с использованием движка python показан на рисунке ниже. Если пользователь не хочет выполнять вычисления и вносить массовые изменения через rest API, он может написать код на python напрямую и запустить скрипт.

Пакеты внутри движка python
Поскольку мы внедрили движок python в портал требований и систем в качестве бета-версии, движок python поддерживает не все пакеты. В настоящее время поддерживается очень мало пакетов. Пакеты, которые поддерживаются в настоящее время, перечислены здесь.
Пример сценария на python
С помощью движка python пользователь может добавить входные и выходные данные и написать код на языке python для вычисления результатов. Это похоже на то, как это работает с движком Octave в Requirements & Systems Portal. В приведенном ниже примере показано, как написать скрипт на языке python для добавления подблока к блоку.
from typing import Any, Dict
import valispace
def main(**kwargs) -> Dict[str, Any]:
"""
Это главная функция для выполнения вашего скрипта, и она должна существовать.
Также могут быть созданы другие функции и файлы. В вашем распоряжении
импортировать Valispace API, scipy, numpy и pint.
:param kwargs: Словарь с данными, полученными от Valispace.
:type kwargs: Dict[str, Any]
:return: Словарь с данными для отправки обратно в Valispace.
:rtype: Dict[str, Any]
"""
# TODO: Напишите здесь свой код
valispace = valispace.API(url="https://.valispace.com/", имя пользователя = "", пароль = "") # добавьте свое имя развертывания, имя пользователя и пароль
# ID родительского компонента; если компонент находится на самом высоком уровне, parent будет равен null, но проект должен быть указан.
родительский_компонент = 57111
# Объект с новым свойством Component
компонент = {
"name": "NewCompentName2",
"parent": parent_component
}
# Функция для получения Вали по полному имени
componentPosted = valispace.post("components/", component)
Вот несколько идей того, что можно сделать с помощью модуля сценариев:
-
Создание вали и добавление его к нескольким существующим компонентам
-
Вносить массовые изменения в идентификаторы требований
-
Запуск моделирования с помощью python
-
Переведите единицы измерения всех значений мощности в кВт
-
Создание и запуск сценария для экспорта иерархии компонентов
-
Создание экспорта в формате ReqIF из требований
-
Создание ведомости материалов с извлечением материала компонентов, номера компонента, массы, стоимости