Spaces:
Running
Running
Download matter/cli.py from Babu09/MEIDNet-Matter: direct link, hf CLI and curl.
- Browser
- Download file 3.07 kB
-
https://huggingface.co/spaces/Babu09/MEIDNet-Matter/resolve/main/matter/cli.py
- Command line
-
hf download hf://spaces/Babu09/MEIDNet-Matter/matter/cli.py
-
curl -L -o cli.py https://huggingface.co/spaces/Babu09/MEIDNet-Matter/resolve/main/matter/cli.py
3.07 kB
| """ | |
| meidnet-matter: the command line of MEIDNet Matter. | |
| meidnet-matter serve [--host 127.0.0.1] [--port 8000] [--public] [--reload] | |
| meidnet-matter version | |
| meidnet-matter build-demo --data-dir data/perov5 --out examples/perov5 [--model ID=PATH ...] | |
| Paths and limits come from the environment (see matter/settings.py); the flags of `serve` override MATTER_PUBLIC, | |
| MATTER_RUN_ROOT, MATTER_CHECKPOINTS_DIR, MATTER_DEMO_DIR and MATTER_STATIC_DIR for that process. | |
| """ | |
| from __future__ import annotations | |
| import argparse | |
| import json | |
| import os | |
| import sys | |
| def cmd_serve(a): | |
| import uvicorn | |
| for flag, var in (("public", "MATTER_PUBLIC"), ("run_root", "MATTER_RUN_ROOT"), ("checkpoints", "MATTER_CHECKPOINTS_DIR"), | |
| ("demo_dir", "MATTER_DEMO_DIR"), ("static_dir", "MATTER_STATIC_DIR")): | |
| v = getattr(a, flag) | |
| if v not in (None, False): | |
| os.environ[var] = "1" if v is True else str(v) | |
| uvicorn.run("matter.app:app", host=a.host, port=a.port, reload=a.reload, workers=1, log_level="info") | |
| def cmd_version(a): | |
| from matter.settings import Settings | |
| from matter.version import build_info | |
| s = Settings.from_env() | |
| print(json.dumps(build_info(s.build_info, s.public), indent=1)) | |
| def cmd_build_demo(a): | |
| from matter.demo_build import build | |
| models = dict(m.split("=", 1) for m in a.model) | |
| build(a.data_dir, models, a.out, skip_recoverability=a.skip_recoverability, limit=a.limit) | |
| def main(argv=None): | |
| p = argparse.ArgumentParser(prog="meidnet-matter", description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) | |
| sub = p.add_subparsers(dest="cmd", required=True) | |
| s = sub.add_parser("serve", help="run the API and the web app") | |
| s.add_argument("--host", default="127.0.0.1") | |
| s.add_argument("--port", type=int, default=8000) | |
| s.add_argument("--public", action="store_true", help="shared-host mode: capped budgets, sessions, masked errors") | |
| s.add_argument("--reload", action="store_true") | |
| s.add_argument("--run-root", dest="run_root", default=None) | |
| s.add_argument("--checkpoints", default=None, help="folder with the model files") | |
| s.add_argument("--demo-dir", dest="demo_dir", default=None) | |
| s.add_argument("--static-dir", dest="static_dir", default=None) | |
| s.set_defaults(fn=cmd_serve) | |
| v = sub.add_parser("version", help="print what would run, as JSON") | |
| v.set_defaults(fn=cmd_version) | |
| b = sub.add_parser("build-demo", help="write the demo project's artefacts from the Perov-5 CSVs and a checkpoint") | |
| b.add_argument("--data-dir", required=True) | |
| b.add_argument("--out", required=True) | |
| b.add_argument("--model", action="append", default=[], metavar="ID=PATH", help="a model to include (repeatable)") | |
| b.add_argument("--skip-recoverability", action="store_true") | |
| b.add_argument("--limit", type=int, default=None, help="only the first N rows of each split (a smoke test)") | |
| b.set_defaults(fn=cmd_build_demo) | |
| a = p.parse_args(argv) | |
| a.fn(a) | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |