From 572d9ed7b345121be792fb82db5f215b7b4f2448 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Fri, 23 Jun 2023 11:00:33 -0700 Subject: [PATCH] sqlean/pysqlite3 avoiding mypy errors --- sqlite_utils/utils.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/sqlite_utils/utils.py b/sqlite_utils/utils.py index c2db501..d302907 100644 --- a/sqlite_utils/utils.py +++ b/sqlite_utils/utils.py @@ -13,16 +13,22 @@ from typing import Dict, cast, BinaryIO, Iterable, Optional, Tuple, Type import click -db_modules = ("pysqlite3", "sqlean", "sqlite3") +try: + import pysqlite3 as sqlite3 # noqa: F401 + from pysqlite3 import dbapi2 # noqa: F401 -for module in db_modules: + OperationalError = dbapi2.OperationalError +except ImportError: try: - sqlite3 = __import__(module) # type: ignore - dbapi2 = __import__("{}.dbapi2".format(module)) # type: ignore - OperationalError = dbapi2.OperationalError # type: ignore - break + import sqlean as sqlite3 # noqa: F401 + from sqlean import dbapi2 # noqa: F401 + + OperationalError = dbapi2.OperationalError except ImportError: - pass + import sqlite3 # noqa: F401 + from sqlite3 import dbapi2 # noqa: F401 + + OperationalError = dbapi2.OperationalError SPATIALITE_PATHS = (