Bläddra i källkod

fix: no logging in pysqlite replacement (#378)

cachho 2 år sedan
förälder
incheckning
5e94980aaa
1 ändrade filer med 14 tillägg och 5 borttagningar
  1. 14 5
      embedchain/utils.py

+ 14 - 5
embedchain/utils.py

@@ -1,4 +1,3 @@
-import logging
 import re
 import string
 
@@ -53,15 +52,25 @@ def use_pysqlite3():
     Swap std-lib sqlite3 with pysqlite3.
     """
     import platform
+    import sqlite3
 
-    if platform.system() == "Linux":
+    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"])
+        subprocess.check_call(
+            [sys.executable, "-m", "pip", "install", "pysqlite3-binary", "--quiet", "--disable-pip-version-check"]
+        )
 
         __import__("pysqlite3")
         sys.modules["sqlite3"] = sys.modules.pop("pysqlite3")
-        # Don't be surprised if this doesn't log as you expect, because the logger is instantiated after the import
-        logging.info("Swapped std-lib sqlite3 with 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}.",
+        )