code: def ReplaceChild(self, key, item):
          '''
          Method to remove child at <key> and replace it with <item>, then put the child back onto the end of the list
  
          :param key: index to position <item>
  
          :param item: child object to add
  
          :return:
          '''
          if key in self.GetChildrenIndexes():
              node = self.GetChild(key)
              children = node.GetChildrenIndexes()
              child_nodes = [(i, node.GetChild(i)) for i in children]
              self.children[key] = item
              [self.children[key].AddChild(kid[1], kid[0])
               for kid in child_nodesf ReplaceChild(self, key, item):
          '''
          Method to remove child at <key> and replace it with <item>, then put the child back onto the end of the list
  
          :param key: index to position <item>
  
          :param item: child object to add
  
          :return:
          '''
          if key in self.GetChildrenIndexes():
              node = self.GetChild(key)
              children = node.GetChildrenIndexes()
              child_nodes = [(i, node.GetChild(i)) for i in children]
              self.children[key] = item
              [self.children[key].AddChild(kid[1], kid[0])
               for kid in child_nodes]
docs: Method to remove child at <key> and replace it with <item>, then put the child back onto the end of the list
  
          :param key: index to position <item>
  
          :param item: child object to add
  
          :return: