Skip to content
Matthias Schabhüttl edited this page Jun 12, 2026 · 3 revisions

libopenschichtplaner5 — Wiki

libopenschichtplaner5 ist die Kernbibliothek von OpenSchichtplaner5: ein pip-installierbares Python-Paket, das die originalen Schichtplaner5-Datenbankdateien (FoxPro/dBASE .DBF) liest und schreibt. Damit läuft der offene Ersatz auf exakt denselben Daten wie das proprietäre Windows-Programm — ohne Migration und ohne Datenverlust.

Import-Name: Die Distribution heißt libopenschichtplaner5, das importierbare Paket behält seinen historischen Namen sp5lib (vergleichbar mit pip install PyYAMLimport yaml).


Was die Bibliothek kann

  • DBF lesen: Pure-Python-Leser für die Originaltabellen — UTF-16-LE-Erkennung (auch nicht-lateinische Schriften), Kalender-validierte Datumsfelder, Binärfelder als bytes, fehlertolerant bei defekten Dateien. Details: Datenbankformat
  • DBF schreiben: Sicherer Schreiber mit exklusivem Datei-Lock, Rollback und byte-kompatiblem Encoding; interoperabel mit einem laufenden Original-Client über das -L-Änderungsjournal und CDX-Invalidierung. Details: Datenbankformat
  • Berechnungen: Zentrale, seiteneffektfreie Rechenschicht (sp5lib.calculations) für Soll-/Ist-Stunden, Saldo, Abwesenheits-Anrechnung, Urlaubskonten, Zuschläge, Personaltabelle, Bedarf/Auslastung und Zyklen-Expansion. Details: Berechnungen
  • High-Level-Fassade: SP5Database bündelt die DBF-Tabellen zu fachlichen Operationen — Stammdaten, Dienstplan, Konten, Statistiken, Benutzer/2FA u. v. m. Details: API-Referenz
  • SQLite/PostgreSQL: SQLAlchemy-2.0-ORM-Spiegel inklusive DBF→SQL-Sync (sync_all) und PostgreSQL-Fassade mit Berechnungs-Parität zum DBF-Backend. Details: ORM-und-Sync
  • CLI: Das sp5lib-Kommando für Standalone-Arbeit auf einem Datenverzeichnis — info, dump, validate, sync. Details: CLI
  • Querschnitt: Automatische Alembic-Migrationen (auto_migrate), SMTP-Benachrichtigungen (email_service), FoxPro-Farbkonvertierung (color_utils).

Versionsstand

Komponente Version Hinweis
libopenschichtplaner5 1.7.0 aktuelles Release auf PyPI
sp5lib-CLI unveröffentlicht bereits auf main, Bestandteil des nächsten Release — siehe CLI
openschichtplaner5-api 1.2.0 REST-API, konsumiert diese Bibliothek
OpenSchichtplaner5 (App) 1.2.0 Web-Anwendung (Frontend + Compose-Stack)

Alle Änderungen im Detail: CHANGELOG.


Schnellstart

pip install libopenschichtplaner5
# mit optionalem PostgreSQL-Backend:
pip install "libopenschichtplaner5[postgres]"
from sp5lib.database import SP5Database

db = SP5Database("/pfad/zu/SP5/Daten")        # Verzeichnis mit den 5*.DBF-Dateien
for emp in db.get_employees():
    print(emp["ID"], emp["NAME"], emp["FIRSTNAME"])

Low-Level-Zugriff ohne Fassade:

from sp5lib.dbf_reader import read_dbf
from sp5lib.dbf_writer import append_record, get_table_fields

rows   = read_dbf("/pfad/zu/SP5/Daten/5EMPL.DBF")
fields = get_table_fields("/pfad/zu/SP5/Daten/5NOTE.DBF")
append_record("/pfad/zu/SP5/Daten/5NOTE.DBF", fields, {"ID": 1, "TEXT": "Hallo"})

Mehr dazu: Installation und API-Referenz.


Alle Wiki-Seiten

Seite Inhalt
Installation PyPI, Git, Docker-CLI-Image, Test-Image, Abhängigkeiten
CLI sp5lib info / dump / validate / sync mit Beispielen
Datenbankformat DBF/CDX aus Nutzersicht: Tabellen, Kodierung, -L-Journal, Koexistenz mit dem Original-Client
Berechnungen Soll/Ist/Saldo, Urlaubskonto, Zuschläge, Zyklen — mit Code-Beispiel
ORM-und-Sync SQLAlchemy-Layer, Modelle, Repositories, sync_all, SQLite/PostgreSQL
API-Referenz Kurzüberblick: SP5Database-Methodengruppen und Module
Entwicklung venv, pytest, ruff, Dev-Workflow im Repo-Verbund

Verwandte Projekte

Projekt Rolle Wiki
openschichtplaner5 Web-App (Frontend, Compose-Stack) App-Wiki
openschichtplaner5-api REST-API (FastAPI, sp5api) API-Wiki
libopenschichtplaner5 Bibliothek (sp5lib) — dieses Wiki

Die drei Repositories werden als Geschwisterverzeichnisse entwickelt; die App und die API binden die Bibliothek als reguläre Abhängigkeit ein (Release-Pfad über PyPI, Entwicklung über editierbare Installationen — siehe Entwicklung).


Lizenz und Herkunft

MIT-Lizenz. Die Bibliothek wurde mit vollständiger Git-Historie aus dem Verzeichnis backend/sp5lib/ der App OpenSchichtplaner5 als eigenständiges Paket extrahiert.

Kein offizielles Produkt der RPS Planungssysteme GmbH. libopenschichtplaner5 ist Teil eines unabhängigen Open-Source-Projekts zur Kompatibilität mit dem Dateiformat des originalen Schichtplaner5.

libopenschichtplaner5 v1.7.0

Home — Startseite


Einstieg

Konzepte

Referenz

Mitwirken


Verwandte Wikis

Links

Clone this wiki locally