-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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 Namensp5lib(vergleichbar mitpip install PyYAML→import yaml).
-
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:
SP5Databasebü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).
| 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.
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.
| 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 |
| 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).
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.
Home — Startseite
- Installation — PyPI, Git, Docker
-
CLI — Das
sp5lib-Kommando
- Datenbankformat — DBF/CDX aus Nutzersicht
- Berechnungen — Soll/Ist, Konten, Zuschläge
-
ORM-und-Sync — SQLAlchemy-Spiegel &
sync_all
-
API-Referenz —
SP5Database& Module
- Entwicklung — Setup, Tests, Repo-Verbund