Skip to main content
Skip table of contents

Python API

Information

  • This topic describes the public Python API f PLANTA
  • These functions are guaranteed to be supported in future versions

Technical details

Information

  • Within the PLANTA Server, a CPython interpreter is running (versions can be selected in PLANTA Installer during installation / update).
  • Since all sessions of a server share the same interpreter, all global objects are shared between all sessions as well.
    • If you add, e.g., a new attribute to a Python module, this attribute will be retrievable in other sessions as well. If a status is to be saved in the active session only, you should use ppms.get_session_dict().

PPMS Module

Information

  • The part of the PLANTA Server written in C makes particular functions available in a function library.
    • This function library is located in the server directory under /dlls/ by default and named _ppms.so or _ppms.dll depending on the operating system.
  • In the ppms directory you will find:
    • the ppms_.py file. This file is automatically generated with the help of SWIG and makes the C function available.
    • the ppms.py file which combines the two modules and contains the actual interface to PLANTA. The PLANTA objects are still extended by additional functions which are purely written in Python.

Injections

Information

  • You can store a Python code at several positions in the system which will then be executed by the program.
  • Upon execution, a Python module object is created from the source text. As a result, further attributes may be inserted automatically.
  • At every position in the system, the ppms module is made available automatically. If there is a code in the Value range field, the inspect module is imported additionally.

Python Path

Information

  • By default, the PYTHONPATH environment variable is set for the server by the respective start scripts.
  • After the server has started the Python interpreter, the startup.py, which further adjusts the path, will be imported.
  • The standard order configured by PLANTA is the following:
  1. py/distribution
  2. dlls
  3. dlls/python34.zip
  4. lib
  5. py
  6. py/pysrc
  7. py/distribution/site-packages
  8. py/api/ppms/wrapper/system
  9. py/api/ppms/wrapper
  10. py/api/ppms/customizing/venus
  11. py/api/ppms/server

Python IDs

Individual Python files

  • Individual files should be placed in their own directories under /py/<customer>

Logging

You can use logging calls to debug your Python code.

  • The logging is written to both the wrapper and session log file
  • To work with custom python packages they must reside in your /py/api/ folder
PY
import logging

logger = logging.getLogger(__name__)


def my_func(arg):
    logger.info('Custom func was called!')
    
    # ...

Customizing API

NamespaceTopic
ppms.assignment_moduleGeneral assignment API
ppms.create_projectCreating projects
ppms.create_reportCreating reports
ppms.cu_accessCustomizer access
ppms.customizer.mailAPI for sending emails
ppms.debuggingDebugging Python code
ppms.dimmerClient-side dimmer
ppms.file_utilsUtilities for working with files
ppms.global_settingReading global settings
ppms.periodCreating period records
ppms.project_rightsProject rights
ppms.psp_elementsPSP elements
ppms.rightsGeneral rights API
ppms.sqlUilities for working with the database

ppms.user_interface

The ppms.user_interface package provides various helper functions that affect how the user interacts with the client.

ppms.interface

The ppms.interface package contains the PLANTA link API.

Server API

NamespaceContent
ppms.text_constantUsing text constants
planta_logging.loggingPLANTA Server Logging

ppms.migration

The ppms.migration package implements the migration framework and provides the base classes for writing new migration packets.

Related Topics

The API style guide can be found (in German) in the topic PythonApiStyleGuide

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.