tts_labeling / config.py
vargha's picture
annotators setup
e0f4aa9
# config.py
import os
from pydantic_settings import BaseSettings
class Config(BaseSettings):
DB_USER: str = os.getenv("DB_USER")
DB_PASSWORD: str = os.getenv("DB_PASSWORD")
DB_HOST: str = os.getenv("DB_HOST", "localhost")
DB_PORT: str = os.getenv("DB_PORT", "3306")
DB_NAME: str = os.getenv("DB_NAME", "defaultdb")
HF_TOKEN: str = os.environ.get("HF_TOKEN")
HF_TTS_DS_REPO: str = os.environ.get("HF_TTS_DS_REPO")
FTP_URL: str = os.environ.get("FTP_URL")
APP_TITLE: str = "Gooya TTS Annotation Tools"
# Sentry Configuration
SENTRY_DSN: str = os.environ.get("SENTRY_DSN", "")
SENTRY_ENVIRONMENT: str = os.environ.get("SENTRY_ENVIRONMENT", "development")
SENTRY_TRACES_SAMPLE_RATE: float = float(os.environ.get("SENTRY_TRACES_SAMPLE_RATE", "0.1"))
SENTRY_PROFILES_SAMPLE_RATE: float = float(os.environ.get("SENTRY_PROFILES_SAMPLE_RATE", "0.1"))
# Phase 2 Review Mapping: Defines who reviews whose work.
# Key: Original annotator's username, Value: Reviewer's username
REVIEW_MAPPING: dict[str, str] = {
"zahra": "amin",
"amin": "zahra",
"mohsen": "sepehr",
"sepehr": "mohammad"
}
class Config:
env_file = ".env"
case_sensitive = True
@property
def db_url(self) -> str:
# If no DB_USER is provided, use SQLite for local testing
if not self.DB_USER or not self.DB_PASSWORD:
return f"sqlite:///{self.DB_NAME}"
else:
return f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"
conf = Config()