Spaces:
Running
Running
File size: 3,125 Bytes
f51c1fd 1bf4da3 f612514 f51c1fd aa6222e 78f883e f51c1fd f612514 78f883e 1bf4da3 78f883e aa6222e 78f883e f612514 78f883e aa6222e 78f883e 1bf4da3 f51c1fd 1bf4da3 f51c1fd 1bf4da3 f51c1fd 1bf4da3 f51c1fd 1bf4da3 78f883e 1bf4da3 f51c1fd f612514 d02f294 f612514 |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
"""
File: app.py
Authors: Elena Ryumina and Dmitry Ryumin
Description: OCEANAI App for gradio.
License: MIT License
"""
import gradio as gr
# Importing necessary components for the Gradio app
from app.config import CONFIG_NAME, config_data, load_tab_creators
from app.event_handlers.event_handlers import setup_app_event_handlers
from app import tabs
from app.components import dropdown_create_ui
from app.port import is_port_in_use, free_ports
gr.set_static_paths(paths=[config_data.StaticPaths_IMAGES])
def create_gradio_app() -> gr.Blocks:
with gr.Blocks(
theme=gr.themes.Default(), css_paths=config_data.AppSettings_CSS_PATH
) as gradio_app:
with gr.Column(
visible=True,
render=True,
variant="default",
elem_classes="languages-container_wrapper",
):
with gr.Row(
visible=True,
render=True,
variant="default",
elem_classes="languages-container",
) as languages_row:
country_flags = gr.Image(
value=config_data.StaticPaths_IMAGES
+ config_data.Images_LANGUAGES[0],
container=False,
interactive=False,
show_label=False,
visible=True,
show_download_button=False,
elem_classes="country_flags",
show_fullscreen_button=False,
)
languages = dropdown_create_ui(
label=None,
info=None,
choices=config_data.Settings_LANGUAGES_EN,
value=config_data.Settings_LANGUAGES_EN[0],
visible=True,
show_label=False,
elem_classes="dropdown-language-container",
interactive=True,
)
tab_results = {}
ts = []
available_functions = {
attr: getattr(tabs, attr)
for attr in dir(tabs)
if callable(getattr(tabs, attr)) and attr.endswith("_tab")
}
tab_creators = load_tab_creators(CONFIG_NAME, available_functions)
for tab_name, create_tab_function in tab_creators.items():
with gr.Tab(tab_name) as tab:
app_instance = create_tab_function()
tab_results[tab_name] = app_instance
ts.append(tab)
setup_app_event_handlers(
*tab_results[list(tab_results.keys())[0]],
*ts,
languages_row,
country_flags,
languages
)
return gradio_app
if __name__ == "__main__":
ports_to_check = [config_data.AppSettings_PORT]
for port in filter(None, ports_to_check):
if is_port_in_use(config_data.AppSettings_SERVER_NAME, port):
free_ports(port)
create_gradio_app().queue(api_open=False).launch(
share=False,
server_name=config_data.AppSettings_SERVER_NAME,
server_port=config_data.AppSettings_PORT,
)
|