1.1 --- a/simplify.py Fri Dec 08 23:41:20 2006 +0100
1.2 +++ b/simplify.py Sat Dec 09 00:36:06 2006 +0100
1.3 @@ -50,9 +50,9 @@
1.4 Covered: Add, And, AssAttr, AssList, AssName, AssTuple, Assign, AugAssign,
1.5 Break, CallFunc, Class, Compare, Const, Continue, Dict, Discard,
1.6 Div, FloorDiv, For, From, Function, Getattr, Global, If, Import,
1.7 - Invert, Keyword, Lambda, List, Module, Mul, Name, Not, Or, Pass,
1.8 - Power, Print, Printnl, Raise, Return, Slice, Stmt, Sub, Subscript,
1.9 - TryExcept, TryFinally, Tuple, While, UnaryAdd, UnarySub.
1.10 + Invert, Keyword, Lambda, List, Mod, Module, Mul, Name, Not, Or,
1.11 + Pass, Power, Print, Printnl, Raise, Return, Slice, Stmt, Sub,
1.12 + Subscript, TryExcept, TryFinally, Tuple, While, UnaryAdd, UnarySub.
1.13
1.14 Missing: Assert, Backquote, Bitand, Bitor, Bitxor, Decorators, Ellipsis,
1.15 Exec, LeftShift, ListComp, ListCompFor, ListCompIf, RightShift,
1.16 @@ -710,7 +710,13 @@
1.17 def visitFrom(self, from_):
1.18 result = Assign(from_, 1)
1.19 code = []
1.20 - code.append(StoreTemp(expr=Import(name=from_.modname)))
1.21 + _names = []
1.22 + code.append(
1.23 + StoreTemp(
1.24 + expr=Import(name=from_.modname)
1.25 + )
1.26 + )
1.27 + from_._modname = code[-1].expr
1.28 for name, alias in from_.names:
1.29 code.append(
1.30 StoreName(
1.31 @@ -720,8 +726,10 @@
1.32 name=(alias or name)
1.33 )
1.34 )
1.35 + _names.append(code[-1].expr)
1.36 code.append(ReleaseTemp())
1.37 result.code = code
1.38 + from_._names = _names
1.39 return result
1.40
1.41 def _visitFunction(self, function, subprogram):
1.42 @@ -876,11 +884,14 @@
1.43 def visitImport(self, import_):
1.44 result = Assign(import_, 1)
1.45 code = []
1.46 + _names = []
1.47 for path, alias in import_.names:
1.48 importer = Import(name=path)
1.49 top = alias or path.split(".")[0]
1.50 code.append(StoreName(expr=importer, name=top))
1.51 + _names.append(code[-1].expr)
1.52 result.code = code
1.53 + import_._names = _names
1.54 return result
1.55
1.56 def visitInvert(self, invert):
1.57 @@ -911,6 +922,9 @@
1.58 def visitList(self, list):
1.59 return self._visitBuiltin(list, "list")
1.60
1.61 + def visitMod(self, mod):
1.62 + return self._visitBinary(mod, "__mod__", "__rmod__")
1.63 +
1.64 def visitMul(self, mul):
1.65 return self._visitBinary(mul, "__mul__", "__rmul__")
1.66