From 53232cb59ab3e769063ca2e7e2d0e1e3557007d8 Mon Sep 17 00:00:00 2001 From: woutdenolf Date: Tue, 8 Sep 2026 11:20:06 +0200 Subject: [PATCH] improve sqlite3 import error message --- src/ewoksutils/logging_utils/sqlite3.py | 2 +- src/ewoksutils/sqlite3_utils.py | 12 +++++++++++- src/ewoksutils/tests/test_logging_sqlite3.py | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ewoksutils/logging_utils/sqlite3.py b/src/ewoksutils/logging_utils/sqlite3.py index 61b17e1..5955999 100644 --- a/src/ewoksutils/logging_utils/sqlite3.py +++ b/src/ewoksutils/logging_utils/sqlite3.py @@ -1,4 +1,3 @@ -import sqlite3 import time from typing import Any from typing import Dict @@ -7,6 +6,7 @@ from typing import Sequence from .. import sqlite3_utils +from ..sqlite3_utils import sqlite3 from .connection import ConnectionHandler Sqlite3RecordType = List[Any] diff --git a/src/ewoksutils/sqlite3_utils.py b/src/ewoksutils/sqlite3_utils.py index ecf0d5d..af6b65c 100644 --- a/src/ewoksutils/sqlite3_utils.py +++ b/src/ewoksutils/sqlite3_utils.py @@ -1,6 +1,5 @@ import json import re -import sqlite3 from contextlib import closing from contextlib import contextmanager from datetime import datetime @@ -13,6 +12,17 @@ from typing import Optional from typing import Union +try: + import sqlite3 +except ImportError as exc: + raise ImportError( + "Python's sqlite3 module is required but is not available. " + "This usually means that the Python interpreter was built without SQLite " + "support. Install the SQLite development libraries required by your " + "operating system, then reinstall or rebuild Python and recreate the " + "virtual environment." + ) from exc + from . import uri_utils from .datetime_utils import fromisoformat diff --git a/src/ewoksutils/tests/test_logging_sqlite3.py b/src/ewoksutils/tests/test_logging_sqlite3.py index 5b438ec..f4ab382 100644 --- a/src/ewoksutils/tests/test_logging_sqlite3.py +++ b/src/ewoksutils/tests/test_logging_sqlite3.py @@ -1,11 +1,11 @@ import logging -import sqlite3 import threading import time from typing import Optional from .. import sqlite3_utils from ..logging_utils.sqlite3 import Sqlite3Handler +from ..sqlite3_utils import sqlite3 FIELD_TYPES = {"field1": 0, "field2": ""}