Skip to content

Installation

Matthias Schabhüttl edited this page Jun 12, 2026 · 2 revisions

Installation

Voraussetzungen

  • 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.

PyPI (empfohlen)

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 SP5Database

CLI-Verfügbarkeit

Das 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 --help

Docker: CLI-Image

Die 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.db

Alternativ ü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 5

Alle Kommandos und Optionen: CLI.

Docker: Test-Image

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:test

Mehr zur lokalen Entwicklungsumgebung: Entwicklung.

Abhängigkeiten

Art Pakete
Laufzeit SQLAlchemy>=2.0, alembic, bcrypt, pyotp, packaging
Extra postgres psycopg2-binary (PostgreSQL-Backend)
Extra dev pytest, pytest-cov, ruff

Verwendung in den Schwesterprojekten

Die Bibliothek wird von beiden Schwester-Repositories als reguläre Abhängigkeit eingebunden:

Für die gemeinsame Entwicklung aller drei Repos (editierbare ../-Installationen) siehe Entwicklung.

libopenschichtplaner5 v1.7.0

Home — Startseite


Einstieg

Konzepte

Referenz

Mitwirken


Verwandte Wikis

Links

Clone this wiki locally