""" utils.py – Common helpers for CoinDesk API client. - Parsing and formatting helpers (e.g., date conversion) - Logging setup - Retry/backoff utilities (for transient errors) """ import logging from datetime import datetime import time def parse_date(date_str): return datetime.fromisoformat(date_str) def setup_logger(name): logger = logging.getLogger(name) if not logger.handlers: handler = logging.StreamHandler() formatter = logging.Formatter('[%(asctime)s] %(levelname)s %(name)s: %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.INFO) return logger def retry(func, retries=3, delay=2): for attempt in range(retries): try: return func() except Exception as e: if attempt == retries - 1: raise time.sleep(delay)