Motor de Python
Los usuarios también pueden ejecutar sus scripts de python dentro de Requirements & Systems Portal para realizar algunos cálculos mediante código python, de forma similar al motor de octave. Además, esto también permite a los usuarios acceder a la API rest y realizar modificaciones en los objetos de forma individual o masiva. El motor de python integrado actualmente admite los paquetes de python “Valispace”, pint y Scipy (incluye NumPy y otros). Actualmente no están disponibles todos los paquetes de python.
Flujo de scripts de Python en el módulo de scripting
El flujo de trabajo típico en un módulo de scripting que utiliza el motor de python se muestra en la imagen de abajo. En caso de que el usuario no quiera realizar un cálculo y desee hacer cambios masivos mediante la API rest, puede escribir el código python directamente y ejecutar el script.

Paquetes dentro del motor de python
Dado que implementamos el motor de python dentro de Requirements & Systems Portal como una función beta, el motor de python no admite todos los paquetes. Actualmente, solo se admiten muy pocos paquetes. Los paquetes compatibles actualmente se enumeran aquí.
Ejemplo de scripting en python
Con el motor de python, el usuario puede agregar las entradas y la salida, y puede escribir código python para calcular los resultados. Esto es similar a cómo funciona con el Octave Engine en Requirements & Systems Portal. En el siguiente ejemplo puede ver cómo escribir el script de python para agregar un subbloque a un bloque.
from typing import Any, Dict
import valispace
def main(**kwargs) -> Dict[str, Any]:
"""
Esta es la función principal para ejecutar su script y debe existir.
También se pueden crear otras funciones y archivos. Tiene a su disposición
la importación de la API de Valispace, scipy, numpy y pint.
:param kwargs: Diccionario con los datos recibidos de Valispace.
:type kwargs: Dict[str, Any]
:return: Diccionario con los datos que se enviarán de vuelta a Valispace.
:rtype: Dict[str, Any]
"""
# TODO: Escriba su código aquí
valispace = valispace.API(url="https://.valispace.com/", username = "", password = "") #agregue el nombre de su implementación, nombre de usuario y contraseña
# The ID of the Parent Component; If it is at the highest level, parent is null, but project need to be specified.
parent_component = 57111
# Object with the new Component Property
component = {
"name": "NewCompentName2",
"parent": parent_component
}
# Function to get Vali by the fullname
componentPosted = valispace.post("components/", component)
Aquí tiene algunas ideas de lo que puede hacer con el módulo de scripting:
-
Crear un vali y añadirlo a varios componentes existentes
-
Realizar ediciones masivas en los identificadores de los requisitos
-
Ejecutar una simulación usando python
-
Convertir las unidades de todos los valis de potencia a kW
-
Crear y ejecutar un script para exportar la jerarquía de componentes
-
Crear una exportación en formato ReqIF a partir de los requisitos
-
Crear una lista de materiales extrayendo el material, número de componente, masa y costo de los componentes