| | """ |
| | Configuration Module for HuggingFace Space |
| | |
| | Simplified configuration for the public Mizan leaderboard. |
| | """ |
| |
|
| | import os |
| | from dataclasses import dataclass, field |
| | from pathlib import Path |
| | from dotenv import load_dotenv |
| |
|
| | |
| | load_dotenv() |
| |
|
| |
|
| | @dataclass |
| | class ApiSettings: |
| | """API settings for evaluation submissions.""" |
| | url: str = field(default_factory=lambda: os.environ.get("API_URL", "")) |
| | username: str = field(default_factory=lambda: os.environ.get("API_USERNAME", "")) |
| | password: str = field(default_factory=lambda: os.environ.get("API_PASSWORD", "")) |
| | timeout: int = 30 |
| | |
| | @property |
| | def is_configured(self) -> bool: |
| | """Check if API is fully configured.""" |
| | return bool(self.url and self.username and self.password) |
| |
|
| |
|
| | @dataclass |
| | class UISettings: |
| | """UI-specific settings.""" |
| | port: int = 7860 |
| | max_table_height: int = 600 |
| | debug: bool = field(default_factory=lambda: os.environ.get("DEBUG", "false").lower() == "true") |
| |
|
| |
|
| | @dataclass |
| | class DataSettings: |
| | """Data file settings.""" |
| | csv_file: Path = field(default_factory=lambda: Path("leaderboard_data.csv")) |
| |
|
| |
|
| | @dataclass |
| | class Settings: |
| | """Main application settings container.""" |
| | api: ApiSettings = field(default_factory=ApiSettings) |
| | ui: UISettings = field(default_factory=UISettings) |
| | data: DataSettings = field(default_factory=DataSettings) |
| |
|
| |
|
| | |
| | settings = Settings() |
| |
|