commit: 3b34d5721862349399841c0657af76b99b770ed4
Author: Brian Harring <ferringb <AT> gmail <DOT> com>
AuthorDate: Sat Dec 13 17:28:20 2025 +0000
Commit: Brian Harring <ferringb <AT> gmail <DOT> com>
CommitDate: Sat Dec 13 19:53:41 2025 +0000
URL:
https://gitweb.gentoo.org/proj/pkgcore/snakeoil.git/commit/?id=3b34d572
chore: mark removal in 0.12.0 for contexts.chdir since contextlib.chdir exists
Signed-off-by: Brian Harring <ferringb <AT> gmail.com>
src/snakeoil/contexts.py | 25 ++++++++++---------------
tests/snakeoil_compression/test_init.py | 3 ++-
tests/test_contexts.py | 5 ++++-
tests/test_process_spawn.py | 3 ++-
4 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/snakeoil/contexts.py b/src/snakeoil/contexts.py
index 394574b..8b348b9 100644
--- a/src/snakeoil/contexts.py
+++ b/src/snakeoil/contexts.py
@@ -1,5 +1,6 @@
"""Various with-statement context utilities."""
+import contextlib
import errno
import inspect
import os
@@ -10,9 +11,12 @@ import sys
import threading
import traceback
from contextlib import AbstractContextManager, contextmanager
+from contextlib import chdir as _contextlib_chdir
from importlib import import_module
from multiprocessing.connection import Pipe
+from snakeoil._internals import deprecated
+
from .cli.exceptions import UserException
from .process import namespaces
from .sequences import predicate_split
@@ -356,21 +360,12 @@ class GitStash(AbstractContextManager):
raise UserException(f"git failed applying stash: {error}")
-@contextmanager
-def chdir(path):
- """Context manager that changes the current working directory.
-
- On exiting the context, the current working directory is switched back to
- its original value.
-
- :param path: The directory path to change the working directory to.
- """
- orig_cwd = os.getcwd()
- os.chdir(path)
- try:
- yield
- finally:
- os.chdir(orig_cwd)
+@deprecated(
+ "snakeoil.contexts.chdir is deprecated. Use contextlib.chdir instead",
+ removal_in=(0, 12, 0),
+)
+def chdir(path: str) -> contextlib.chdir:
+ return _contextlib_chdir(path)
@contextmanager
diff --git a/tests/snakeoil_compression/test_init.py
b/tests/snakeoil_compression/test_init.py
index 9219560..01fce8b 100644
--- a/tests/snakeoil_compression/test_init.py
+++ b/tests/snakeoil_compression/test_init.py
@@ -1,10 +1,11 @@
import shutil
import subprocess
import sys
+from contextlib import chdir
import pytest
+
from snakeoil.compression import ArComp, ArCompError, _TarBZ2
-from snakeoil.contexts import chdir
from . import hide_binary
diff --git a/tests/test_contexts.py b/tests/test_contexts.py
index e08e995..2c539d1 100644
--- a/tests/test_contexts.py
+++ b/tests/test_contexts.py
@@ -4,12 +4,15 @@ import platform
import random
import socket
import sys
+from contextlib import chdir
import pytest
-from snakeoil.contexts import Namespace, SplitExec, chdir, syspath
+from snakeoil.contexts import Namespace, SplitExec, syspath
+from snakeoil.deprecation import suppress_deprecations
+@suppress_deprecations()
def test_chdir(tmpdir):
orig_cwd = os.getcwd()
diff --git a/tests/test_process_spawn.py b/tests/test_process_spawn.py
index 556b34c..959bc7a 100644
--- a/tests/test_process_spawn.py
+++ b/tests/test_process_spawn.py
@@ -1,9 +1,10 @@
import os
import signal
+from contextlib import chdir
import pytest
+
from snakeoil import process
-from snakeoil.contexts import chdir
from snakeoil.process import spawn
BASH_BINARY = process.find_binary("bash", fallback="")