|
|
import argparse |
|
|
import sys |
|
|
import subprocess |
|
|
from pathlib import Path |
|
|
|
|
|
|
|
|
def run_basic_demo() -> None: |
|
|
""" |
|
|
Run the basic usage example (examples/01_basic_usage.py). |
|
|
""" |
|
|
|
|
|
project_root = Path(__file__).resolve().parents[1] |
|
|
examples_dir = project_root / "examples" |
|
|
script = examples_dir / "01_basic_usage.py" |
|
|
|
|
|
script = project_root / "examples" / "01_basic_usage.py" |
|
|
print(f"[GeoBot CLI] Running basic demo: {script}") |
|
|
sys.exit( |
|
|
subprocess.run([sys.executable, str(script)], check=False).returncode |
|
|
) |
|
|
|
|
|
def run_taiwan_situation_room() -> None: |
|
|
project_root = Path(__file__).resolve().parents[1] |
|
|
script = project_root / "examples" / "taiwan_situation_room.py" |
|
|
|
|
|
if not script.exists(): |
|
|
print(f"[GeoBot CLI] Taiwan demo script not found at: {script}") |
|
|
sys.exit(1) |
|
|
|
|
|
print(f"[GeoBot CLI] Launching Taiwan Situation Room: {script}") |
|
|
sys.exit(subprocess.run([sys.executable, str(script)], check=False).returncode) |
|
|
|
|
|
|
|
|
def main() -> None: |
|
|
import subprocess |
|
|
|
|
|
parser = argparse.ArgumentParser( |
|
|
prog="geobot", |
|
|
description="GeoBotv1 CLI - Geopolitical forecasting demos", |
|
|
) |
|
|
subparsers = parser.add_subparsers(dest="command", required=True) |
|
|
|
|
|
|
|
|
p_forecast = subparsers.add_parser( |
|
|
"forecast", help="Run a forecasting demo scenario" |
|
|
) |
|
|
p_forecast.add_argument( |
|
|
"--scenario", |
|
|
type=str, |
|
|
default="basic", |
|
|
help="Scenario name (e.g. 'basic', 'taiwan')", |
|
|
) |
|
|
|
|
|
args = parser.parse_args() |
|
|
|
|
|
if args.command == "forecast": |
|
|
scenario = (args.scenario or "").lower() |
|
|
if scenario == "taiwan": |
|
|
run_taiwan_situation_room() |
|
|
else: |
|
|
run_basic_demo() |
|
|
else: |
|
|
parser.print_help() |
|
|
|