def pop_all(self):
        """Preserve the context stack by transferring it to a new instance"""
        new_stack = type(self)()
        new_stack._exit_callbacks = self._exit_callbacks
        self._exit_callbacks = deque()
        return new_stack
Preserve the context stack by transferring it to a new instance
product/gradle-plugin/src/main/python/pip/_vendor/contextlib2.py