import json import os from distutils.util import strtobool def str_to_bool(value: str) -> bool: if isinstance(value, bool): return value return bool(value and strtobool(value)) DEFAULT_DELPHI_PAGE_SIZE = int(os.environ.get("DEFAULT_DELPHI_PAGE_SIZE", 10000)) DELPHI_VIDEOS_PAGE_SIZE = int(os.environ.get("DELPHI_VIDEOS_PAGE_SIZE", 5000)) DELPHI_VIDEO_ANALYTICS_PAGE_SIZE = int(os.environ.get("DELPHI_VIDEO_ANALYTICS_PAGE_SIZE", 10000)) DELPHI_CHARTS_PAGE_SIZE = int(os.environ.get("DELPHI_CHARTS_PAGE_SIZE", 5000)) DELPHI_REQUESTS_INTERVAL_SIZE = int(os.environ.get("DELPHI_REQUESTS_INTERVAL_SIZE", 15)) DELPHI_REQUESTS_PER_INTERVAL = int(os.environ.get("DELPHI_REQUESTS_PER_INTERVAL", 1)) DELPHI_MAX_REQUESTS_COUNT = int(os.environ.get("DELPHI_MAX_REQUESTS_COUNT", 4)) DELPHI_JAVA_API_CONFIG = json.loads(os.environ["DELPHI_JAVA_API"]) if "DELPHI_JAVA_API" in os.environ else {} if not DELPHI_JAVA_API_CONFIG: DELPHI_JAVA_API_CONFIG = { "client_id": os.environ["DELPHI_JAVA_API_CLIENT_ID"], "client_secret": os.environ["DELPHI_JAVA_API_CLIENT_SECRET"], "base_url": os.environ["DELPHI_JAVA_API_BASE_URL"], } SENTRY_DSN = os.environ.get("SENTRY_DSN") ENVIRONMENT = os.environ.get("ENVIRONMENT", "local").lower() SERVICE = os.environ.get("SERVICE", "apollo-dsp-api").lower() DEBUG = str_to_bool(os.environ.get("DEBUG")) DSPAPI_APPKEY = os.environ["DSPAPI_APPKEY"] MAX_LINE_SIZE = int(os.environ.get("MAX_LINE_SIZE", 81900)) MAX_FIELD_SIZE = int(os.environ.get("MAX_LINE_SIZE", 81900)) DEFAULT_RETRY_COUNT = int(os.environ.get("DEFAULT_RETRY_COUNT", 2)) DEFAULT_RETRY_WAIT = int(os.environ.get("DEFAULT_RETRY_WAIT", 1)) DEFAULT_RETRY_MAX_TIMEOUT = int(os.environ.get("DEFAULT_RETRY_MAX_TIMEOUT", 6)) DELPHI_STREAMS_CLEANING_MODE = os.environ.get("DELPHI_STREAMS_CLEANING_MODE", "FULL") DELPHI_VIDEO_ANALYTICS_CLEANING_MODE = os.environ.get("DELPHI_VIDEO_ANALYTICS_CLEANING_MODE", "NULLABLE_ONLY") ORIGINAL_STATUS_CODES_TO_BYPASS = os.environ.get("ORIGINAL_STATUS_CODES_TO_BYPASS", "404") if ORIGINAL_STATUS_CODES_TO_BYPASS: ORIGINAL_STATUS_CODES_TO_BYPASS = [int(i) for i in ORIGINAL_STATUS_CODES_TO_BYPASS.split(",")] SENTRY_IGNORE_STATUS_CODES = os.environ.get("SENTRY_IGNORE_STATUS_CODES", "400,401,404") if SENTRY_IGNORE_STATUS_CODES: SENTRY_IGNORE_STATUS_CODES = [int(i) for i in SENTRY_IGNORE_STATUS_CODES.split(",")] # For tiktok analytics use only 1st ISRC from input list to receive related ISRC list. It does not have sense to use # full list here because a list of ISRC as an input is possible only in the merge ISRC case. TIKTOK_MERGE_ISRC_ONLY_FIRST = str_to_bool(os.environ.get("TIKTOK_MERGE_ISRC_ONLY_FIRST", "y")) DD_TRACE_HEADERS = os.environ.get("DD_TRACE_HEADERS", "client-type,x-app-slug,x-type,x-version,x-data-timeout").split( "," )