Maaroufabousaleh
f
c49b21b
raw
history blame contribute delete
897 Bytes
"""
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)