فهرست منبع

fix: escape pysqlite swapping (#410)

cachho 2 سال پیش
والد
کامیت
2ef7c0b736
1فایلهای تغییر یافته به همراه29 افزوده شده و 19 حذف شده
  1. 29 19
      embedchain/utils.py

+ 29 - 19
embedchain/utils.py

@@ -60,22 +60,32 @@ def use_pysqlite3():
     import sqlite3
 
     if platform.system() == "Linux" and sqlite3.sqlite_version_info < (3, 35, 0):
-        # According to the Chroma team, this patch only works on Linux
-        import datetime
-        import subprocess
-        import sys
-
-        subprocess.check_call(
-            [sys.executable, "-m", "pip", "install", "pysqlite3-binary", "--quiet", "--disable-pip-version-check"]
-        )
-
-        __import__("pysqlite3")
-        sys.modules["sqlite3"] = sys.modules.pop("pysqlite3")
-
-        # Let the user know what happened.
-        current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S,%f")[:-3]
-        print(
-            f"{current_time} [embedchain] [INFO]",
-            "Swapped std-lib sqlite3 with pysqlite3 for ChromaDb compatibility.",
-            f"Your original version was {sqlite3.sqlite_version}.",
-        )
+        try:
+            # According to the Chroma team, this patch only works on Linux
+            import datetime
+            import subprocess
+            import sys
+            
+            subprocess.check_call(
+                [sys.executable, "-m", "pip", "install", "pysqlite3-binary", "--quiet", "--disable-pip-version-check"]
+            )
+
+            __import__("pysqlite3")
+            sys.modules["sqlite3"] = sys.modules.pop("pysqlite3")
+
+            # Let the user know what happened.
+            current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S,%f")[:-3]
+            print(
+                f"{current_time} [embedchain] [INFO]",
+                "Swapped std-lib sqlite3 with pysqlite3 for ChromaDb compatibility.",
+                f"Your original version was {sqlite3.sqlite_version}.",
+            )
+        except Exception as e:
+            # Escape all exceptions
+            current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S,%f")[:-3]
+            print(
+                f"{current_time} [embedchain] [ERROR]",
+                "Failed to swap std-lib sqlite3 with pysqlite3 for ChromaDb compatibility.",
+                f"Error:",
+                e
+            )