| """Central configuration: loads .env files and exposes API keys + constants.""" |
|
|
| import os |
| from pathlib import Path |
|
|
| from dotenv import load_dotenv |
|
|
| PROJECT_ROOT = Path(__file__).resolve().parent.parent |
|
|
| |
| load_dotenv(PROJECT_ROOT / ".env") |
| load_dotenv(PROJECT_ROOT / "code" / ".env") |
|
|
|
|
| def _get_key(*names): |
| for name in names: |
| value = os.getenv(name) |
| if value: |
| value = value.strip().strip('"').strip("'") |
| |
| if value and not value.lower().startswith("your_"): |
| return value |
| return None |
|
|
|
|
| def tomtom_key(): |
| return _get_key("TomTom_api_key", "TOMTOM_API_KEY", "tomtom_api_key", "tomtom_api") |
|
|
|
|
| def calendarific_key(): |
| return _get_key("calendarific_api_key", "CALENDARIFIC_API_KEY") |
|
|
|
|
| def geoapify_key(): |
| return _get_key("Geoapify_API", "GEOAPIFY_API", "GEOAPIFY_API_KEY") |
|
|
|
|
| def ticketmaster_key(): |
| return _get_key("Ticketmaster_API", "TICKETMASTER_API", "TICKETMASTER_API_KEY") |
|
|
|
|
| def gemini_key(): |
| return _get_key("GEMINI_API_KEY", "GOOGLE_API_KEY", "gemini_api_key") |
|
|
|
|
| def groq_key(): |
| return _get_key("GROQ_API_KEY", "groq_api_key") |
|
|
|
|
| def mongodb_uri(): |
| return _get_key("MONGODB_URI", "MONGO_URI") |
|
|
|
|
| |
| CITY_NAME = "Lucknow" |
| CITY_STATE = "Uttar Pradesh" |
| CITY_CENTER = {"lat": 26.8467, "lon": 80.9462} |
| TIMEZONE = "Asia/Kolkata" |
|
|
| |
| |
| GEMINI_MODELS = ["gemini-2.5-flash", "gemini-2.5-flash-lite"] |
| GROQ_MODELS = ["llama-3.3-70b-versatile", "llama-3.1-8b-instant"] |
|
|
| |
| SWEEP_WINDOW_MIN = 90 |
| SWEEP_STEP_MIN = 15 |
|
|