]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
decorated ImportError thrown when the <database>:// module isnt found
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 6 Mar 2007 17:17:27 +0000 (17:17 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 6 Mar 2007 17:17:27 +0000 (17:17 +0000)
lib/sqlalchemy/engine/url.py

index 6a0180d620fada03d8f77d55c638dba53c29d1c0..8f9d33d54b2ed4fcbd9c98595ce1247c250e1362 100644 (file)
@@ -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.