fix: Add adapters for sqlite datetime conversion by emgeee · Pull Request #4797 · feast-dev/feast
def adapt_date_iso(val: date): """Adapt datetime.date to ISO 8601 date.""" return val.isoformat()
def adapt_datetime_iso(val: datetime): """Adapt datetime.datetime to timezone-naive ISO 8601 date.""" return val.isoformat()
def adapt_datetime_epoch(val: datetime): """Adapt datetime.datetime to Unix timestamp.""" return int(val.timestamp())
sqlite3.register_adapter(date, adapt_date_iso) sqlite3.register_adapter(datetime, adapt_datetime_iso) sqlite3.register_adapter(datetime, adapt_datetime_epoch)
def convert_date(val: bytes): """Convert ISO 8601 date to datetime.date object.""" return date.fromisoformat(val.decode())
def convert_datetime(val: bytes): """Convert ISO 8601 datetime to datetime.datetime object.""" return datetime.fromisoformat(val.decode())
def convert_timestamp(val: bytes): """Convert Unix epoch timestamp to datetime.datetime object.""" return datetime.fromtimestamp(int(val))
sqlite3.register_converter("date", convert_date) sqlite3.register_converter("datetime", convert_datetime) sqlite3.register_converter("timestamp", convert_timestamp)
class SqliteOnlineStoreConfig(FeastConfigBaseModel, VectorStoreConfig): """Online store config for local (SQLite-based) store"""