def put_container(self, path):
        """
        Creates a container at the specified path, creating any necessary
        intermediate containers.

        :param path: str or Path instance
        :raises ValueError: A component of path is a field name.
        """
        path = make_path(path)
        container = self
        for segment in path:
            try:
                container = container._values[segment]
                if not isinstance(container, ValueTree):
                    raise ValueError()
            except KeyError:
                valuetree = ValueTree()
                container._values[segment] = valuetree
                container = valuetree
Creates a container at the specified path, creating any necessary
        intermediate containers.

        :param path: str or Path instance
        :raises ValueError: A component of path is a field name.