from ..errors import MissingRequirementsError
try:
from .server.website import Website
from .server.backend_api import Backend_Api
from .server.app import create_app
import_error = None
except ImportError as e:
import_error = e
def get_gui_app(demo: bool = False, timeout: int = None, stream_timeout: int = None):
if import_error is not None:
raise MissingRequirementsError(
f'Install "gui" requirements | pip install -U g4f[gui]\n{import_error}'
)
app = create_app(False)
app.demo = demo
app.timeout = timeout
app.stream_timeout = stream_timeout
site = Website(app)
for route in site.routes:
app.add_url_rule(
route,
view_func=site.routes[route]["function"],
methods=site.routes[route]["methods"],
)
backend_api = Backend_Api(app)
for route in backend_api.routes:
app.add_url_rule(
route,
view_func=backend_api.routes[route]["function"],
methods=backend_api.routes[route]["methods"],
)
return app
def run_gui(host: str = "0.0.0.0", port: int = 8080, debug: bool = False) -> None:
config = {"host": host, "port": port, "debug": debug, "use_reloader": False}
app = get_gui_app()
print(f"Running on port {config['port']}")
app.run(**config)
print(f"Closing port {config['port']}")
from ..errors import MissingRequirementsError
try:
from .server.website import Website
from .server.backend_api import Backend_Api
from .server.app import create_app
import_error = None
except ImportError as e:
import_error = e
def get_gui_app(demo: bool = False, timeout: int = None, stream_timeout: int = None):
if import_error is not None:
raise MissingRequirementsError(
f'Install "gui" requirements | pip install -U g4f[gui]\n{import_error}'
)
app = create_app(False)
app.demo = demo
app.timeout = timeout
app.stream_timeout = stream_timeout
site = Website(app)
for route in site.routes:
app.add_url_rule(
route,
view_func=site.routes[route]["function"],
methods=site.routes[route]["methods"],
)
backend_api = Backend_Api(app)
for route in backend_api.routes:
app.add_url_rule(
route,
view_func=backend_api.routes[route]["function"],
methods=backend_api.routes[route]["methods"],
)
return app
def run_gui(host: str = "0.0.0.0", port: int = 8080, debug: bool = False) -> None:
config = {"host": host, "port": port, "debug": debug, "use_reloader": False}
app = get_gui_app()
print(f"Running on port {config['port']}")
app.run(**config)
print(f"Closing port {config['port']}")