38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Plugin-Adapter für den Tandoor-AI-Webimport.
|
|
|
|
Das Original ist bereits eine FastAPI-Anwendung (app/main.py) und wird
|
|
unverändert übernommen. Hier passiert nur zweierlei:
|
|
|
|
* DATA_DIR zeigt auf data/tandoor-ai-import/ (dort landen die runs/),
|
|
* das Paket wird unter eindeutigem Namen geladen, damit sich sein Modul
|
|
"app" nicht mit gleichnamigen Modulen anderer Plugins beißt.
|
|
|
|
Das Tool läuft dadurch weiterhin auch allein:
|
|
cd plugins/tandoor-ai-import && uvicorn app.main:app --port 8091
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
from core.loader import load_submodule
|
|
|
|
|
|
def create_app(ctx):
|
|
runs = ctx.data_dir / "runs"
|
|
runs.mkdir(parents=True, exist_ok=True)
|
|
|
|
# storage.py liest DATA_DIR beim Import.
|
|
previous = os.environ.get("DATA_DIR")
|
|
os.environ["DATA_DIR"] = str(ctx.data_dir)
|
|
try:
|
|
main = load_submodule(ctx.path("app"), f"btp_{ctx.id.replace('-', '_')}", "main")
|
|
finally:
|
|
if previous is None:
|
|
os.environ.pop("DATA_DIR", None)
|
|
else:
|
|
os.environ["DATA_DIR"] = previous
|
|
|
|
return main.app
|