| 12345678910111213141516171819202122 |
- """Backport of Python 3.11's contextlib.chdir."""
- import os
- from contextlib import AbstractContextManager
- class chdir(AbstractContextManager): # type:ignore[type-arg]
- """Non thread-safe context manager to change the current working directory."""
- def __init__(self, path):
- """Initialize the manager."""
- self.path = path
- self._old_cwd = []
- def __enter__(self):
- """Enter the context."""
- self._old_cwd.append(os.getcwd())
- os.chdir(self.path)
- def __exit__(self, *excinfo):
- """Exit the context."""
- os.chdir(self._old_cwd.pop())
|