"""Configuration and logger setup.""" import logging import os APP_NAME = 'product-store-eligibility-check' ENVIRONMENT = os.getenv('ENVIRONMENT', 'qa').lower() BASE_URL = f'https://{ENVIRONMENT}-ows-vectororder.theorchard.io' STORE_ID = os.getenv('STORE_ID') DELIVERY_TYPE = os.getenv('DELIVERY_TYPE') UPC_LIST = os.getenv('UPC_LIST') UPC_FILE = os.getenv('UPC_FILE') BUILD_NUMBER = os.getenv('BUILD_NUMBER', 'local') LOG_LEVEL = os.getenv('LOG_LEVEL', 'INFO').upper() S3_PREFIX = 'product-store-eligibility-results' S3_BUCKET = f'{ENVIRONMENT}-vector-audit' CONCURRENCY = int(os.getenv('CONCURRENCY', 100)) TIMEOUT = int(os.getenv('TIMEOUT', 900)) RETRY_ATTEMPTS = 3 BACKOFF_FACTOR = 0.5 def setup_logger(name: str = APP_NAME) -> logging.Logger: """Set up and return a configured logger.""" logger = logging.getLogger(name) if not logger.handlers: handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(getattr(logging, LOG_LEVEL, logging.INFO)) return logger