Customizing

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.

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.

  • 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.

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 das inspect -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:

Python-IDs

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

Python
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.