"""Job config.""" import os def get_url(field_name: str) -> str: """Get URL in correct format. Args: field_name: Environ field name. Returns: URL. """ url = os.environ[field_name] if not url.startswith("https://"): url = f"https://{url}" return url.rstrip("/") ENVIRONMENT = os.environ.get("ENVIRONMENT", "prod").lower() class MySQL: HOST = os.environ["MYSQL_HOST"] PORT = int(os.environ.get("MYSQL_PORT", 3306)) USER = os.environ["MYSQL_USER"] PASSWORD = os.environ["MYSQL_PASSWORD"] DATABASE = os.environ["MYSQL_DATABASE"] POOL_RECYCLE = int(os.environ.get("MYSQL_POOL_RECYCLE", 7200)) POOL_SIZE = int(os.environ.get("MYSQL_POOL_SIZE", 1)) class Redis: LOCK_ENABLED = bool(os.environ.get("REDIS_LOCK_ENABLED", True)) LOCK_TTL = int(os.environ.get("REDIS_LOCK_TTL", 1500)) # 25 min HOST = os.environ.get("REDIS_HOST") PORT = int(os.environ.get("REDIS_PORT", 6379)) class DSPAPI: HOST = get_url("DSPAPI_HOSTNAME") APP_KEY = os.environ["DSPAPI_APPKEY"] PAGE_SIZE = int(os.environ.get("DSPAPI_PAGE_SIZE", 10000)) TIMEOUT = int(os.environ.get("DSPAPI_TIMEOUT", 120)) SENTRY_DSN = os.environ.get("SENTRY_DSN") RETRY_COUNT = int(os.environ.get("RETRY_COUNT", 3)) RETRY_WAIT_RATE = int(os.environ.get("RETRY_WAIT_RATE", 4)) IS_LOCAL = bool(os.environ.get("LOCAL", "")) FILTER_THRESHOLD_PERCENTAGE = float(os.environ.get("FILTER_THRESHOLD_PERCENTAGE", 0.8)) ENABLE_UPDATE_TRACKLIST = bool(os.environ.get("ENABLE_UPDATE_TRACKLIST", True)) ENABLE_UPDATE_RANKS = bool(os.environ.get("ENABLE_UPDATE_RANKS", True)) UPDATE_RANKS_INTERVAL = int(os.environ.get("UPDATE_RANKS_INTERVAL", 7)) UPDATE_RANKS_FROM_TODAY = bool(os.environ.get("UPDATE_RANKS_FROM_TODAY", True)) UNKNOWN_MARKET_RANK_FROM = int(os.environ.get("UNKNOWN_MARKET_RANK_FROM", 200)) AWS_EVENT_BUS_NAME = os.environ.get("AWS_EVENT_BUS_NAME") AWS_DEFAULT_REGION = os.environ.get("AWS_DEFAULT_REGION", "us-east-1")