Spaces:
Running
Running
| """ | |
| 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 | |
| gr.set_static_paths(paths=["images/"]) | |
| def create_gradio_app() -> gr.Blocks: | |
| with gr.Blocks(css=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="images/UK.png", | |
| container=False, | |
| interactive=False, | |
| show_label=False, | |
| visible=True, | |
| show_download_button=False, | |
| elem_classes="country_flags", | |
| ) | |
| 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=False, | |
| ) | |
| 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__": | |
| create_gradio_app().queue(api_open=False).launch(share=False) | |