code: def append_child_object(self, linenum, indent, path):
          
          frame = self.current_frame()
          assert isinstance(frame,RootFrame) or isinstance(frame,ContainerFrame) and frame.indent < indent
          assert len(path.segments) > 0
          container = frame.container
          if container.contains_container(path):
              raise KeyError("container exists at path {0}".format(path))
          container.put_container(path)
          container = container.get_container(path)
          path = frame.path + path
          frame = ContainerFrame(linenum, indent, path, container)
          self.push_frame(frame)
docs: :param linenum: The line number of the frame.
          :type linenum: int
          :param indent: The indentation level of the frame.
          :type indent: int
          :param path:
          :type path: Path