| |
| """AccessPath command-line entry point for the full 2D/3D pipeline.""" |
|
|
| from __future__ import annotations |
|
|
| import argparse |
| import subprocess |
| import sys |
| from pathlib import Path |
|
|
|
|
| ROOT = Path(__file__).resolve().parent |
| TOOLS = { |
| "2d": ROOT / "tools" / "accessibility_2d_completion.py", |
| "3d": ROOT / "tools" / "accessibility_3d_completion.py", |
| } |
|
|
|
|
| def main() -> int: |
| parser = argparse.ArgumentParser( |
| description="Run the AccessPath pipeline or one of its completion backends." |
| ) |
| parser.add_argument( |
| "mode", |
| choices=("pipeline", *TOOLS), |
| help="Full Slurm pipeline, or a direct 2D/3D backend.", |
| ) |
| parser.add_argument( |
| "args", |
| nargs=argparse.REMAINDER, |
| help="Arguments forwarded to the selected backend; prefix them with --.", |
| ) |
| parsed = parser.parse_args() |
| forwarded = parsed.args[1:] if parsed.args[:1] == ["--"] else parsed.args |
| if parsed.mode == "pipeline": |
| from accesspath3r.cli import main as pipeline_main |
|
|
| sys.argv = [str(ROOT / "accesspath.py"), *forwarded] |
| return pipeline_main() |
| return subprocess.run([sys.executable, str(TOOLS[parsed.mode]), *forwarded], check=False).returncode |
|
|
|
|
| if __name__ == "__main__": |
| raise SystemExit(main()) |
|
|