""" Utilities for working with datetime objects. """ from datetime import datetime from ..typings import Rows def make_datetimes_serializable(rows: Rows) -> Rows: """Convert datetime objects to ISO format for JSON serialization. Accepts a list of dictionaries (e.g. table rows) and modifies them in-place. Modification is done in-place. Args: rows (list[dict]): List of dictionaries (e.g. table rows). Returns: list[dict]: Same list of dictionaries (e.g. table rows) with datetime objects converted to ISO format. Examples: >>> make_datetimes_serializable([{"date": datetime(2021, 1, 1)}]) [{'date': '2021-01-01T00:00:00'}] """ for row in rows: for k, v in row.items(): if isinstance(v, datetime): row[k] = v.isoformat() return rows