amachine.cli.up
1import webbrowser 2from pathlib import Path 3import threading 4import uvicorn 5 6 7def _open_browser(url: str, delay: float = 1.0): 8 def _open(): 9 import time 10 time.sleep(delay) 11 webbrowser.open(url) 12 threading.Thread(target=_open, daemon=True).start() 13 14def up( 15 experiments: Path, 16 host: str = "127.0.0.1", 17 port: int = 8000, 18 no_browser: bool = False, 19) -> None: 20 """Start the amachine analysis server.""" 21 experiments = experiments.resolve() 22 23 if not experiments.exists(): 24 raise SystemExit(f"Error: experiments directory not found: {experiments}") 25 26 from ..am_app.am_server import create_app 27 28 app = create_app(experiments) 29 30 if not no_browser: 31 _open_browser(f"http://{host}:{port}") 32 33 uvicorn.run(app, host=host, port=port) 34 35 36def main() -> None: 37 38 import argparse 39 40 parser = argparse.ArgumentParser(description="Start the amachine analysis server.") 41 parser.add_argument("experiments", type=Path, help="Path to experiments directory") 42 parser.add_argument("--host", default="127.0.0.1") 43 parser.add_argument("--port", type=int, default=8000) 44 parser.add_argument("--no-browser", action="store_true") 45 46 args = parser.parse_args() 47 up(args.experiments, args.host, args.port, args.no_browser) 48 49 50if __name__ == "__main__": 51 main()
def
up( experiments: pathlib.Path, host: str = '127.0.0.1', port: int = 8000, no_browser: bool = False) -> None:
15def up( 16 experiments: Path, 17 host: str = "127.0.0.1", 18 port: int = 8000, 19 no_browser: bool = False, 20) -> None: 21 """Start the amachine analysis server.""" 22 experiments = experiments.resolve() 23 24 if not experiments.exists(): 25 raise SystemExit(f"Error: experiments directory not found: {experiments}") 26 27 from ..am_app.am_server import create_app 28 29 app = create_app(experiments) 30 31 if not no_browser: 32 _open_browser(f"http://{host}:{port}") 33 34 uvicorn.run(app, host=host, port=port)
Start the amachine analysis server.
def
main() -> None:
37def main() -> None: 38 39 import argparse 40 41 parser = argparse.ArgumentParser(description="Start the amachine analysis server.") 42 parser.add_argument("experiments", type=Path, help="Path to experiments directory") 43 parser.add_argument("--host", default="127.0.0.1") 44 parser.add_argument("--port", type=int, default=8000) 45 parser.add_argument("--no-browser", action="store_true") 46 47 args = parser.parse_args() 48 up(args.experiments, args.host, args.port, args.no_browser)