__init__.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from ..errors import MissingRequirementsError
  2. try:
  3. from .server.website import Website
  4. from .server.backend_api import Backend_Api
  5. from .server.app import create_app
  6. import_error = None
  7. except ImportError as e:
  8. import_error = e
  9. def get_gui_app(demo: bool = False, api: bool = False):
  10. if import_error is not None:
  11. raise MissingRequirementsError(f'Install "gui" requirements | pip install -U g4f[gui]\n{import_error}')
  12. app = create_app()
  13. app.demo = demo
  14. app.api = api
  15. site = Website(app)
  16. for route in site.routes:
  17. app.add_url_rule(
  18. route,
  19. view_func=site.routes[route]['function'],
  20. methods=site.routes[route]['methods'],
  21. )
  22. backend_api = Backend_Api(app)
  23. for route in backend_api.routes:
  24. app.add_url_rule(
  25. route,
  26. view_func = backend_api.routes[route]['function'],
  27. methods = backend_api.routes[route]['methods'],
  28. )
  29. return app
  30. def run_gui(host: str = '0.0.0.0', port: int = 8080, debug: bool = False) -> None:
  31. config = {
  32. 'host' : host,
  33. 'port' : port,
  34. 'debug': debug
  35. }
  36. app = get_gui_app()
  37. print(f"Running on port {config['port']}")
  38. app.run(**config)
  39. print(f"Closing port {config['port']}")