File size: 1,634 Bytes
1ef4e10
 
ac40033
1ef4e10
 
 
 
1a410ee
 
1ef4e10
 
 
1a410ee
 
 
1ef4e10
 
86cf81a
 
 
 
 
 
1ef4e10
c6fc32c
 
6a70048
818e146
 
 
 
6a70048
c6fc32c
1ef4e10
 
 
ac40033
1ef4e10
 
1a410ee
 
 
 
 
ac40033
d86a872
1ef4e10
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
# 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()