-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
-
Python ≥ 3.10 (das Paket ist typisiert,
py.typed/ PEP 561). - Für Schreibzugriffe auf DBF-Dateien wird POSIX-Datei-Locking (
fcntl.flock) verwendet — der Schreibpfad setzt daher Linux oder macOS voraus. Reines Lesen funktioniert plattformunabhängig.
Releases werden auf PyPI veröffentlicht:
pip install libopenschichtplaner5
# mit optionalem PostgreSQL-Backend (psycopg2-binary):
pip install "libopenschichtplaner5[postgres]"Importiert wird das Paket als sp5lib:
from sp5lib.database import SP5DatabaseDas CLI (sp5lib-Kommando) ist noch nicht im PyPI-Release 1.7.0 enthalten —
es liegt bereits auf main und ist ab dem nächsten Release Teil des PyPI-Pakets.
Bis dahin lässt es sich direkt aus Git installieren:
pip install "libopenschichtplaner5 @ git+https://github.com/mschabhuettl/libopenschichtplaner5.git"
sp5lib --helpDie Default-Stage des mitgelieferten Dockerfile baut ein schlankes, als Non-Root-User
laufendes CLI-Image mit ENTRYPOINT ["sp5lib"] — es wird kein lokales Python benötigt:
git clone https://github.com/mschabhuettl/libopenschichtplaner5.git
cd libopenschichtplaner5
docker build -t libopenschichtplaner5 .
# Beispiele (Datenverzeichnis read-only einhängen):
docker run --rm -v /pfad/zu/SP5/Daten:/data:ro libopenschichtplaner5 info /data
docker run --rm -v /pfad/zu/SP5/Daten:/data:ro libopenschichtplaner5 dump /data 5EMPL --limit 5
docker run --rm -v /pfad/zu/SP5/Daten:/data -v "$PWD":/out \
libopenschichtplaner5 sync /data --target sqlite:/out/sp5.dbAlternativ über Docker Compose (Service tools, Datenpfad via SP5_DB_DIR):
SP5_DB_DIR=/pfad/zu/SP5/Daten docker compose run --rm tools info /data
docker compose run --rm tools dump /data 5EMPL --limit 5Alle Kommandos und Optionen: CLI.
Die Stage test des Dockerfile stellt eine reproduzierbare Lint- und Testumgebung
bereit (python:3.12-slim, führt ruff check . und pytest aus):
docker compose run --rm test
# gleichwertig:
docker build --target test -t libopenschichtplaner5:test . && docker run --rm libopenschichtplaner5:testMehr zur lokalen Entwicklungsumgebung: Entwicklung.
| Art | Pakete |
|---|---|
| Laufzeit |
SQLAlchemy>=2.0, alembic, bcrypt, pyotp, packaging
|
Extra postgres
|
psycopg2-binary (PostgreSQL-Backend) |
Extra dev
|
pytest, pytest-cov, ruff
|
Die Bibliothek wird von beiden Schwester-Repositories als reguläre Abhängigkeit eingebunden:
-
openschichtplaner5-api
deklariert
libopenschichtplaner5[postgres]>=1.7.0(API-Wiki). -
openschichtplaner5 (App)
hängt zusätzlich direkt von der Bibliothek ab, da App-Skripte
sp5libselbst importieren (App-Wiki).
Für die gemeinsame Entwicklung aller drei Repos (editierbare ../-Installationen)
siehe Entwicklung.
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