From b77fbc9b906adb4bd08756b11594093114e270cf Mon Sep 17 00:00:00 2001 From: Tim Lorsbach Date: Mon, 6 Jul 2026 15:44:23 +0200 Subject: [PATCH] implemented non persistent --- epdb/legacy_api.py | 28 ++++++++++++++++++++++++++++ epdb/logic.py | 6 ++++++ 2 files changed, 34 insertions(+) diff --git a/epdb/legacy_api.py b/epdb/legacy_api.py index 21336b18..79c87011 100644 --- a/epdb/legacy_api.py +++ b/epdb/legacy_api.py @@ -2392,3 +2392,31 @@ def get_setting(request, setting_uuid): return 403, { "message": f"Getting Setting with id {setting_uuid} failed due to insufficient rights!" } + + +######## +# Util # +######## +class NonPersistent(Schema): + smiles: str + setting_url: str = Field(..., alias="settingUri") + + +@router.post("/util", response={200: Any, 403: Error}) +def predict(request, np: Form[NonPersistent]): + try: + print(request.user) + print(np.setting_url) + setting = SettingManager.get_setting_by_url(request.user, np.setting_url) + + from epdb.logic import SPathway + + spw = SPathway(prediction_setting=setting, root_nodes=[np.smiles]) + spw.predict() + + return spw.to_json() + + except ValueError: + return 403, { + "message": f"Getting Setting with id {np.setting_url} failed due to insufficient rights!" + } diff --git a/epdb/logic.py b/epdb/logic.py index 4fb164a9..987a7dac 100644 --- a/epdb/logic.py +++ b/epdb/logic.py @@ -1896,6 +1896,12 @@ class SPathway(object): "to": to_indices, } + if edge.rule: + e["rule"] = edge.rule.simple_json() + + if edge.probability: + e["probability"] = edge.probability + edges.append(e) return {