Files
wehub-resource-sync 7254f7b4d1
Build / Build (macos-latest) (push) Has been cancelled
Build / Build (ubuntu-latest) (push) Has been cancelled
Build / Build (windows-latest) (push) Has been cancelled
Build / Analyze (javascript) (push) Has been cancelled
Build / Analyze (python) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:37:45 +08:00

48 lines
1.7 KiB
Python

""" Python Server entry point """
import argparse
import logging
import os
import sys
from .server import __version__, serve, start, status, stop, wait, widget
__all__ = ["start", "stop", "status", "wait", "serve", "widget", "__version__"]
def main():
""" main entry point """
parser = argparse.ArgumentParser(description=
"Viewer for neural network, deep learning and machine learning models.")
parser.add_argument("file",
metavar="MODEL_FILE", help="model file to serve", nargs="?", default=None)
parser.add_argument("-b", "--browse",
help="launch web browser", action="store_true")
parser.add_argument("-p", "--port", help="port to serve", type=int)
parser.add_argument("--host",
metavar="ADDR", help="host to serve", default="localhost")
parser.add_argument("--verbosity",
metavar="LEVEL", help="log verbosity (quiet, default, debug)",
choices=[ "quiet", "debug", "default" ], default="default")
parser.add_argument("--version", help="print version", action="store_true")
args = parser.parse_args()
levels = {
"quiet": logging.CRITICAL,
"default": logging.INFO,
"debug": logging.DEBUG,
}
logging.basicConfig(level=levels[args.verbosity], format="%(message)s")
logger = logging.getLogger(__name__)
if args.file and not os.path.exists(args.file):
logger.error(f"Model file '{args.file}' does not exist.")
sys.exit(2)
if args.version:
logger.info(__version__)
sys.exit(0)
address = (args.host, args.port) if args.host else args.port if args.port else None
start(args.file, address=address, browse=args.browse)
wait()
sys.exit(0)
if __name__ == "__main__":
main()