File size: 1,556 Bytes
af894e0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python3
"""Export a DrugOps session to CreaDrug24 case pack."""
from __future__ import annotations

import argparse
import json
import sys
from pathlib import Path

UI = Path(__file__).resolve().parents[1]
if str(UI) not in sys.path:
    sys.path.insert(0, str(UI))

from molgate_ui.creadrug_export import export_session_to_creadrug
from molgate_ui.paths import load_env_file


def main() -> int:
    load_env_file()
    ap = argparse.ArgumentParser(description="Export DrugOps session → CreaDrug24 case")
    ap.add_argument("session_id", help="16-char session id")
    ap.add_argument("--case-id", help="CreaDrug case id (default M{drug_id} or M_{session8})")
    ap.add_argument("--no-overwrite", action="store_true", help="fail if case dir exists")
    ap.add_argument("--json", action="store_true", help="print JSON result")
    args = ap.parse_args()

    result = export_session_to_creadrug(
        args.session_id,
        case_id=args.case_id,
        overwrite=not args.no_overwrite,
    )
    if args.json:
        print(json.dumps(result, indent=2, ensure_ascii=False))
    elif result.get("ok"):
        print(f"OK  case={result['case_id']}")
        print(f"    dir={result['case_dir']}")
        print(f"    registry={result['registry']}")
        print("Next: push CreaDrug24 to stromapath, open showboard with ?case=" + result["case_id"])
    else:
        print(f"FAIL  {result.get('error', 'unknown')}", file=sys.stderr)
    return 0 if result.get("ok") else 1


if __name__ == "__main__":
    raise SystemExit(main())