SJI - Eine einfache Python-Bibliothek für Job-Initialisierung
Project description
SJI
Eine einfache Python-Bibliothek für die Initialisierung von Jobs/Skripten (Logging, Konfiguration, Ordnerstruktur).
Installation
pip install sji
Verwendung
from sji import SimpleJobInit, get_script_version
# __file__ an SimpleJobInit übergeben
sji = SimpleJobInit(__file__)
# Logger verwenden
sji.logger.info("Starte Job...")
# Konfiguration lesen (INI)
cfg = sji.config
value = cfg.get('section', 'key', fallback='default')
# Persistente Datei-Pfade erhalten
csv_path = sji.get_persistent_file_path('csv')
# Temporäre Datei-Pfade erhalten
tmp_path = sji.get_tmp_file_path('work.tmp')
# Versionen ermitteln
sji.logger.info(f"script_version={sji.get_job_script_version(include_git_tag=True)}")
sji.logger.info(f"config_file_hash={sji.get_config_file_hash()}")
sji.logger.info(f"config_file_version={sji.get_config_file_version()}")
# Top-Level-Funktion (unabhängig von der Klasse):
script_version = get_script_version(__file__, include_git_tag=True)
# Konfiguration mit Maskierung loggen
sji.log_config(secret_fields=["password", "db_password", "api_key", "token"])
Dabei werden automatisch erzeugt/genutzt:
- logs/.log (mit optionaler Rotation)
- tmp/ Verzeichnis
- .config.ini für Einstellungen
Minimalbeispiel für die INI-Datei
Datei: <skriptname>.config.ini im selben Verzeichnis wie das Skript
[logging]
level = INFO
log_rotation_when = midnight
log_rotation_backup_count = 7
[section]
key = some-value
API
Klasse: SimpleJobInit
SimpleJobInit(script_file_path: str)- Initialisiert Logging, lädt/prüft INI-Config, erzeugt Ordner (logs, tmp)
- Eigenschaften
logger: konfigurierterlogging.Loggerconfig:configparser.ConfigParser
- Methoden
get_tmp_file_path(file_name: str) -> str: Pfad imtmp/-Verzeichnisget_persistent_file_path(file_ending: str) -> str: Pfad<skriptname>.<file_ending>get_job_script_version(include_git_tag: bool = False) -> str: ermittelt Skriptversion (Git/FS)get_config_file_hash() -> str: SHA-256 Hash der INI-Dateiget_config_file_version() -> str:cfg_<UTC-Zeit>_<sha256>basierend auf Datei-mtime und Hashlog_config(secret_fields) -> None: loggt INI-Inhalt, maskiert definierte Felder (case-insensitive)get_postgres_sqlalchemy_engine(db_config): baut SQLAlchemy-Engine aus INI-Werten
Top-Level-Funktion
get_script_version(script_file_path: str, include_git_tag: bool = False) -> str- Wie
get_job_script_version, aber als freie Funktion für eigenständige Nutzung
- Wie
Lizenz
MIT-Lizenz - siehe LICENSE für Details.
- Project build with support of AI (Cursor IDE).
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sji-0.2.1.tar.gz.
File metadata
- Download URL: sji-0.2.1.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7328f64259059b65f967636ef8463a52e69b8fbaea8dafeeff2ef9bf2caf4f50
|
|
| MD5 |
7ecf4c235f283ff767e8c2f1e8f2e748
|
|
| BLAKE2b-256 |
f507f496234c877e188d4d2dbc8e89de580d67f718f1dda1a16f69eda36473a9
|
File details
Details for the file sji-0.2.1-py3-none-any.whl.
File metadata
- Download URL: sji-0.2.1-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79c500f1597ab1cea4ba45bcf98381a3d002e346d2a91989c13a8159d0b44f41
|
|
| MD5 |
81202a3459116cfee89ff8d588f0d24d
|
|
| BLAKE2b-256 |
3ef4c3b3e7067845c1e67e344631cb4dc0c2af59da339b637c7aeb716c821b81
|