HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/nbconvert/utils/_contextlib_chdir.py
"""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())