random-movie-hf / utils /config.py
gytcrt
Add Gradio app files
f00d260
import os
import logging
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Create logger for this module
logger = logging.getLogger(__name__)
class Config:
"""Application configuration class."""
# TMDB API configuration
TMDB_API_KEY: str = os.getenv("TMDB_API_KEY", "")
# OMDB API configuration
OMDB_API_KEY: str = os.getenv("OMDB_API_KEY", "")
# Hugging Face token for ML models
HF_TOKEN: str = os.getenv("HF_TOKEN", "")
# Top 10 countries with extensive movie catalogs - show genre selection
TOP_COUNTRIES = [
"United States of America (US)",
"France (FR)",
"United Kingdom (GB)",
"Germany (DE)",
"Japan (JP)",
"Spain (ES)",
"India (IN)",
"Canada (CA)",
"Italy (IT)",
"Brazil (BR)"
]
# Top 55 countries based on movie count analysis
COUNTRIES = [
"United States of America (US)",
"France (FR)",
"United Kingdom (GB)",
"Germany (DE)",
"Japan (JP)",
"Spain (ES)",
"India (IN)",
"Canada (CA)",
"Italy (IT)",
"Brazil (BR)",
"China (CN)",
"Mexico (MX)",
"Russia (RU)",
"South Korea (KR)",
"Soviet Union (SU)",
"Sweden (SE)",
"Portugal (PT)",
"Australia (AU)",
"Netherlands (NL)",
"Hong Kong (HK)",
"Philippines (PH)",
"Turkey (TR)",
"Argentina (AR)",
"Czechoslovakia (CS)",
"Poland (PL)",
"Denmark (DK)",
"Austria (AT)",
"Indonesia (ID)",
"Taiwan (TW)",
"Greece (GR)",
"Switzerland (CH)",
"Iran (IR)",
"Egypt (EG)",
"Finland (FI)",
"Hungary (HU)",
"Norway (NO)",
"Czech Republic (CZ)",
"Thailand (TH)",
"Belgium (BE)",
"Ireland (IE)",
"Israel (IL)",
"Ukraine (UA)",
"Yugoslavia (YU)",
"Saudi Arabia (SA)",
"Romania (RO)",
"Malaysia (MY)",
"New Zealand (NZ)",
"Bangladesh (BD)",
"Singapore (SG)",
"Chile (CL)",
"Iceland (IS)",
"Latvia (LV)",
"Colombia (CO)",
"Peru (PE)",
"Bulgaria (BG)"
]
# Available decades for movie selection
DECADES = [
"1930s", "1940s", "1950s", "1960s", "1970s",
"1980s", "1990s", "2000s", "2010s", "2020s"
]
# Available genres for movie selection
GENRES = [
'Action', 'Adventure', 'Animation', 'Comedy', 'Crime',
'Documentary', 'Drama', 'Family', 'Fantasy', 'History',
'Horror', 'Music', 'Mystery', 'Romance', 'Science Fiction',
'Thriller', 'TV Movie', 'War', 'Western'
]
@classmethod
def validate(cls) -> bool:
"""Validate that required configuration is present."""
# Check for TMDB API key
if not cls.TMDB_API_KEY:
logger.error("TMDB_API_KEY is required. Please set it in your .env file.")
raise ValueError("TMDB_API_KEY is required. Please set it in your .env file.")
# Check for OMDB API key
if not cls.OMDB_API_KEY:
logger.error("OMDB_API_KEY is required. Please set it in your .env file.")
raise ValueError("OMDB_API_KEY is required. Please set it in your .env file.")
logger.info("Configuration validation successful")
return True
# Global config instance
config = Config()