- PR1: Project scaffold, DB models, price loader - PR2: Congressional trade ingestion (House Stock Watcher) - PR3: Security enrichment + deployment infrastructure - 37 passing tests, 87%+ coverage - Docker + Proxmox deployment ready - Complete documentation - Works 100% offline with fixtures
40 lines
989 B
Python
40 lines
989 B
Python
"""
|
|
Configuration management using pydantic-settings.
|
|
Loads from environment variables and .env file.
|
|
"""
|
|
|
|
from pydantic import Field
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""Application settings."""
|
|
|
|
model_config = SettingsConfigDict(
|
|
env_file=".env",
|
|
env_file_encoding="utf-8",
|
|
case_sensitive=False,
|
|
extra="ignore",
|
|
)
|
|
|
|
# Database
|
|
database_url: str = Field(
|
|
default="sqlite:///./pote.db",
|
|
description="SQLAlchemy database URL",
|
|
)
|
|
|
|
# API keys
|
|
quiverquant_api_key: str = Field(default="", description="QuiverQuant API key")
|
|
fmp_api_key: str = Field(default="", description="Financial Modeling Prep API key")
|
|
|
|
# Logging
|
|
log_level: str = Field(default="INFO", description="Log level (DEBUG, INFO, WARNING, ERROR)")
|
|
|
|
# Application
|
|
app_name: str = "POTE"
|
|
app_version: str = "0.1.0"
|
|
|
|
|
|
# Global settings instance
|
|
settings = Settings()
|