From: Mike Bayer Date: Tue, 6 Mar 2007 17:17:27 +0000 (+0000) Subject: decorated ImportError thrown when the :// module isnt found X-Git-Tag: rel_0_3_6~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b401cd2ea73d14f57e19bf0c7f77406d80c3293c;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git decorated ImportError thrown when the :// module isnt found --- diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index 6a0180d620..8f9d33d54b 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -1,5 +1,6 @@ import re import cgi +import sys import urllib from sqlalchemy import exceptions @@ -70,8 +71,12 @@ class URL(object): def get_module(self): """Return the SQLAlchemy database module corresponding to this URL's driver name.""" - - return getattr(__import__('sqlalchemy.databases.%s' % self.drivername).databases, self.drivername) + try: + return getattr(__import__('sqlalchemy.databases.%s' % self.drivername).databases, self.drivername) + except ImportError: + if sys.exc_info()[2].tb_next is None: + raise exceptions.ArgumentError('unknown database %r' % self.drivername) + raise def translate_connect_args(self, names): """Translate this URL's attributes into a dictionary of connection arguments.