Skip to content

Commit b20fd95

Browse files
feat: add CLI entry point for praisonai_platform
- Added __main__.py with argparse-based CLI - Support for --host, --port, --reload flags - Uses uvicorn with factory=True for app creation - Proper error handling for missing dependencies - Enables 'python -m praisonai_platform' usage Fixes #1375 Co-authored-by: MervinPraison <MervinPraison@users.noreply.github.com>
1 parent d76b56e commit b20fd95

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
"""CLI entry point for PraisonAI Platform server.
2+
3+
Usage:
4+
python -m praisonai_platform
5+
python -m praisonai_platform --port 9000 --reload
6+
python -m praisonai_platform --host 127.0.0.1 --port 8080
7+
"""
8+
9+
import argparse
10+
import sys
11+
12+
13+
def main() -> None:
14+
"""Main entry point for the CLI."""
15+
parser = argparse.ArgumentParser(
16+
description="Start the PraisonAI Platform server",
17+
prog="python -m praisonai_platform"
18+
)
19+
parser.add_argument(
20+
"--host",
21+
default="0.0.0.0",
22+
help="Host to bind the server to (default: 0.0.0.0)"
23+
)
24+
parser.add_argument(
25+
"--port",
26+
type=int,
27+
default=8000,
28+
help="Port to bind the server to (default: 8000)"
29+
)
30+
parser.add_argument(
31+
"--reload",
32+
action="store_true",
33+
help="Enable auto-reload for development"
34+
)
35+
36+
args = parser.parse_args()
37+
38+
try:
39+
import uvicorn
40+
from praisonai_platform.api.app import create_app
41+
42+
uvicorn.run(
43+
"praisonai_platform.api.app:create_app",
44+
host=args.host,
45+
port=args.port,
46+
reload=args.reload,
47+
factory=True
48+
)
49+
except ImportError as e:
50+
print(f"Error: Missing required dependency: {e}", file=sys.stderr)
51+
print("Please install uvicorn: pip install uvicorn", file=sys.stderr)
52+
sys.exit(1)
53+
except Exception as e:
54+
print(f"Error starting server: {e}", file=sys.stderr)
55+
sys.exit(1)
56+
57+
58+
if __name__ == "__main__":
59+
main()

0 commit comments

Comments
 (0)