__init__.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """ Python Server entry point """
  2. import argparse
  3. import logging
  4. import os
  5. import sys
  6. from .server import __version__, serve, start, status, stop, wait, widget
  7. __all__ = ["start", "stop", "status", "wait", "serve", "widget", "__version__"]
  8. def main():
  9. """ main entry point """
  10. parser = argparse.ArgumentParser(description=
  11. "Viewer for neural network, deep learning and machine learning models.")
  12. parser.add_argument("file",
  13. metavar="MODEL_FILE", help="model file to serve", nargs="?", default=None)
  14. parser.add_argument("-b", "--browse",
  15. help="launch web browser", action="store_true")
  16. parser.add_argument("-p", "--port", help="port to serve", type=int)
  17. parser.add_argument("--host",
  18. metavar="ADDR", help="host to serve", default="localhost")
  19. parser.add_argument("--verbosity",
  20. metavar="LEVEL", help="log verbosity (quiet, default, debug)",
  21. choices=[ "quiet", "debug", "default" ], default="default")
  22. parser.add_argument("--version", help="print version", action="store_true")
  23. args = parser.parse_args()
  24. levels = {
  25. "quiet": logging.CRITICAL,
  26. "default": logging.INFO,
  27. "debug": logging.DEBUG,
  28. }
  29. logging.basicConfig(level=levels[args.verbosity], format="%(message)s")
  30. logger = logging.getLogger(__name__)
  31. if args.file and not os.path.exists(args.file):
  32. logger.error(f"Model file '{args.file}' does not exist.")
  33. sys.exit(2)
  34. if args.version:
  35. logger.info(__version__)
  36. sys.exit(0)
  37. address = (args.host, args.port) if args.host else args.port if args.port else None
  38. start(args.file, address=address, browse=args.browse)
  39. wait()
  40. sys.exit(0)
  41. if __name__ == "__main__":
  42. main()