Skip to main content

Python Library that implements the BO4E Standard.

Project description

PyPi license code style PyPI pyversions

🇩🇪 Dies ist eine BO4E Referenz-Implementierung in Python. Gleichzeitig ist dieses Repository der Ort, um Fragen und Erweiterungen des BO4E-Standards zu diskutieren.

🇬🇧 This is a Python library that implements Business Objects for Energy BO4E.

Grundsätzliche Überlegungen

Pflichtfelder (nicht nullable Attributes)

Der BO4E Standard soll (in Zukunft, Stand 2023-10-05) keine fachlichen Pflichtfelder mehr enthalten. Die Entscheidung, was in welchen Fällen ein Pflichtfeld ist, obliegt den Anwendungen, die den Standard nutzen. Entsprechend ist auch die Validierung der Pflichtfelder nicht Teil des BO4E Standards sondern anwendungsspezifisch. Davon sind auch technische Pflichtfelder, namentlich _typ und _version nicht ausgenommen. Ob sie anzugeben sind, entscheidet die Anwendung. BO4E gibt sinnvolle Datenstrukturen vor, wie diese in der Praxis genutzt werden können und wollen wir aber nicht vorschreiben.

Verweise zwischen Objekten

Viele Objekte verweisen aufeinander und sind miteinander verknüpft. Dabei sind unsere Designentscheidungen:

  • Alle Verweise sind optional.

  • Verweise sind, wo sie naheliegend sind, im BO4E Standard vordefiniert (z.B. 1 Messlokation hat n Zähler).

  • Aber wir haben nicht jede theoretisch denkbare Verweise implementiert (z.B. allein dass User Zähler unter Angabe einer Email-Adresse suchen können, heißt nicht, dass der Zähler eine optionale Eigenschaft emailAdresse haben muss.)

  • Generell sollen Verweise zwischen zwei BOs bi-direktional sein, zwischen BOs und COMs aber nur unidirektional (z.B. soll jeder Zähler wissen zu welcher Messlokation er gehört aber eine Adresse muss nicht wissen, welchem Geschäftspartner, welcher Messlokation oder welcher Rechnung sie zugeordnet ist).

  • COMs können zwar weitere COMs beinhalten, jedoch sollte dies nicht dafür genutzt werden von einem COM eines BOs auf das COM eines anderen BOs zu verweisen. Bsp.: Die Adresse in Ansprechpartner ist identisch zur Lokationsadresse in der Marktlokation. Dann sollen beide Adressen als vollständiges COM dargestellt werden, statt nur als Verweis von einer Adresse auf die andere.

  • Oder anders formuliert: wir können aus einem BO oder einem COM auf ein anderes BO verweisen.

Dokumentation / Fragen und Anregungen zum BO4E Datenmodell

Die Dokumentation ist verfügbar unter https://bo4e.github.io/BO4E-python/. Die Doku wird erst seit Version v202401.0.3 mittels GitHub Pages gehosted. Die früheren Versionen sind auf read the docs einsehbar.

Unter /latest findet sich die Dokumentation des aktuellen Stands des main-Branches. /stable zeigt immer auf die letzte veröffentlichte Version (Release candidates ausgeschlossen). Zusätzlich ist jede Version (inklusive Release candidates) unter /v<version> auffindbar.

Die Doku bietet eine Übersicht über alle Klassen und Attribute, die im BO4E Standard definiert sind. Außerdem werden alle Beziehungen zwischen den Klassen durch Diagramme visualisiert. Die JSON-Schemas sind ebenfalls verlinkt. Alternativ können die JSON-Schemas auch direkt von GitHub heruntergeladen werden: https://github.com/bo4e/BO4E-Schemas. Seit Version v202401.1.1 gibt es zusätzlich eine Kompatibilitätsmatrix, die für jedes Objekt zeigt, zwischen welchen Versionen es einen “breaking change” gab.

Bei Fragen oder Anregungen, bitte einfach ein Issue in diesem Repo aufmachen.

Code Beiträge

Änderungsvorschläge (sowohl an das Datenmodell als auch an die Implementierung in Python) können direkt als Code in Form von Pull Requests eingereicht werden. Details dazu finden sich im Contribution Guide.

Nutzung als Python Library

In Python kann diese Library als Paket installiert werden:

pip install bo4e

Andere nennenswerte BO4E Implementierungen

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bo4e-202501.0.0.tar.gz (148.9 kB view details)

Uploaded Source

Built Distribution

bo4e-202501.0.0-py3-none-any.whl (171.1 kB view details)

Uploaded Python 3

File details

Details for the file bo4e-202501.0.0.tar.gz.

File metadata

  • Download URL: bo4e-202501.0.0.tar.gz
  • Upload date:
  • Size: 148.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bo4e-202501.0.0.tar.gz
Algorithm Hash digest
SHA256 c736c07bdf7bff708c61848699b1c8d990a3864249b2dea5a1dcdc137eca9c77
MD5 fe3b663c9c84d49059b7b5a32c297dd5
BLAKE2b-256 3be24a4099fb67e2d24ffbc388792ff4c62d74900dc3f2d0b200bcb299255fcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for bo4e-202501.0.0.tar.gz:

Publisher: python-publish.yml on bo4e/BO4E-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bo4e-202501.0.0-py3-none-any.whl.

File metadata

  • Download URL: bo4e-202501.0.0-py3-none-any.whl
  • Upload date:
  • Size: 171.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bo4e-202501.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d747139c6f5e1121f495658039fccecade155d25ab71f6200e9885a100f44df
MD5 19a7f9689dfccb0f3425d40e275ae6f2
BLAKE2b-256 a386740a7940d360f972f4821dbdaf0ee66c1031eb3726468c9817ffa84f5b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for bo4e-202501.0.0-py3-none-any.whl:

Publisher: python-publish.yml on bo4e/BO4E-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page