Files
PWF/Application/app.py

58 lines
1.5 KiB
Python
Raw Normal View History

2025-11-05 23:23:42 +08:00
from ..Convention.Runtime.Config import *
2025-11-07 23:47:33 +08:00
from ..Convention.Runtime.Architecture import Architecture
2025-11-05 16:21:05 +08:00
from ..Convention.Runtime.GlobalConfig import ProjectConfig, ConsoleFrontColor
2025-11-07 23:47:33 +08:00
Architecture.Register(ProjectConfig, ProjectConfig(), lambda: None)
from ..CoreModules.flags import set_internal_verbose
2025-11-05 16:21:05 +08:00
from .web import app
from argparse import ArgumentParser
from typing import *
import sys
2025-11-05 23:23:42 +08:00
try:
import uvicorn
except ImportError as ex:
ImportingThrow(ex, "Internal", ["uvicorn"])
2025-11-05 16:21:05 +08:00
def main() -> int:
2025-11-07 23:47:33 +08:00
config: ProjectConfig = Architecture.Get(ProjectConfig)
2025-11-05 16:21:05 +08:00
parser = ArgumentParser()
parser.add_argument("--host", type=str, default=config.FindItem("host", "0.0.0.0"))
parser.add_argument("--port", type=int, default=config.FindItem("port", 8000))
parser.add_argument("--verbose", type=bool, default=config.FindItem("verbose", False))
args = parser.parse_args()
config.SaveProperties()
if "help" in args:
parser.print_help()
return 0
# region Verbose
verbose = args.verbose
set_internal_verbose(verbose)
config.Log("Info", f"{ConsoleFrontColor.GREEN}Verbose: {verbose}{ConsoleFrontColor.RESET}")
# endregion Verbose
# region Server
host = args.host
port = args.port
config.Log("Info", f"{ConsoleFrontColor.GREEN}Server: {host}:{port}{ConsoleFrontColor.RESET}")
# endregion Server
uvicorn.run(app, host=host, port=port,
limit_concurrency=5,
log_level="info")
return 0
if __name__ == "__main__":
sys.exit(main())
__all__ = ["main"]