summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/engine/reflection.py8
-rw-r--r--lib/sqlalchemy/util/compat.py6
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index cf4a1d532..4b2987851 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -41,8 +41,12 @@ def cache(fn, self, con, *args, **kw):
return fn(self, con, *args, **kw)
key = (
fn.__name__,
- tuple(a for a in args if isinstance(a, str)),
- tuple((k, v) for k, v in kw.items() if isinstance(v, (str, int, float)))
+ tuple(a for a in args if isinstance(a, util.string_types)),
+ tuple((k, v) for k, v in kw.items() if
+ isinstance(v,
+ util.string_types + util.int_types + (float, )
+ )
+ )
)
ret = info_cache.get(key)
if ret is None:
diff --git a/lib/sqlalchemy/util/compat.py b/lib/sqlalchemy/util/compat.py
index 94b35f019..06bcd30dd 100644
--- a/lib/sqlalchemy/util/compat.py
+++ b/lib/sqlalchemy/util/compat.py
@@ -37,6 +37,9 @@ if py3k:
from inspect import getfullargspec as inspect_getfullargspec
from urllib.parse import quote_plus, unquote_plus, parse_qsl
+ import configparser
+ from io import StringIO
+
string_types = str,
binary_type = bytes
text_type = str
@@ -74,6 +77,9 @@ else:
from inspect import getargspec as inspect_getfullargspec
from urllib import quote_plus, unquote_plus
from urlparse import parse_qsl
+ import ConfigParser as configparser
+ from StringIO import StringIO
+
string_types = basestring,
binary_type = str
text_type = unicode