From 92f2247a2d1bb04bdea68a10e5630f67e7cb0d94 Mon Sep 17 00:00:00 2001 From: Gord Thompson Date: Fri, 8 May 2020 05:52:02 -0600 Subject: [PATCH] Load external firebird or sybase dialect if available Fixes: #5318 Extension of I1660abb11c02656fbf388f2f9c4257075111be58 Change-Id: I32b678430497327f9b08f821bd345a2557e34b1f (cherry picked from commit 587f6c77153235e3defcc6b0b6598634e1ee2828) --- lib/sqlalchemy/dialects/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/dialects/__init__.py b/lib/sqlalchemy/dialects/__init__.py index 741ea06889..d84e482aaf 100644 --- a/lib/sqlalchemy/dialects/__init__.py +++ b/lib/sqlalchemy/dialects/__init__.py @@ -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 -- 2.39.5