Spaces:
Running
Running
import gradio as gr | |
from pathlib import Path | |
from utils.logger import Logger | |
from components.login_page import LoginPage | |
from components.dashboard_page import DashboardPage | |
from utils.database import initialize_database | |
from config import conf | |
log = Logger() | |
initialize_database() | |
CSS_FILE = Path(__file__).parent / "assets" / "styles.css" | |
custom_css = CSS_FILE.read_text(encoding="utf-8") | |
def build_app() -> gr.Blocks: | |
""" | |
میسازد و wiring کل اپلیکیشن را انجام میدهد. | |
""" | |
demo = gr.Blocks(title=conf.APP_TITLE, css=custom_css) | |
with demo: | |
# حالت سراسری برنامه بهصورت gr.State | |
session_state = gr.State({}) | |
gr.Markdown(f"### {conf.APP_TITLE}") | |
# صفحات | |
login_page = LoginPage() | |
dashboard_page = DashboardPage() | |
# اتصال رویدادها | |
login_page.register_callbacks(dashboard_page, session_state) | |
dashboard_page.register_callbacks(login_page, session_state, demo) | |
# صف پردازش گرادیو | |
demo.queue(default_concurrency_limit=50) | |
log.info("App Started.") | |
return demo | |
if __name__ == "__main__": | |
# try: | |
log.info("Launching App ...") | |
build_app().launch() | |
# except Exception as err: | |
# log.error(err) |