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"]
|