[Python-checkins] r54722 - in sandbox/trunk/2to3: fixes/fix_except.py fixes/fix_intern.py fixes/fix_raise.py fixes/fix_throw.py fixes/util.py pytree.py tests/test_pytree.py tests/test_util.py

collin.winter python-checkins at python.org
Mon Apr 9 03:49:31 CEST 2007


Author: collin.winter
Date: Mon Apr 9 03:49:30 2007
New Revision: 54722
Modified:
 sandbox/trunk/2to3/fixes/fix_except.py
 sandbox/trunk/2to3/fixes/fix_intern.py
 sandbox/trunk/2to3/fixes/fix_raise.py
 sandbox/trunk/2to3/fixes/fix_throw.py
 sandbox/trunk/2to3/fixes/util.py
 sandbox/trunk/2to3/pytree.py
 sandbox/trunk/2to3/tests/test_pytree.py
 sandbox/trunk/2to3/tests/test_util.py
Log:
Convert node.children from a tuple to a list. Having it be a tuple meant jumping through casting hoops in order to modify the children; a list will enable more direct, more readable child manipulation.
Modified: sandbox/trunk/2to3/fixes/fix_except.py
==============================================================================
--- sandbox/trunk/2to3/fixes/fix_except.py	(original)
+++ sandbox/trunk/2to3/fixes/fix_except.py	Mon Apr 9 03:49:30 2007
@@ -67,7 +67,7 @@
 # Insert "old_N = new_N" as the first statement in
 # the except body. This loop skips leading whitespace
 # and indents
- suite_stmts = list(e_suite.children)
+ suite_stmts = e_suite.children
 for i, stmt in enumerate(suite_stmts):
 if isinstance(stmt, pytree.Node):
 break
@@ -81,7 +81,7 @@
 
 assign.parent = e_suite
 suite_stmts = suite_stmts[:i] + [assign] + suite_stmts
- e_suite.children = tuple(suite_stmts)
+ e_suite.children = suite_stmts
 
 children = [c.clone() for c in node.children[:3]] + try_cleanup
 return pytree.Node(node.type, children)
Modified: sandbox/trunk/2to3/fixes/fix_intern.py
==============================================================================
--- sandbox/trunk/2to3/fixes/fix_intern.py	(original)
+++ sandbox/trunk/2to3/fixes/fix_intern.py	Mon Apr 9 03:49:30 2007
@@ -35,13 +35,12 @@
 newarglist = pytree.Node(syms.arglist, [obj.clone()])
 after = results["after"]
 if after:
- after = tuple([n.clone() for n in after])
+ after = [n.clone() for n in after]
 new = pytree.Node(syms.power,
 Attr(Name("sys"), Name("intern")) +
- (pytree.Node(syms.trailer,
+ [pytree.Node(syms.trailer,
 [results["lpar"].clone(),
 newarglist,
- results["rpar"].clone()]),)
- + after)
+ results["rpar"].clone()])] + after)
 new.set_prefix(node.get_prefix())
 return new
Modified: sandbox/trunk/2to3/fixes/fix_raise.py
==============================================================================
--- sandbox/trunk/2to3/fixes/fix_raise.py	(original)
+++ sandbox/trunk/2to3/fixes/fix_raise.py	Mon Apr 9 03:49:30 2007
@@ -73,10 +73,8 @@
 tb.set_prefix("")
 
 e = Call(exc, args)
- with_tb = Attr(e, Name('with_traceback'))
- call_wtb = list(with_tb + (ArgList([tb]),)) 
-
- new = pytree.Node(syms.simple_stmt, [Name("raise")] + call_wtb)
+ with_tb = Attr(e, Name('with_traceback')) + [ArgList([tb])]
+ new = pytree.Node(syms.simple_stmt, [Name("raise")] + with_tb)
 new.set_prefix(node.get_prefix())
 return new
 else:
Modified: sandbox/trunk/2to3/fixes/fix_throw.py
==============================================================================
--- sandbox/trunk/2to3/fixes/fix_throw.py	(original)
+++ sandbox/trunk/2to3/fixes/fix_throw.py	Mon Apr 9 03:49:30 2007
@@ -52,9 +52,7 @@
 tb.set_prefix("")
 
 e = Call(exc, args)
- with_tb = Attr(e, Name('with_traceback'))
- call_wtb = list(with_tb + (ArgList([tb]),))
- 
- throw_args.replace(pytree.Node(syms.power, call_wtb))
+ with_tb = Attr(e, Name('with_traceback')) + [ArgList([tb])]
+ throw_args.replace(pytree.Node(syms.power, with_tb))
 else:
 throw_args.replace(Call(exc, args))
Modified: sandbox/trunk/2to3/fixes/util.py
==============================================================================
--- sandbox/trunk/2to3/fixes/util.py	(original)
+++ sandbox/trunk/2to3/fixes/util.py	Mon Apr 9 03:49:30 2007
@@ -23,13 +23,13 @@
 
 def Assign(target, source):
 """Build an assignment statement"""
- if not isinstance(target, tuple):
- target = (target,)
- if not isinstance(source, tuple):
+ if not isinstance(target, list):
+ target = [target]
+ if not isinstance(source, list):
 source.set_prefix(" ")
- source = (source,)
+ source = [source]
 
- return Node(syms.atom, target + (ass_leaf.clone(),) + source)
+ return Node(syms.atom, target + [ass_leaf.clone()] + source)
 
 def Name(name, prefix=None):
 """Return a NAME leaf"""
@@ -37,9 +37,8 @@
 
 def Attr(obj, attr):
 """A node tuple for obj.attr"""
- return (obj,
- Node(syms.trailer, [Leaf(token.DOT, '.'),
- attr]))
+ return [obj,
+ Node(syms.trailer, [Leaf(token.DOT, '.'), attr])]
 
 def Comma():
 """A comma leaf"""
@@ -157,9 +156,8 @@
 return child
 elif child.type == syms.simple_stmt:
 if child.children[0].type == syms.expr_stmt:
- n = _find(name, child.children[0].children[0])
- if n:
- return n
+ if _find(name, child.children[0].children[0]):
+ return child.children[0]
 
 _block_syms = set([syms.funcdef, syms.classdef, syms.trailer])
 def _find(name, node):
Modified: sandbox/trunk/2to3/pytree.py
==============================================================================
--- sandbox/trunk/2to3/pytree.py	(original)
+++ sandbox/trunk/2to3/pytree.py	Mon Apr 9 03:49:30 2007
@@ -159,7 +159,7 @@
 """
 assert type >= 256, type
 self.type = type
- self.children = tuple(children)
+ self.children = list(children)
 for ch in self.children:
 assert ch.parent is None, repr(ch)
 ch.parent = self
@@ -435,7 +435,7 @@
 assert content is None, repr(content)
 if content is not None:
 assert not isinstance(content, basestring), repr(content)
- content = tuple(content)
+ content = list(content)
 for i, item in enumerate(content):
 assert isinstance(item, BasePattern), (i, item)
 if isinstance(item, WildcardPattern):
@@ -548,7 +548,7 @@
 if results is not None:
 results.update(r)
 if self.name:
- results[self.name] = tuple(nodes)
+ results[self.name] = list(nodes)
 return True
 return False
 
Modified: sandbox/trunk/2to3/tests/test_pytree.py
==============================================================================
--- sandbox/trunk/2to3/tests/test_pytree.py	(original)
+++ sandbox/trunk/2to3/tests/test_pytree.py	Mon Apr 9 03:49:30 2007
@@ -75,14 +75,14 @@
 l2 = pytree.Leaf(200, "bar")
 n1 = pytree.Node(1000, [l1, l2])
 self.assertEqual(n1.type, 1000)
- self.assertEqual(n1.children, (l1, l2))
+ self.assertEqual(n1.children, [l1, l2])
 
 def testNodeRepr(self):
 l1 = pytree.Leaf(100, "foo")
 l2 = pytree.Leaf(100, "bar", context=(" ", (1, 0)))
 n1 = pytree.Node(1000, [l1, l2])
 self.assertEqual(repr(n1),
- "Node(1000, (%s, %s))" % (repr(l1), repr(l2)))
+ "Node(1000, [%s, %s])" % (repr(l1), repr(l2)))
 
 def testNodeStr(self):
 l1 = pytree.Leaf(100, "foo")
@@ -121,7 +121,7 @@
 l2 = pytree.Leaf(100, "+")
 l3 = pytree.Leaf(100, "bar")
 n1 = pytree.Node(1000, [l1, l2, l3])
- self.assertEqual(n1.children, (l1, l2, l3))
+ self.assertEqual(n1.children, [l1, l2, l3])
 self.failIf(n1.was_changed)
 l2new = pytree.Leaf(100, "-")
 l2.replace(l2new)
@@ -271,12 +271,12 @@
 self.assertEqual(sorted(r.keys()), ["pl", "pn", "pw"])
 self.assertEqual(r["pl"], l1)
 self.assertEqual(r["pn"], n2)
- self.assertEqual(r["pw"], (n2,))
+ self.assertEqual(r["pw"], [n2])
 # But this is equivalent
- self.assertEqual(r, {"pl": l1, "pn": n2, "pw": (n2,)})
+ self.assertEqual(r, {"pl": l1, "pn": n2, "pw": [n2]})
 r = {}
 self.assertEqual(pw.match_seq([l1, l3], r), True)
- self.assertEqual(r, {"pl": l3, "pw": (l1, l3)})
+ self.assertEqual(r, {"pl": l3, "pw": [l1, l3]})
 self.assert_(r["pl"] is l3)
 r = {}
 
@@ -306,7 +306,7 @@
 c, r = matches[0]
 self.assertEqual(c, 1)
 self.assertEqual(str(r["pr"]), "abcdef")
- self.assertEqual(r["pw"], (la, lb, lc, ld, le, lf))
+ self.assertEqual(r["pw"], [la, lb, lc, ld, le, lf])
 for c in "abcdef":
 self.assertEqual(r["p" + c], pytree.Leaf(1, c))
 
@@ -318,10 +318,10 @@
 l1 = pytree.Leaf(7, "(")
 l2 = pytree.Leaf(3, "x")
 l3 = pytree.Leaf(8, ")")
- node = pytree.Node(331, (l1, l2, l3))
+ node = pytree.Node(331, [l1, l2, l3])
 r = {}
 self.assert_(pattern.match(node, r))
- self.assertEqual(r["args"], (l2,))
+ self.assertEqual(r["args"], [l2])
 
 
 if __name__ == "__main__":
Modified: sandbox/trunk/2to3/tests/test_util.py
==============================================================================
--- sandbox/trunk/2to3/tests/test_util.py	(original)
+++ sandbox/trunk/2to3/tests/test_util.py	Mon Apr 9 03:49:30 2007
@@ -71,7 +71,7 @@
 from fixes.util import Attr, Name
 
 attr = Attr(Name("a"), Name("b"))
- self.assertEqual(type(attr), tuple)
+ self.assertEqual(type(attr), list)
 
 
 class Test_Name(MacroTestCase):


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /