Vertec Python Stub Files für die Verwendung in Code Editoren
Standard
|Expert
CLOUD ABO
|ON-PREMISES
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Viele Code Editoren wie zum Beispiel Visual Studio Code verfügen über statische Analyse-Fähigkeiten, um Fehler bereits vor der Ausführung zu erkennen.
Um die Vertec Python Module für die Type Checker verfügbar zu machen, liefern wir ab Version 6.4.0.15 Stub Files der eingebauten Vertec Module vtcapp
, vtcextensions
und ziputils
sowie ab Vertec 6.6 die Stub Files vtcplanning.py
, vtcplanningcore.py
und reporting.py
mit. Diese werden im Unterordner PythonStubs im Vertec Installationsverzeichnis abgelegt. Alternativ können Sie die Stub Files hier herunterladen:
Anschliessend können Sie im Code Editor importiert werden.
Wie das geschieht, wird hier anhand des Beispiels Visual Studio Code erklärt.
Ctrl+Shift+P
und klicken Sie auf Install Extension
> Pylance installieren
.Yes and reload
.Ctrl+Shift+P
das Command Line Interface.Settings
ein und wählen Sie die Option Open Settings (JSON)
.Tragen Sie den Pfad zu den Vertec Stub Files im Code unter python.analysis.stubPath
ein:
"python.languageServer": "Pylance", "python.pythonPath": "C:\\Python27\\python.exe", "python.analysis.stubPath": "C:\\ProgramFiles\\Vertec\\PythonStubs",
Kontrollieren Sie, dass als Language Server Pylance
eingetragen ist (die aktuelle Version wurde mit Punkt 1 installiert).
Damit das in Ihrem Script funktioniert, importieren Sie das gewünschte Modul, z.B. vtcapp
:
import vtcapp
Ab Vertec 6.6 liefern wir mit reporting.py
auch ein Python Stub File für den Python-Code für Office-Berichte mit.
Dieses muss für die Verwendung wie gewohnt importiert werden: from reporting import *
Die Methoden, die im Office-Bericht Code selbst deklariert werden müssen (z.B. def initialize_row(context, row)
), sind im Stub File zwar eingefügt, jedoch nur als Dokumentationshilfe (da die Methode ja nicht einfach verwendet wird, sondern selbst deklariert werden muss).
Damit die context-Variable funktioniert, muss in Python folgende Type-Annotation verwendet werden (Beispiel):
def calc_table(context): # type: (Context) -> Table