Coverage for /pythoncovmergedfiles/medio/medio/src/underscore/underscore/assignment_manager.py: 95%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

20 statements  

1# Copyright (c) 2013 Huan Do, http://huan.do 

2 

3import ast 

4 

5from utils import value_of, \ 

6 VALUE_FUNC 

7 

8class AssignmentManager(object): 

9 def __init__(self): 

10 self.aliases = {} 

11 self.assignments = {} 

12 

13 def get_assign_node(self): 

14 target_elts = [] 

15 value_elts = [] 

16 for name, node in sorted(self.assignments.items()): 

17 target_elts.append(ast.Name(id=name, ctx=ast.Store())) 

18 value_elts.append(node) 

19 return ast.Assign(targets=[ast.Tuple(elts=target_elts)], 

20 value=ast.Tuple(elts=value_elts)) 

21 

22 def add_assignment(self, left_name, right_node): 

23 val = value_of(right_node) 

24 self.aliases[val] = left_name 

25 self.assignments[left_name] = right_node 

26 

27 def get_new_name(self, old_name): 

28 return self.aliases.get(old_name)