From: Vinay Sajip Date: Fri, 19 Jul 2013 10:03:55 +0000 (+0100) Subject: Closes #18479: Changed venv Activate.ps1 to make deactivate a function, and removed... X-Git-Tag: v3.4.0a1~145 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9007dd7274efe34c123c0c6d874f5395e3cfeb7f;p=python Closes #18479: Changed venv Activate.ps1 to make deactivate a function, and removed Deactivate.ps1. --- diff --git a/Lib/venv/scripts/nt/Activate.ps1 b/Lib/venv/scripts/nt/Activate.ps1 index 1c5ef98726..df789633ce 100644 --- a/Lib/venv/scripts/nt/Activate.ps1 +++ b/Lib/venv/scripts/nt/Activate.ps1 @@ -1,25 +1,40 @@ -$env:VIRTUAL_ENV="__VENV_DIR__" +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + if (Test-Path function:_OLD_VIRTUAL_PROMPT) { + copy-item function:_OLD_VIRTUAL_PROMPT function:prompt + remove-item function:_OLD_VIRTUAL_PROMPT + } -# Revert to original values -if (Test-Path function:_OLD_VIRTUAL_PROMPT) { - copy-item function:_OLD_VIRTUAL_PROMPT function:prompt - remove-item function:_OLD_VIRTUAL_PROMPT -} + if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) { + copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME + remove-item env:_OLD_VIRTUAL_PYTHONHOME + } -if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) { - copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME - remove-item env:_OLD_VIRTUAL_PYTHONHOME -} + if (Test-Path env:_OLD_VIRTUAL_PATH) { + copy-item env:_OLD_VIRTUAL_PATH env:PATH + remove-item env:_OLD_VIRTUAL_PATH + } -if (Test-Path env:_OLD_VIRTUAL_PATH) { - copy-item env:_OLD_VIRTUAL_PATH env:PATH - remove-item env:_OLD_VIRTUAL_PATH + if (Test-Path env:VIRTUAL_ENV) { + remove-item env:VIRTUAL_ENV + } + + if (!$NonDestructive) { + # Self destruct! + remove-item function:deactivate + } } +deactivate -nondestructive + +$env:VIRTUAL_ENV="__VENV_DIR__" + # Set the prompt to include the env name +# Make sure _OLD_VIRTUAL_PROMPT is global +function global:_OLD_VIRTUAL_PROMPT {""} copy-item function:prompt function:_OLD_VIRTUAL_PROMPT -function prompt { - Write-Host -NoNewline -ForegroundColor Green '[__VENV_NAME__]' +function global:prompt { + Write-Host -NoNewline -ForegroundColor Green '__VENV_NAME__' _OLD_VIRTUAL_PROMPT } diff --git a/Lib/venv/scripts/nt/Deactivate.ps1 b/Lib/venv/scripts/nt/Deactivate.ps1 deleted file mode 100644 index 3d1e96bc8c..0000000000 --- a/Lib/venv/scripts/nt/Deactivate.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -# Revert to original values -if (Test-Path function:_OLD_VIRTUAL_PROMPT) { - copy-item function:_OLD_VIRTUAL_PROMPT function:prompt - remove-item function:_OLD_VIRTUAL_PROMPT -} - -if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) { - copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME - remove-item env:_OLD_VIRTUAL_PYTHONHOME -} - -if (Test-Path env:_OLD_VIRTUAL_PATH) { - copy-item env:_OLD_VIRTUAL_PATH env:PATH - remove-item env:_OLD_VIRTUAL_PATH -} - -if (Test-Path env:VIRTUAL_ENV) { - remove-item env:VIRTUAL_ENV -} diff --git a/Misc/NEWS b/Misc/NEWS index 9cf6aa03ef..9e6c5558a3 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -159,6 +159,9 @@ Core and Builtins Library ------- +- Issue #18479: Changed venv Activate.ps1 to make deactivate a function, and + removed Deactivate.ps1. + - Issue #18480: Add missing call to PyType_Ready to the _elementtree extension. - Issue #17778: Fix test discovery for test_multiprocessing. (Patch by