Skip to content

Commit 8e3ce80

Browse files
authored
fix: let uv replace the directory instead of deleting it ourselves (#981)
* fix: try harder to remove directories on failure Signed-off-by: Henry Schreiner <[email protected]> * fix: adjust permissions Signed-off-by: Henry Schreiner <[email protected]> * fix: warn and ignore PermissionsError Signed-off-by: Henry Schreiner <[email protected]> * fix: try os.remove Signed-off-by: Henry Schreiner <[email protected]> * fix: just warn on PermissionsError Signed-off-by: Henry Schreiner <[email protected]> * fix: ignore more errors Signed-off-by: Henry Schreiner <[email protected]> * fix: use uv's cleaning instead of doing it ourselves Signed-off-by: Henry Schreiner <[email protected]> * tests: coverage for uv env deletion Signed-off-by: Henry Schreiner <[email protected]> --------- Signed-off-by: Henry Schreiner <[email protected]>
1 parent 2fffa15 commit 8e3ce80

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

nox/virtualenv.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,9 @@ def _clean_location(self) -> bool:
515515
and self._check_reused_environment_interpreter()
516516
):
517517
return False
518-
shutil.rmtree(self.location, ignore_errors=True)
518+
# uv clears it for us, and it balks at files left around
519+
if self.venv_backend != "uv":
520+
shutil.rmtree(self.location, ignore_errors=True)
519521
return True
520522

521523
def _read_pyvenv_cfg(self) -> dict[str, str] | None:

tests/test_virtualenv.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,9 @@ def test_uv_creation(
304304
venv.create()
305305
assert venv._check_reused_environment_type()
306306

307+
venv.create()
308+
assert venv._check_reused_environment_type()
309+
307310

308311
@has_uv
309312
def test_uv_managed_python(

0 commit comments

Comments
 (0)