diff options
| author | Gaëtan de Menten <gdementen@gmail.com> | 2010-02-11 13:20:41 +0000 |
|---|---|---|
| committer | Gaëtan de Menten <gdementen@gmail.com> | 2010-02-11 13:20:41 +0000 |
| commit | 9d7335f934d3197f572017865220897763d4582b (patch) | |
| tree | 5b72ff5b015c234c1dd8dbc7bd4fa147a5c0df01 /lib/sqlalchemy | |
| parent | 44626e96595f25f9580e45ffa930fdec0f1b07a8 (diff) | |
| download | sqlalchemy-9d7335f934d3197f572017865220897763d4582b.tar.gz | |
slightly simplify/optimize string/unicode bind processor
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/types.py | 19 |
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 |
