-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart.py
More file actions
56 lines (44 loc) · 1.31 KB
/
Copy pathstart.py
File metadata and controls
56 lines (44 loc) · 1.31 KB
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
47
48
49
50
51
52
53
54
55
56
from __future__ import annotations
import argparse
import asyncio
import sys
from pathlib import Path
try:
from api_aggregator import APICoreApp
except ModuleNotFoundError:
# Fallback for source tree runs without editable install.
sys.path.insert(0, str(Path(__file__).parent / "src"))
from api_aggregator import APICoreApp
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Start api-aggregator runtime.")
parser.add_argument(
"--dashboard-host",
default="0.0.0.0",
help="Dashboard bind host (default: 0.0.0.0).",
)
parser.add_argument(
"--dashboard-port",
type=int,
default=4141,
help="Dashboard port (default: 4141).",
)
parser.add_argument(
"--no-dashboard",
action="store_true",
help="Disable dashboard server.",
)
return parser.parse_args()
async def amain() -> None:
args = parse_args()
app = APICoreApp()
app.cfg.dashboard.host = args.dashboard_host
app.cfg.dashboard.port = args.dashboard_port
if args.no_dashboard:
app.cfg.dashboard.enabled = False
app.dashboard_enabled = False
app.dashboard = None
await app.run_forever()
def main() -> None:
asyncio.run(amain())
if __name__ == "__main__":
main()