Mercurial > genshi > genshi-test
diff genshi/template/ast24.py @ 902:09cc3627654c experimental-inline
Sync `experimental/inline` branch with [source:trunk@1126].
author | cmlenz |
---|---|
date | Fri, 23 Apr 2010 21:08:26 +0000 |
parents | 1837f39efd6f |
children |
line wrap: on
line diff
--- a/genshi/template/ast24.py +++ b/genshi/template/ast24.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2008 Edgewall Software +# Copyright (C) 2008-2009 Edgewall Software # All rights reserved. # # This software is licensed as described in the file COPYING, which @@ -27,7 +27,7 @@ if ret._fields: for attr, value in zip(ret._fields, args): if attr in kwargs: - raise ValueError, 'Field set both in args and kwargs' + raise ValueError('Field set both in args and kwargs') setattr(ret, attr, value) for attr in kwargs: if (getattr(ret, '_fields', None) and attr in ret._fields) \ @@ -101,7 +101,7 @@ return self._new(_ast.Tuple, elts, _ast.Store()) else: raise NotImplemented - + args = [] for arg in tab: if isinstance(arg, str): @@ -111,7 +111,7 @@ else: assert False, node.__class__ - defaults = map(self.visit, node.defaults) + defaults = [self.visit(d) for d in node.defaults] return self._new(_ast.arguments, args, vararg, kwarg, defaults) @@ -378,7 +378,7 @@ def visit_Const(self, node): if node.value is None: # appears in slices return None - elif isinstance(node.value, (str, unicode,)): + elif isinstance(node.value, basestring): return self._new(_ast.Str, node.value) else: return self._new(_ast.Num, node.value) @@ -471,8 +471,7 @@ return self._new(_ast.Subscript, self.visit(node.expr), slice, ctx) def visit_Sliceobj(self, node): - a = node.nodes + [None]*(3 - len(node.nodes)) - a = map(self.visit, a) + a = [self.visit(n) for n in node.nodes + [None]*(3 - len(node.nodes))] return self._new(_ast.Slice, a[0], a[1], a[2]) def visit_Ellipsis(self, node): @@ -497,8 +496,8 @@ return False else: return True - statements = [_check_del(self.visit(n)) for n in node.nodes] - return filter(_keep, statements) + return [s for s in [_check_del(self.visit(n)) for n in node.nodes] + if _keep(s)] def parse(source, mode):