From bc85397f491bbb6949fea16c9fc594bc8344419b Mon Sep 17 00:00:00 2001 From: Ants Aasma Date: Tue, 10 Jul 2007 21:56:18 +0000 Subject: [PATCH] make use of the isinstance(obj, (A,B)) idiom, makes the code a bit shorter and more comprehensible (maybe a bit faster too) --- lib/sqlalchemy/databases/mysql.py | 2 +- lib/sqlalchemy/databases/oracle.py | 2 +- lib/sqlalchemy/engine/base.py | 6 +++--- lib/sqlalchemy/orm/query.py | 2 +- lib/sqlalchemy/schema.py | 4 ++-- lib/sqlalchemy/sql.py | 4 ++-- lib/sqlalchemy/util.py | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 341550e114..27d87847e2 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -1189,7 +1189,7 @@ class MySQLDialect(ansisql.ANSIDialect): class MySQLCompiler(ansisql.ANSICompiler): def visit_cast(self, cast): """hey ho MySQL supports almost no types at all for CAST""" - if (isinstance(cast.type, sqltypes.Date) or isinstance(cast.type, sqltypes.Time) or isinstance(cast.type, sqltypes.DateTime)): + if isinstance(cast.type, (sqltypes.Date, sqltypes.Time, sqltypes.DateTime)): return super(MySQLCompiler, self).visit_cast(cast) else: # so just skip the CAST altogether for now. diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index c0264ca846..39ad51e265 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -228,7 +228,7 @@ class OracleDialect(ansisql.ANSIDialect): return 30 def oid_column_name(self, column): - if not isinstance(column.table, sql.TableClause) and not isinstance(column.table, sql.Select): + if not isinstance(column.table, (sql.TableClause, sql.Select)): return None else: return "rowid" diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 467aed55df..6c08ead7a0 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -598,7 +598,7 @@ class Connection(Connectable): def execute_text(self, statement, *multiparams, **params): if len(multiparams) == 0: parameters = params or None - elif len(multiparams) == 1 and (isinstance(multiparams[0], list) or isinstance(multiparams[0], tuple) or isinstance(multiparams[0], dict)): + elif len(multiparams) == 1 and isinstance(multiparams[0], (list, tuple, dict)): parameters = multiparams[0] else: parameters = list(multiparams) @@ -612,7 +612,7 @@ class Connection(Connectable): elif len(multiparams) == 1: if multiparams[0] == None: return [{}] - elif isinstance (multiparams[0], list) or isinstance (multiparams[0], tuple): + elif isinstance (multiparams[0], (list, tuple)): return multiparams[0] else: return [multiparams[0]] @@ -649,7 +649,7 @@ class Connection(Connectable): def _execute_raw(self, context): self.__engine.logger.info(context.statement) self.__engine.logger.info(repr(context.parameters)) - if context.parameters is not None and isinstance(context.parameters, list) and len(context.parameters) > 0 and (isinstance(context.parameters[0], list) or isinstance(context.parameters[0], tuple) or isinstance(context.parameters[0], dict)): + if context.parameters is not None and isinstance(context.parameters, list) and len(context.parameters) > 0 and isinstance(context.parameters[0], (list, tuple, dict)): self._executemany(context) else: self._execute(context) diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index 3b58e48462..58827a7b86 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -640,7 +640,7 @@ class Query(object): appender.append(None) process.append((proc, appender)) x(m) - elif isinstance(m, sql.ColumnElement) or isinstance(m, basestring): + elif isinstance(m, (sql.ColumnElement, basestring)): def y(m): res = [] def proc(context, row): diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 3df300d8db..bd94ea3940 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -1094,7 +1094,7 @@ class MetaData(SchemaItem): """ from sqlalchemy.engine.url import URL - if isinstance(engine_or_url, basestring) or isinstance(engine_or_url, URL): + if isinstance(engine_or_url, (basestring, URL)): self._engine = sqlalchemy.create_engine(engine_or_url, **kwargs) else: self._engine = engine_or_url @@ -1185,7 +1185,7 @@ thread-local basis. def connect(self, engine_or_url, **kwargs): from sqlalchemy.engine.url import URL - if isinstance(engine_or_url, basestring) or isinstance(engine_or_url, URL): + if isinstance(engine_or_url, (basestring, URL)): try: self.context._engine = self.__engines[engine_or_url] except KeyError: diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 0abb28a7e1..ebc504db62 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -1096,7 +1096,7 @@ class ClauseElement(object): ``SET`` and ``VALUES`` clause of those statements. """ - if (isinstance(parameters, list) or isinstance(parameters, tuple)): + if isinstance(parameters, (list, tuple)): parameters = parameters[0] if compiler is None: @@ -3046,7 +3046,7 @@ class _UpdateBase(ClauseElement): if parameters is None: return None - if isinstance(parameters, list) or isinstance(parameters, tuple): + if isinstance(parameters, (list, tuple)): pp = {} i = 0 for c in self.table.c: diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index 47e729d7de..028baf8aaa 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -59,7 +59,7 @@ else: def to_list(x, default=None): if x is None: return default - if not isinstance(x, list) and not isinstance(x, tuple): + if not isinstance(x, (list, tuple)): return [x] else: return x -- 2.47.3