tts_labeling / app.py
vargha's picture
sentry intergration
86cf81a
import gradio as gr
from pathlib import Path
# Initialize Sentry first (before other imports)
try:
from utils.sentry_integration import initialize_sentry
sentry_initialized = initialize_sentry()
if sentry_initialized:
print("✅ Sentry monitoring enabled")
else:
print("⚠️ Sentry monitoring disabled (no DSN configured)")
except Exception as e:
raise
from utils.logger import Logger
from components.login_page import LoginPage
from components.dashboard_page import DashboardPage
from components.review_dashboard_page import ReviewDashboardPage
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() # Phase 1 interface
review_dashboard_page = ReviewDashboardPage() # Phase 2 interface
# اتصال رویدادها
login_page.register_callbacks(dashboard_page, session_state, review_dashboard_page)
dashboard_page.register_callbacks(login_page, session_state, demo, review_dashboard_page)
review_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:
raise