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())
|