Silnik Python
Użytkownicy mogą również uruchamiać swoje skrypty Python w portalu wymagań i systemów, aby wykonywać niektóre obliczenia za pomocą kodowania Python podobnego do silnika Octave. Dodatkowo, pozwala to również użytkownikom na dostęp do pozostałego API i wykonywanie modyfikacji obiektów indywidualnie lub zbiorczo. Wbudowany silnik Python obsługuje obecnie pakiety Python "Valispace", pint i Scipy (w tym NumPy i inne). Nie wszystkie pakiety Pythona są obecnie dostępne.
Przepływ skryptów Python w module skryptowym
Typowy przepływ pracy w module skryptowym obejmującym silnik Pythona pokazano na poniższym obrazku. W przypadku, gdy użytkownik nie chce wykonywać obliczeń i dokonywać zmian zbiorczych za pośrednictwem interfejsu API, może napisać kod Pythona bezpośrednio i uruchomić skrypt.

Pakiety w ramach Python Engine
Ponieważ wdrożyliśmy silnik Python w portalu wymagań i systemów jako funkcję beta, silnik Python nie obsługuje wszystkich pakietów. Obecnie obsługiwanych jest bardzo niewiele pakietów. Pakiety, które są obecnie obsługiwane, są wymienione tutaj.
Przykład dla skryptów w języku Python
Dzięki silnikowi Pythona użytkownik może dodać dane wejściowe i wyjściowe oraz napisać kod Pythona, aby obliczyć wyniki. Jest to podobne do tego, jak działa silnik Octave w portalu wymagań i systemów. W poniższym przykładzie można zobaczyć, jak napisać skrypt Pythona, aby dodać podblok do bloku.
from typing import Any, Dict
import valispace
def main(**kwargs) -> Dict[str, Any]:
"""
Jest to główna funkcja do wykonania skryptu i musi istnieć.
Inne funkcje i pliki mogą być również tworzone. Masz do dyspozycji
zaimportować Valispace API, scipy, numpy i pint.
param kwargs: Słownik z danymi otrzymanymi od Valispace.
type kwargs: Dict[str, Any]
:return: Słownik z danymi do odesłania do Valispace.
:rtype: Dict[str, Any]
"""
# TODO: Napisz tutaj swój kod
valispace = valispace.API(url="https://.valispace.com/", username = "", password = "") #dodaj nazwę wdrożenia, nazwę użytkownika i hasło
# Identyfikator komponentu nadrzędnego; Jeśli jest na najwyższym poziomie, rodzic ma wartość null, ale projekt musi zostać określony.
parent_component = 57111
# Obiekt z nową właściwością komponentu
component = {
"name": "NewCompentName2",
"parent": parent_component
}
# Funkcja pobierająca Vali przez pełną nazwę
componentPosted = valispace.post("components/", component)
Oto kilka pomysłów na to, co można zrobić z modułem skryptowym:
-
Tworzenie vali i dodawanie jej do wielu istniejących komponentów
-
Zbiorcze edytowanie identyfikatorów wymagań
-
Uruchamianie symulacji przy użyciu Pythona
-
Konwersja jednostek wszystkich wartości mocy na kW
-
Tworzenie i uruchamianie skryptu w celu wyeksportowania hierarchii komponentów
-
Tworzenie eksportu w formacie ReqIF z wymagań
-
Tworzenie listy materiałów wyodrębniającej materiał komponentów, numer komponentu, masę, koszt