Пример #1
0
 def do(self, rvalue):
     for c in rvalue.children[:]:
         tree.disconnect(c, rvalue)
     rvalue.naked_instance = self.new
     active_type = rvalue.rtype.get_active(self.new)
     vIndexes = b.wrap(active_type, self.new)
     for vIndex in vIndexes:
         tree.connect(vIndex, rvalue)
     #==
     if isinstance(rvalue.naked_instance, list):
         assert len(rvalue.children[0].children)==len(rvalue.naked_instance)
Пример #2
0
 def do(self, rvalue):
     #==
     assert rvalue.rtype.is_multi_list()
     n        = len(rvalue.naked_instance)
     tIndex   = rvalue.rtype.children[0]
     vIndexes = b.wrap(tIndex, [self.new])
     rvalue.naked_instance.append(self.new) #modification in place
     for vIndex in vIndexes:
         vIndex.idx = vIndex.idx + n
         tree.connect(vIndex, rvalue)
     #==
     assert len(rvalue.children)==len(rvalue.naked_instance)
Пример #3
0
 def do(self, rvalue):
     #==
     assert rvalue.rtype.is_multi_list()
     tIndex   = rvalue.rtype.children[0]
     idx, val = self.new
     vIndexes = b.wrap(tIndex, [val])
     rvalue.naked_instance.insert(idx, val) #modification in place
     assert len(vIndexes) == 1
     vIndex     = vIndexes[0]
     vIndex.idx = idx
     for c in rvalue.children[idx:]:
         c.idx += 1
     tree.connect(vIndex, rvalue)
     #==
     assert len(rvalue.children)==len(rvalue.naked_instance)