summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorGaëtan de Menten <gdementen@gmail.com>2010-02-11 13:20:41 +0000
committerGaëtan de Menten <gdementen@gmail.com>2010-02-11 13:20:41 +0000
commit9d7335f934d3197f572017865220897763d4582b (patch)
tree5b72ff5b015c234c1dd8dbc7bd4fa147a5c0df01 /lib/sqlalchemy
parent44626e96595f25f9580e45ffa930fdec0f1b07a8 (diff)
downloadsqlalchemy-9d7335f934d3197f572017865220897763d4582b.tar.gz
slightly simplify/optimize string/unicode bind processor
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/types.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py
index aadd148c0..f4d94c918 100644
--- a/lib/sqlalchemy/types.py
+++ b/lib/sqlalchemy/types.py
@@ -524,28 +524,33 @@ class String(Concatenable, TypeEngine):
if dialect.supports_unicode_binds and assert_unicode:
def process(value):
- if not isinstance(value, (unicode, NoneType)):
+ if value is None or isinstance(value, unicode):
+ return value
+ else:
if assert_unicode == 'warn':
util.warn("Unicode type received non-unicode bind "
"param value %r" % value)
return value
else:
- raise exc.InvalidRequestError("Unicode type received non-unicode bind param value %r" % value)
- else:
- return value
+ raise exc.InvalidRequestError(
+ "Unicode type received non-unicode bind "
+ "param value %r" % value)
elif dialect.supports_unicode_binds and self.convert_unicode != 'force':
return None
else:
+ encoder = codecs.getencoder(dialect.encoding)
def process(value):
if isinstance(value, unicode):
- return value.encode(dialect.encoding)
- elif assert_unicode and not isinstance(value, (unicode, NoneType)):
+ return encoder(value)[0]
+ elif assert_unicode and value is not None:
if assert_unicode == 'warn':
util.warn("Unicode type received non-unicode bind "
"param value %r" % value)
return value
else:
- raise exc.InvalidRequestError("Unicode type received non-unicode bind param value %r" % value)
+ raise exc.InvalidRequestError(
+ "Unicode type received non-unicode bind "
+ "param value %r" % value)
else:
return value
return process