From 396e45480e59f7e0c5582c95c8a0d3b8c48a9fcc Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Thu, 15 May 2025 09:27:40 -0600 Subject: bitbake: hashserv: Fix deprecation warning about sqlite adapter The default adapters for sqlite datetime are deprecated as of Python 3.12, so implement our own. [YOCTO #15333] (Bitbake rev: 38a1d715bf58acbc9cb21eed413b3542c81cf15a) Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- bitbake/lib/hashserv/sqlite.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'bitbake/lib/hashserv/sqlite.py') diff --git a/bitbake/lib/hashserv/sqlite.py b/bitbake/lib/hashserv/sqlite.py index da2e844a03..976504d7f4 100644 --- a/bitbake/lib/hashserv/sqlite.py +++ b/bitbake/lib/hashserv/sqlite.py @@ -4,6 +4,7 @@ # # SPDX-License-Identifier: GPL-2.0-only # +from datetime import datetime, timezone import sqlite3 import logging from contextlib import closing @@ -53,6 +54,22 @@ CONFIG_TABLE_DEFINITION = ( CONFIG_TABLE_COLUMNS = tuple(name for name, _, _ in CONFIG_TABLE_DEFINITION) +def adapt_datetime_iso(val): + """Adapt datetime.datetime to UTC ISO 8601 date.""" + return val.astimezone(timezone.utc).isoformat() + + +sqlite3.register_adapter(datetime, adapt_datetime_iso) + + +def convert_datetime(val): + """Convert ISO 8601 datetime to datetime.datetime object.""" + return datetime.fromisoformat(val.decode()) + + +sqlite3.register_converter("DATETIME", convert_datetime) + + def _make_table(cursor, name, definition): cursor.execute( """ -- cgit v1.2.3-54-g00ecf