Migrated to ruff for faster, modern code formatting and linting: Configuration changes: - pyproject.toml: Added ruff 0.8.6, removed black/flake8 - Configured ruff with black-compatible formatting (88 chars) - Enabled comprehensive linting rules (pycodestyle, pyflakes, isort, pyupgrade, bugbear, comprehensions, simplify, return) - Updated CLAUDE.md: Changed code quality commands to use ruff Code improvements (490 auto-fixes): - Modernized type hints: List[T] → list[T], Dict[K,V] → dict[K,V], Optional[T] → T | None - Sorted all imports (isort integration) - Removed unused imports - Fixed whitespace issues - Reformatted 38 files for consistency Bug fixes: - app/core/play_resolver.py: Fixed type hint bug (any → Any) - tests/unit/core/test_runner_advancement.py: Removed obsolete random mock Testing: - All 739 unit tests passing (100%) - No regressions introduced 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
53 lines
1.0 KiB
Python
53 lines
1.0 KiB
Python
from functools import lru_cache
|
|
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""Application settings"""
|
|
|
|
# Application
|
|
app_env: str = "development"
|
|
debug: bool = True
|
|
secret_key: str
|
|
|
|
# Database
|
|
database_url: str
|
|
db_pool_size: int = 20
|
|
db_max_overflow: int = 10
|
|
|
|
# Redis
|
|
redis_url: str = "redis://localhost:6379/0"
|
|
|
|
# Discord OAuth
|
|
discord_client_id: str
|
|
discord_client_secret: str
|
|
discord_redirect_uri: str
|
|
|
|
# League APIs
|
|
sba_api_url: str
|
|
sba_api_key: str
|
|
pd_api_url: str
|
|
pd_api_key: str
|
|
|
|
# WebSocket
|
|
ws_heartbeat_interval: int = 30
|
|
ws_connection_timeout: int = 60
|
|
|
|
# CORS
|
|
cors_origins: list[str] = ["http://localhost:3000", "http://localhost:3001"]
|
|
|
|
# Game settings
|
|
max_concurrent_games: int = 20
|
|
game_idle_timeout: int = 86400 # 24 hours
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
case_sensitive = False
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
"""Get cached settings instance"""
|
|
return Settings()
|