Moteur Python
Les utilisateurs peuvent également exécuter leurs scripts python dans Requirements & Systems Portal afin d’effectuer certains calculs via du code python, de manière similaire au moteur octave. De plus, cela permet aussi aux utilisateurs d’accéder à l’API REST et d’apporter des modifications aux objets individuellement ou en masse. Le moteur python intégré prend actuellement en charge les packages python « Valispace », pint et Scipy (y compris NumPy et d’autres). Tous les packages python ne sont pas encore disponibles.
Flux des scripts Python dans le module de scripting
Le flux de travail typique dans un module de scripting utilisant le moteur python est illustré dans l’image ci-dessous. Si l’utilisateur ne souhaite pas effectuer de calcul et veut simplement réaliser des modifications en masse via l’API REST, il peut écrire directement le code python et exécuter le script.

Packages disponibles dans le moteur python
Comme nous avons implémenté le moteur python dans Requirements & Systems Portal en tant que fonctionnalité bêta, le moteur python ne prend pas en charge tous les packages. Actuellement, très peu de packages sont pris en charge. La liste des packages actuellement pris en charge est disponible ici.
Exemple de script python
Avec le moteur python, l’utilisateur peut ajouter les entrées et la sortie, puis écrire du code python pour calculer les résultats. Cela fonctionne de manière similaire au Octave Engine dans Requirements & Systems Portal. Dans l’exemple ci-dessous, vous pouvez voir comment écrire un script python pour ajouter un sous-bloc à un bloc.
from typing import Any, Dict
import valispace
def main(**kwargs) -> Dict[str, Any]:
"""
This is the main function to execute your script and it must exists.
Other functions and files can be also created. You have at your disposal
to import Valispace API, scipy, numpy and pint.
:param kwargs: Dictionary with data received from Valispace.
:type kwargs: Dict[str, Any]
:return: Dictionary with data to send back to Valispace.
:rtype: Dict[str, Any]
"""
# TODO: Write your code here
valispace = valispace.API(url="https://.valispace.com/", username = "", password = "") #add your deployment name, username and the password
# 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)
Voici quelques idées de ce que vous pouvez faire avec le module de scripting :
-
Créer un vali et l’ajouter à plusieurs composants existants
-
Effectuer des modifications en masse des identifiants des exigences
-
Exécuter une simulation avec python
-
Convertir les unités de tous les valis de puissance en kW
-
Créer et exécuter un script pour exporter la hiérarchie des composants
-
Créer une exportation au format ReqIF à partir des exigences
-
Créer une nomenclature en extrayant le matériau, le numéro de composant, la masse et le coût des composants