Python API
Information
- Nachfolgend finden Sie die Beschreibung der PLANTA-Python-API.
Technische Details
Informationen
- Innerhalb des PLANTA-Servers läuft ein CPython-Interpreter (Versionen sind in bei der Installation / dem Update im PLANTA-Installer auswählbar).
- Da sich alle Sessions eines Servers den gleichen Interpreter teilen, werden auch alle globalen Objekte zwischen allen Sessions geteilt.
- Fügt man also beispielsweise einem Python-Modul ein neues Attribut hinzu, ist dieses Attribut auch in anderen Session abfragbar. Soll ein Zustand nur in der aktiven Session gespeichert werden, sollte hierfür
ppms.get_session_dict()
verwendet werden.
- Fügt man also beispielsweise einem Python-Modul ein neues Attribut hinzu, ist dieses Attribut auch in anderen Session abfragbar. Soll ein Zustand nur in der aktiven Session gespeichert werden, sollte hierfür
ppms-Modul
Informationen
- Der in C geschriebene Teil des PLANTA-Servers stellt bestimmte Funktionen in einer Funktionsbibliothek zur Verfügung.
- Diese Funktonsbibliothek liegt standardmäßig im Server-Verzeichnis unter
/dlls/
und heißt je nach Betriebssystem_ppms.so
oder_ppms.dll
.
- Diese Funktonsbibliothek liegt standardmäßig im Server-Verzeichnis unter
- Im Verzeichnis
ppms
befindet sich:- die Datei
ppms_.py
. Diese Datei wird mithilfe von SWIG automatisch generiert und macht die C-Funktionen aufrufbar. - die Datei
ppms.py
, die die beiden Module kombiniert und die eigentliche Schnittstelle zu PLANTA beinhaltet. Die PLANTA-Objekte werden hier noch um Funktionen erweitert, die in purem Python geschrieben sind.
- die Datei
Injections
Informationen
- An mehreren Stellen im System kann Python-Code hinterlegt werden, der vom Programm ausgeführt wird.
- Bei der Ausführung wird aus dem Quelltext ein Python-Modul-Objekt erzeugt. Dabei werden ggf. weitere Attribute automatisch eingefügt.
- An jeder Stelle im System wird das
ppms
-Modul automatisch verfügbar gemacht. Bei Code im Feld Wertebereich wird noch zusätzlich dasinspect
-Modul importiert.
Python-Pfad
Informationen
- Die Umgebungsvariable PYTHONPATH wird standardmäßig von den entsprechenden Start-Skripten für den Server gesetzt.
- Nachdem der Server den Python-Interpreter gestartet hat, wird die
startup.py
importiert, die den Pfad weiter anpasst - Die Standard-Reihenfolge, die von PLANTA konfiguriert wird, lautet wie folgt:
py/distribution
dlls
dlls/python34.zip
lib
py
py/pysrc
py/distribution/site-packages
py/api/ppms/wrapper/system
py/api/ppms/wrapper
py/api/ppms/customizing/venus
py/api/ppms/server
Python-IDs
- DI/DF-Python-IDs können in folgenden Dataitems verwendet werden:
Individuelle Python Dateien
- Individuelle Dateien sollten am Besten in einem eigenen Verzeichnis unter /py/<kunde> liegen
Logging
Sie können Logging-Aufrufe verwenden, um Ihren Python-Code zu debuggen.
- Das Logging wird sowohl in den Wwrapper als auch in das session log geschrieben
- Um mit eigenen Python-Paketen zu arbeiten, müssen diese in ihrem /py/api/-Ordner liegen
import logging
logger = logging.getLogger(__name__)
def my_func(arg):
logger.info('Custom func was called!')
# ...
Customizing API
Namespace | Topic |
---|---|
ppms.assignment_module | General assignment API |
ppms.create_project | Projekte erstellen |
ppms.create_report | Berichte erstellen |
ppms.cu_access | Customizer-Zugang |
ppms.debugging | Debugging-Python-Code |
ppms.dimmer | Dimmer Client-seitig |
ppms.file_utils | Hilfsprogramme zum Arbeiten mit Dateien |
ppms.global_setting | Globale Einstellungen lesen |
ppms.period | Perioden-Datensätze erstellen |
ppms.project_rights | Projektrechte |
ppms.psp_elements | PSP-Elemente |
ppms.rights | Allgemeine Rechte-API |
ppms.sql | Hilfsprogramme zum Arbeiten mit der Datenbank |
ppms.user_interface
Das ppms.user_interface
-Paket stellt unterschiedliche Hilfsfunktionen bereit, die einen Einfluss auf die Art und Weise haben, in der der Nutzer mit dem Client interagiert.
ppms.interface
Das ppms.interface-Paket
enthält das PLANTA link API.
Server API
Namespace | Inhalt |
---|---|
ppms.text_constant | Verwendung von Textkonstanten |
planta_logging.logging | PLANTA-Server-Logging |
ppms.migration
Das ppms.migration-
Paket implementiert das Migrationsframework und stellt die Basisklasse zum Schreiben von Migrationspaketen zur Verfügung.
Related topics
Den API-Style-Guide finden Sie im PythonApiStyleGuide Topic.