nice_gui.py 639 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env python3
  2. import justpy as jp
  3. from starlette.applications import Starlette
  4. import uvicorn
  5. import inspect
  6. wp = jp.WebPage(delete_flag=False)
  7. jp.justpy(lambda: wp, start_server=False)
  8. class Ui(Starlette):
  9. def label(self, text):
  10. jp.Div(text=text, a=wp)
  11. def run(self):
  12. # NOTE: prevent reloader to restart uvicorn
  13. if inspect.stack()[-2].filename.endswith('spawn.py'):
  14. return
  15. uvicorn.run('nice_gui:ui', host='0.0.0.0', port=80, lifespan='on', reload=True)
  16. # NOTE: instantiate our own ui object with all capabilities of jp.app
  17. ui = Ui()
  18. ui.__dict__.update(jp.app.__dict__)