]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Load external firebird or sybase dialect if available
authorGord Thompson <gord@gordthompson.com>
Fri, 8 May 2020 11:52:02 +0000 (05:52 -0600)
committerGord Thompson <gord@gordthompson.com>
Mon, 11 May 2020 13:26:19 +0000 (07:26 -0600)
Fixes: #5318
Extension of I1660abb11c02656fbf388f2f9c4257075111be58

Change-Id: I32b678430497327f9b08f821bd345a2557e34b1f
(cherry picked from commit 587f6c77153235e3defcc6b0b6598634e1ee2828)

lib/sqlalchemy/dialects/__init__.py

index 741ea06889389f2b4a427292d0b5377ef7ef4008..d84e482aafa0664a9990ee841823a16608ccfac8 100644 (file)
@@ -45,15 +45,21 @@ def _auto_fn(name):
         if dialect == "firebird":
             try:
                 module = __import__("sqlalchemy_firebird")
-                dialect = "dialect"
-            except:
+            except ImportError:
                 module = __import__("sqlalchemy.dialects.firebird").dialects
+                module = getattr(module, dialect)
+        elif dialect == "sybase":
+            try:
+                module = __import__("sqlalchemy_sybase")
+            except ImportError:
+                module = __import__("sqlalchemy.dialects.sybase").dialects
+                module = getattr(module, dialect)
         else:
             module = __import__("sqlalchemy.dialects.%s" % (dialect,)).dialects
+            module = getattr(module, dialect)
     except ImportError:
         return None
 
-    module = getattr(module, dialect)
     if hasattr(module, driver):
         module = getattr(module, driver)
         return lambda: module.dialect