Python Engine
Benutzer können ihre Python-Skripte auch innerhalb des Requirements & Systems Portal ausführen, um mithilfe von Python-Code Berechnungen ähnlich wie mit der Octave Engine durchzuführen. Darüber hinaus können Benutzer damit auch auf die REST-API zugreifen und Änderungen an Objekten einzeln oder gesammelt vornehmen. Die integrierte Python-Engine unterstützt derzeit die Python-„Valispace“-Pakete, pint und Scipy (einschließlich NumPy und weiterer Pakete). Derzeit sind nicht alle Python-Pakete verfügbar.
Python-Skript-Ablauf im Scripting Module
Der typische Workflow in einem Scripting Module mit der Python-Engine ist im folgenden Bild dargestellt. Falls der Benutzer keine Berechnung durchführen, sondern über die REST-API Massenänderungen vornehmen möchte, kann er den Python-Code direkt schreiben und das Skript ausführen.

Pakete innerhalb der Python-Engine
Da wir die Python-Engine im Requirements & Systems Portal als Beta-Funktion implementiert haben, unterstützt die Python-Engine nicht alle Pakete. Derzeit werden nur sehr wenige Pakete unterstützt. Die aktuell unterstützten Pakete sind hier aufgeführt.
Beispiel für Python-Scripting
Mit der Python-Engine kann der Benutzer Eingaben und Ausgaben hinzufügen und Python-Code schreiben, um die Ergebnisse zu berechnen. Dies funktioniert ähnlich wie bei der Octave Engine im Requirements & Systems Portal. Im folgenden Beispiel sehen Sie, wie Sie ein Python-Skript schreiben, um einem Block einen Unterblock hinzuzufügen.
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)
Hier sind einige Ideen, was Sie mit dem Scripting Module tun können:
-
Ein Vali erstellen und es mehreren vorhandenen Komponenten hinzufügen
-
Massenbearbeitungen an den Kennungen von Anforderungen vornehmen
-
Eine Simulation mit Python ausführen
-
Die Einheiten aller Power-Valis in kW umwandeln
-
Ein Skript erstellen und ausführen, um die Komponentenhierarchie zu exportieren
-
Einen Export der Anforderungen im ReqIF-Format erstellen
-
Eine Stückliste erstellen, die Material, Komponentennummer, Masse und Kosten der Komponenten extrahiert