Clones the state of the current operation.

        The state is cloned so that you can freeze the state at a certain point for re-use.

        ::

            >>> cat = dolt.cat
            >>> cat.get_url()
            '/cat'
            >>> o = cat.foo
            >>> o.get_url()
            '/cat/foo'
            >>> cat.get_url()
            '/cat'

def _clone(self):
        """
        Clones the state of the current operation.

        The state is cloned so that you can freeze the state at a certain point for re-use.

        ::

            >>> cat = dolt.cat
            >>> cat.get_url()
            '/cat'
            >>> o = cat.foo
            >>> o.get_url()
            '/cat/foo'
            >>> cat.get_url()
            '/cat'

        """
        cls = self.__class__
        q = cls.__new__(cls)
        q.__dict__ = self.__dict__.copy()
        q._params = self._params.copy()
        q._headers = self._headers.copy()
        q._attribute_stack = self._attribute_stack[:]

        return q