File size: 1,198 Bytes
79859e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from ..errors import MissingRequirementsError

try:
    from .server.app     import app
    from .server.website import Website
    from .server.backend import Backend_Api
    import_error = None
except ImportError as e:
    import_error = e

def get_gui_app():
    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:
    if import_error is not None:
        raise MissingRequirementsError(f'Install "gui" requirements | pip install -U g4f[gui]\n{import_error}')

    config = {
        'host' : host,
        'port' : port,
        'debug': debug
    }

    get_gui_app()

    print(f"Running on port {config['port']}")
    app.run(**config)
    print(f"Closing port {config['port']}")