chore: initial import
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Plugin-Adapter für den Trainings-Session-Tracker."""
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
from a2wsgi import WSGIMiddleware
|
||||
from core.loader import load_module
|
||||
|
||||
|
||||
def create_app(ctx):
|
||||
"""Hängt die Flask-App unter /plugins/trainingstracker ein.
|
||||
|
||||
Es werden ausschließlich Pfade relativ zum boehmitools-Datenordner benutzt:
|
||||
data/trainingsplan/plans (nur lesen)
|
||||
data/trainingstracker/sessions (Sessiondaten schreiben)
|
||||
data/trainingstracker/analyses (Prompts, Antworten, Cache und Jobstatus)
|
||||
"""
|
||||
tracker_data_dir = Path(ctx.data_dir)
|
||||
plans_dir = tracker_data_dir.parent / "trainingsplan" / "plans"
|
||||
|
||||
previous_data = os.environ.get("TRAININGSTRACKER_DATA_DIR")
|
||||
previous_plans = os.environ.get("TRAININGSTRACKER_PLANS_DIR")
|
||||
os.environ["TRAININGSTRACKER_DATA_DIR"] = str(tracker_data_dir)
|
||||
os.environ["TRAININGSTRACKER_PLANS_DIR"] = str(plans_dir)
|
||||
try:
|
||||
module = load_module(ctx.path("app.py"), f"btp_{ctx.id}_app")
|
||||
finally:
|
||||
if previous_data is None:
|
||||
os.environ.pop("TRAININGSTRACKER_DATA_DIR", None)
|
||||
else:
|
||||
os.environ["TRAININGSTRACKER_DATA_DIR"] = previous_data
|
||||
if previous_plans is None:
|
||||
os.environ.pop("TRAININGSTRACKER_PLANS_DIR", None)
|
||||
else:
|
||||
os.environ["TRAININGSTRACKER_PLANS_DIR"] = previous_plans
|
||||
|
||||
return WSGIMiddleware(module.app)
|
||||
Reference in New Issue
Block a user