From: Jonathan Ellis Date: Fri, 3 Aug 2007 13:57:40 +0000 (+0000) Subject: switch (simple) occurences of 'if len(x)' to 'if x': find . -name '*.py' |xargs perl... X-Git-Tag: rel_0_4beta1~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7575a738d420a564e7a22f3347ab8f4442110bb;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git switch (simple) occurences of 'if len(x)' to 'if x': find . -name '*.py' |xargs perl -pi.bak -e 's/if len\((\S+)\):/if $1:/' && find . -name '*.bak' |xargs rm --- diff --git a/doc/build/lib/highlight.py b/doc/build/lib/highlight.py index 1a838408b7..2fff3704ed 100644 --- a/doc/build/lib/highlight.py +++ b/doc/build/lib/highlight.py @@ -170,7 +170,7 @@ class PythonHighlighter(Highlighter): curc = t[2][1] if self.get_style(t[0], t[1]) != curstyle: - if len(tokens): + if tokens: self.colorize([(string.join(tokens, ''), curstyle)]) tokens = [] curstyle = self.get_style(t[0], t[1]) @@ -187,7 +187,7 @@ class PythonHighlighter(Highlighter): curl = t[3][0] # any remaining content to output, output it - if len(tokens): + if tokens: self.colorize([(string.join(tokens, ''), curstyle)]) if trailingspace: diff --git a/doc/build/lib/toc.py b/doc/build/lib/toc.py index dcad5d5c63..b629513456 100644 --- a/doc/build/lib/toc.py +++ b/doc/build/lib/toc.py @@ -44,7 +44,7 @@ class TOCElement(object): self.next = None self.children = [] if parent: - if len(parent.children): + if parent.children: self.previous = parent.children[-1] parent.children[-1].next = self parent.children.append(self) diff --git a/doc/build/read_markdown.py b/doc/build/read_markdown.py index 858283bdee..aad2502d76 100644 --- a/doc/build/read_markdown.py +++ b/doc/build/read_markdown.py @@ -25,7 +25,7 @@ def dump_tree(elem, stream): dump_mako_tag(elem, stream) else: if elem.tag != 'html': - if len(elem.attrib): + if elem.attrib: stream.write("<%s %s>" % (elem.tag, " ".join(["%s=%s" % (key, repr(val)) for key, val in elem.attrib.iteritems()]))) else: stream.write("<%s>" % elem.tag) diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py index 01e0a3c9d3..e36f04c1a1 100644 --- a/lib/sqlalchemy/ansisql.py +++ b/lib/sqlalchemy/ansisql.py @@ -281,7 +281,7 @@ class ANSICompiler(engine.Compiled, sql.ClauseVisitor): def visit_label(self, label): labelname = self._truncated_identifier("colident", label.name) - if len(self.select_stack): + if self.select_stack: self.typemap.setdefault(labelname.lower(), label.obj.type) if isinstance(label.obj, sql._ColumnClause): self.column_labels[label.obj._label] = labelname @@ -299,7 +299,7 @@ class ANSICompiler(engine.Compiled, sql.ClauseVisitor): else: name = column.name - if len(self.select_stack): + if self.select_stack: # if we are within a visit to a Select, set up the "typemap" # for this column which is used to translate result set values self.typemap.setdefault(name.lower(), column.type) @@ -358,13 +358,13 @@ class ANSICompiler(engine.Compiled, sql.ClauseVisitor): return self.process(clause.clause_expr) def visit_cast(self, cast, **kwargs): - if len(self.select_stack): + if self.select_stack: # not sure if we want to set the typemap here... self.typemap.setdefault("CAST", cast.type) return "CAST(%s AS %s)" % (self.process(cast.clause), self.process(cast.typeclause)) def visit_function(self, func, **kwargs): - if len(self.select_stack): + if self.select_stack: self.typemap.setdefault(func.name, func.type) if not self.apply_function_parens(func): return ".".join(func.packagenames + [func.name]) @@ -544,7 +544,7 @@ class ANSICompiler(engine.Compiled, sql.ClauseVisitor): else: whereclause = w - if len(froms): + if froms: text += " \nFROM " text += string.join(from_strings, ', ') else: @@ -799,7 +799,7 @@ class ANSISchemaGenerator(ANSISchemaBase): # On some DB order is significant: visit PK first, then the # other constraints (engine.ReflectionTest.testbasic failed on FB2) - if len(table.primary_key): + if table.primary_key: self.traverse_single(table.primary_key) for constraint in [c for c in table.constraints if c is not table.primary_key]: self.traverse_single(constraint) diff --git a/lib/sqlalchemy/databases/firebird.py b/lib/sqlalchemy/databases/firebird.py index 065894437c..307fceb483 100644 --- a/lib/sqlalchemy/databases/firebird.py +++ b/lib/sqlalchemy/databases/firebird.py @@ -318,7 +318,7 @@ class FBCompiler(ansisql.ANSICompiler): return self.process(alias.original, asfrom=True) def visit_function(self, func): - if len(func.clauses): + if func.clauses: return super(FBCompiler, self).visit_function(func) else: return func.name diff --git a/lib/sqlalchemy/databases/informix.py b/lib/sqlalchemy/databases/informix.py index b4471df58c..e98a5467e3 100644 --- a/lib/sqlalchemy/databases/informix.py +++ b/lib/sqlalchemy/databases/informix.py @@ -407,7 +407,7 @@ class InfoCompiler(ansisql.ANSICompiler): return "" def __visit_label(self, label): - if len(self.select_stack): + if self.select_stack: self.typemap.setdefault(label.name.lower(), label.obj.type) if self.strings[label.obj]: self.strings[label] = self.strings[label.obj] + " AS " + label.name diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index d4a2ac59f4..e95951f4ae 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -1136,7 +1136,7 @@ class MySQLDialect(ansisql.ANSIDialect): ssl[key[4:]] = opts[key] util.coerce_kw_type(ssl, key[4:], str) del opts[key] - if len(ssl): + if ssl: opts['ssl'] = ssl # FOUND_ROWS must be set in CLIENT_FLAGS to enable diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index 3f16c2b0d4..15f6a2065c 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -331,7 +331,7 @@ class SQLiteCompiler(ansisql.ANSICompiler): if self.dialect.supports_cast: return super(SQLiteCompiler, self).visit_cast(cast) else: - if len(self.select_stack): + if self.select_stack: # not sure if we want to set the typemap here... self.typemap.setdefault("CAST", cast.type) return self.process(cast.clause) diff --git a/lib/sqlalchemy/engine/strategies.py b/lib/sqlalchemy/engine/strategies.py index 910a1049de..ed9422d157 100644 --- a/lib/sqlalchemy/engine/strategies.py +++ b/lib/sqlalchemy/engine/strategies.py @@ -99,7 +99,7 @@ class DefaultEngineStrategy(EngineStrategy): engine_args[k] = kwargs.pop(k) # all kwargs should be consumed - if len(kwargs): + if kwargs: raise TypeError("Invalid argument(s) %s sent to create_engine(), using configuration %s/%s/%s. Please check that the keyword arguments are appropriate for this combination of components." % (','.join(["'%s'" % k for k in kwargs]), dialect.__class__.__name__, pool.__class__.__name__, engineclass.__name__)) return engineclass(pool, dialect, u, **engine_args) diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index 1da76d7b2a..98d4d442e1 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -61,7 +61,7 @@ class URL(object): s += ':' + str(self.port) if self.database is not None: s += '/' + self.database - if len(self.query): + if self.query: keys = self.query.keys() keys.sort() s += '?' + "&".join(["%s=%s" % (k, self.query[k]) for k in keys]) diff --git a/lib/sqlalchemy/orm/dependency.py b/lib/sqlalchemy/orm/dependency.py index cfe501695a..c04771b232 100644 --- a/lib/sqlalchemy/orm/dependency.py +++ b/lib/sqlalchemy/orm/dependency.py @@ -369,7 +369,7 @@ class ManyToManyDP(DependencyProcessor): uowcommit.attributes[(self, "manytomany", obj, child)] = True secondary_delete.append(associationrow) - if len(secondary_delete): + if secondary_delete: secondary_delete.sort() # TODO: precompile the delete/insert queries? statement = self.secondary.delete(sql.and_(*[c == sql.bindparam(c.key, type_=c.type) for c in self.secondary.c if c.key in associationrow])) @@ -377,7 +377,7 @@ class ManyToManyDP(DependencyProcessor): if result.supports_sane_rowcount() and result.rowcount != len(secondary_delete): raise exceptions.ConcurrentModificationError("Deleted rowcount %d does not match number of objects deleted %d" % (result.rowcount, len(secondary_delete))) - if len(secondary_insert): + if secondary_insert: statement = self.secondary.insert() connection.execute(statement, secondary_insert) diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index 4d668e3b55..016803874a 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -182,7 +182,7 @@ class Mapper(object): if getattr(klass, key).hasparent(obj, optimistic=optimistic): return False else: - if len(self.delete_orphans): + if self.delete_orphans: if not has_identity(obj): raise exceptions.FlushError("instance %s is an unsaved, pending instance and is an orphan (is not attached to %s)" % ( @@ -1097,7 +1097,7 @@ class Mapper(object): history = prop.get_history(obj, passive=True) if history: a = history.added_items() - if len(a): + if a: if isinstance(a[0], sql.ClauseElement): value_params[col] = a[0] else: @@ -1127,7 +1127,7 @@ class Mapper(object): else: insert.append((obj, params, mapper, connection, value_params)) - if len(update): + if update: mapper = table_to_mapper[table] clause = sql.and_() for col in mapper.pks_by_table[table]: @@ -1155,7 +1155,7 @@ class Mapper(object): if c.supports_sane_rowcount() and rows != len(update): raise exceptions.ConcurrentModificationError("Updated rowcount %d does not match number of objects updated %d" % (rows, len(update))) - if len(insert): + if insert: statement = table.insert() def comparator(a, b): return cmp(a[0]._sa_insert_order, b[0]._sa_insert_order) @@ -1217,7 +1217,7 @@ class Mapper(object): elif v != params.get_original(c.key): self.set_attr_by_column(obj, c, params.get_original(c.key)) - if len(deferred_props): + if deferred_props: deferred_load(obj, props=deferred_props) def delete_obj(self, objects, uowtransaction): diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 7923a55dbe..1c050d4f38 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -422,7 +422,7 @@ class PropertyLoader(StrategizedProperty): self.target.corresponding_column(col, raiseerr=False) is not None or \ self.secondary.corresponding_column(col, raiseerr=False) is not None - if len(self.foreign_keys): + if self.foreign_keys: self._opposite_side = util.Set() def visit_binary(binary): if binary.operator != operator.eq or not isinstance(binary.left, schema.Column) or not isinstance(binary.right, schema.Column): @@ -485,7 +485,7 @@ class PropertyLoader(StrategizedProperty): else: self.direction = sync.MANYTOONE - elif len(self.remote_side): + elif self.remote_side: for f in self.foreign_keys: if f in self.remote_side: self.direction = sync.ONETOMANY diff --git a/lib/sqlalchemy/orm/scoping.py b/lib/sqlalchemy/orm/scoping.py index 3ae63b49ae..96d9a23fc0 100644 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@ -25,7 +25,7 @@ class ScopedSession(object): global_extensions.append(_ScopedExt(self)) def __call__(self, **kwargs): - if len(kwargs): + if kwargs: scope = kwargs.pop('scope', False) if scope is not None: if self.registry.has(): diff --git a/lib/sqlalchemy/orm/strategies.py b/lib/sqlalchemy/orm/strategies.py index 6e2860f3ab..0afd24f70a 100644 --- a/lib/sqlalchemy/orm/strategies.py +++ b/lib/sqlalchemy/orm/strategies.py @@ -351,7 +351,7 @@ class LazyLoader(AbstractRelationLoader): if self.uselist: return result else: - if len(result): + if result: return result[0] else: return None diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py index f59042810a..bf06896c1b 100644 --- a/lib/sqlalchemy/orm/unitofwork.py +++ b/lib/sqlalchemy/orm/unitofwork.py @@ -964,12 +964,12 @@ class UOWDependencyProcessor(object): ret = False elements = [getobj(elem) for elem in self.targettask.polymorphic_tosave_elements if elem.obj is not None and not elem.is_preprocessed(self)] - if len(elements): + if elements: ret = True self.processor.preprocess_dependencies(self.targettask, elements, trans, delete=False) elements = [getobj(elem) for elem in self.targettask.polymorphic_todelete_elements if elem.obj is not None and not elem.is_preprocessed(self)] - if len(elements): + if elements: ret = True self.processor.preprocess_dependencies(self.targettask, elements, trans, delete=True) return ret diff --git a/lib/sqlalchemy/orm/uowdumper.py b/lib/sqlalchemy/orm/uowdumper.py index 22b0ec8283..2467182291 100644 --- a/lib/sqlalchemy/orm/uowdumper.py +++ b/lib/sqlalchemy/orm/uowdumper.py @@ -26,7 +26,7 @@ class UOWDumper(unitofwork.UOWExecutor): self.headers = {} try: i = self._indent() - if len(i): + if i: i += "-" #i = i[0:-1] + "-" self.buf.write(self._indent() + "\n") diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index b1665b2c5b..ce17208473 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -144,7 +144,7 @@ class _TableSingleton(sql._FigureVisitName): key = _get_table_key(name, schema) try: table = metadata.tables[key] - if len(args): + if args: if not useexisting: raise exceptions.ArgumentError("Table '%s' is already defined for this MetaData instance." % key) return table @@ -526,7 +526,7 @@ class Column(SchemaItem, sql._ColumnClause): self.constraints = util.Set() self.__originating_column = self self._foreign_keys = util.OrderedSet() - if len(kwargs): + if kwargs: raise exceptions.ArgumentError("Unknown arguments passed to Column: " + repr(kwargs.keys())) primary_key = util.SimpleProperty('_primary_key') diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 8e8a12895d..a6db06423b 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -394,7 +394,7 @@ def case(whens, value=None, else_=None): whenlist = [ClauseList('WHEN', c, 'THEN', r, operator=None) for (c,r) in whens] if not else_ is None: whenlist.append(ClauseList('ELSE', else_, operator=None)) - if len(whenlist): + if whenlist: type = list(whenlist[-1])[-1].type else: type = None @@ -1051,7 +1051,7 @@ class ClauseElement(object): def execute(self, *multiparams, **params): """Compile and execute this ``ClauseElement``.""" - if len(multiparams): + if multiparams: compile_params = multiparams[0] else: compile_params = params @@ -1520,7 +1520,7 @@ class ColumnElement(Selectable, _CompareMixin): """) def _one_fkey(self): - if len(self._foreign_keys): + if self._foreign_keys: return list(self._foreign_keys)[0] else: return None @@ -1668,7 +1668,7 @@ class FromClause(Selectable): return [self.oid_column] def count(self, whereclause=None, **params): - if len(self.primary_key): + if self.primary_key: col = list(self.primary_key)[0] else: col = list(self.columns)[0] @@ -2772,7 +2772,7 @@ class TableClause(FromClause): raise NotImplementedError() def count(self, whereclause=None, **params): - if len(self.primary_key): + if self.primary_key: col = list(self.primary_key)[0] else: col = list(self.columns)[0] @@ -2901,7 +2901,7 @@ class CompoundSelect(_SelectBaseMixin, FromClause): # some DBs do not like ORDER BY in the inner queries of a UNION, etc. for n, s in enumerate(selects): - if len(s._order_by_clause): + if s._order_by_clause: s = s.order_by(None) # unions group from left to right, so don't group first select if n: diff --git a/test/orm/cycles.py b/test/orm/cycles.py index ce3065f777..6acca13e78 100644 --- a/test/orm/cycles.py +++ b/test/orm/cycles.py @@ -795,7 +795,7 @@ class SelfReferentialPostUpdateTest(AssertMixin): session = create_session() def append_child(parent, child): - if len(parent.children): + if parent.children: parent.children[-1].next_sibling = child child.prev_sibling = parent.children[-1] parent.children.append(child) diff --git a/test/orm/unitofwork.py b/test/orm/unitofwork.py index 765c360c97..839afe77c1 100644 --- a/test/orm/unitofwork.py +++ b/test/orm/unitofwork.py @@ -1274,7 +1274,7 @@ class ManyToManyTest(UnitOfWorkTest): objects.append(item) item.item_name = elem['item_name'] item.keywords = [] - if len(elem['keywords'][1]): + if elem['keywords'][1]: klist = Session.query(keywordmapper).select(keywords.c.name.in_(*[e['name'] for e in elem['keywords'][1]])) else: klist = [] diff --git a/test/testlib/testing.py b/test/testlib/testing.py index 1c6690a786..15a9fd768d 100644 --- a/test/testlib/testing.py +++ b/test/testlib/testing.py @@ -394,7 +394,7 @@ def runTests(suite): def main(suite=None): if not suite: - if len(sys.argv[1:]): + if sys.argv[1:]: suite =unittest.TestLoader().loadTestsFromNames( sys.argv[1:], __import__('__main__')) else: