diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/.gitignore b/crates/red_knot_workspace/resources/test/empty-unix-venv/.gitignore deleted file mode 100644 index f59ec20aabf58..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate deleted file mode 100644 index 06480874a0529..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright (c) 2020-202x The virtualenv developers -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# This file must be used with "source bin/activate" *from bash* -# you cannot run it directly - - -if [ "${BASH_SOURCE-}" = "$0" ]; then - echo "You must source this script: \$ source $0" >&2 - exit 33 -fi - -deactivate () { - unset -f pydoc >/dev/null 2>&1 || true - - # reset old environment variables - # ! [ -z ${VAR+_} ] returns true if VAR is declared at all - if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then - PATH="$_OLD_VIRTUAL_PATH" - export PATH - unset _OLD_VIRTUAL_PATH - fi - if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then - PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" - export PYTHONHOME - unset _OLD_VIRTUAL_PYTHONHOME - fi - - # The hash command must be called to get it to forget past - # commands. Without forgetting past commands the $PATH changes - # we made may not be respected - hash -r 2>/dev/null - - if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then - PS1="$_OLD_VIRTUAL_PS1" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - unset VIRTUAL_ENV_PROMPT - if [ ! "${1-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -VIRTUAL_ENV='/Users/alexw/dev/ruff/crates/red_knot_workspace/resources/test/empty-test-venv' -if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then - VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV") -fi -export VIRTUAL_ENV - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/bin:$PATH" -export PATH - -if [ "x" != x ] ; then - VIRTUAL_ENV_PROMPT="" -else - VIRTUAL_ENV_PROMPT=$(basename "$VIRTUAL_ENV") -fi -export VIRTUAL_ENV_PROMPT - -# unset PYTHONHOME if set -if ! [ -z "${PYTHONHOME+_}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1-}" - PS1="(${VIRTUAL_ENV_PROMPT}) ${PS1-}" - export PS1 -fi - -# Make sure to unalias pydoc if it's already there -alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true - -pydoc () { - python -m pydoc "$@" -} - -# The hash command must be called to get it to forget past -# commands. Without forgetting past commands the $PATH changes -# we made may not be respected -hash -r 2>/dev/null diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.bat b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.bat deleted file mode 100644 index 4ed9b5530885a..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.bat +++ /dev/null @@ -1,59 +0,0 @@ -@REM Copyright (c) 2020-202x The virtualenv developers -@REM -@REM Permission is hereby granted, free of charge, to any person obtaining -@REM a copy of this software and associated documentation files (the -@REM "Software"), to deal in the Software without restriction, including -@REM without limitation the rights to use, copy, modify, merge, publish, -@REM distribute, sublicense, and/or sell copies of the Software, and to -@REM permit persons to whom the Software is furnished to do so, subject to -@REM the following conditions: -@REM -@REM The above copyright notice and this permission notice shall be -@REM included in all copies or substantial portions of the Software. -@REM -@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -@REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -@REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -@REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -@REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -@REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -@REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -@for %%i in ("/Users/alexw/dev/ruff/crates/red_knot_workspace/resources/test/empty-test-venv") do @set "VIRTUAL_ENV=%%~fi" - -@set "VIRTUAL_ENV_PROMPT=" -@if NOT DEFINED VIRTUAL_ENV_PROMPT ( - @for %%d in ("%VIRTUAL_ENV%") do @set "VIRTUAL_ENV_PROMPT=%%~nxd" -) - -@if defined _OLD_VIRTUAL_PROMPT ( - @set "PROMPT=%_OLD_VIRTUAL_PROMPT%" -) else ( - @if not defined PROMPT ( - @set "PROMPT=$P$G" - ) - @if not defined VIRTUAL_ENV_DISABLE_PROMPT ( - @set "_OLD_VIRTUAL_PROMPT=%PROMPT%" - ) -) -@if not defined VIRTUAL_ENV_DISABLE_PROMPT ( - @set "PROMPT=(%VIRTUAL_ENV_PROMPT%) %PROMPT%" -) - -@REM Don't use () to avoid problems with them in %PATH% -@if defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME - @set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%" -:ENDIFVHOME - -@set PYTHONHOME= - -@REM if defined _OLD_VIRTUAL_PATH ( -@if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH1 - @set "PATH=%_OLD_VIRTUAL_PATH%" -:ENDIFVPATH1 -@REM ) else ( -@if defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH2 - @set "_OLD_VIRTUAL_PATH=%PATH%" -:ENDIFVPATH2 - -@set "PATH=%VIRTUAL_ENV%\bin;%PATH%" diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.csh b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.csh deleted file mode 100644 index e0e8bc4876b04..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.csh +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (c) 2020-202x The virtualenv developers -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. -# Created by Davide Di Blasi . - -set newline='\ -' - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV '/Users/alexw/dev/ruff/crates/red_knot_workspace/resources/test/empty-test-venv' - -set _OLD_VIRTUAL_PATH="$PATH:q" -setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q" - - - -if ('' != "") then - setenv VIRTUAL_ENV_PROMPT '' -else - setenv VIRTUAL_ENV_PROMPT "$VIRTUAL_ENV:t:q" -endif - -if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then - if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then - set do_prompt = "1" - else - set do_prompt = "0" - endif -else - set do_prompt = "1" -endif - -if ( $do_prompt == "1" ) then - # Could be in a non-interactive environment, - # in which case, $prompt is undefined and we wouldn't - # care about the prompt anyway. - if ( $?prompt ) then - set _OLD_VIRTUAL_PROMPT="$prompt:q" - if ( "$prompt:q" =~ *"$newline:q"* ) then - : - else - set prompt = '('"$VIRTUAL_ENV_PROMPT:q"') '"$prompt:q" - endif - endif -endif - -unset env_name -unset do_prompt - -alias pydoc python -m pydoc - -rehash diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.fish b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.fish deleted file mode 100644 index a9044de83e12e..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.fish +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright (c) 2020-202x The virtualenv developers -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*. -# Do not run it directly. - -function _bashify_path -d "Converts a fish path to something bash can recognize" - set fishy_path $argv - set bashy_path $fishy_path[1] - for path_part in $fishy_path[2..-1] - set bashy_path "$bashy_path:$path_part" - end - echo $bashy_path -end - -function _fishify_path -d "Converts a bash path to something fish can recognize" - echo $argv | tr ':' '\n' -end - -function deactivate -d 'Exit virtualenv mode and return to the normal environment.' - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling - if test (echo $FISH_VERSION | head -c 1) -lt 3 - set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH") - else - set -gx PATH $_OLD_VIRTUAL_PATH - end - set -e _OLD_VIRTUAL_PATH - end - - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME" - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - and functions -q _old_fish_prompt - # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`. - set -l fish_function_path - - # Erase virtualenv's `fish_prompt` and restore the original. - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - set -e _OLD_FISH_PROMPT_OVERRIDE - end - - set -e VIRTUAL_ENV - set -e VIRTUAL_ENV_PROMPT - - if test "$argv[1]" != 'nondestructive' - # Self-destruct! - functions -e pydoc - functions -e deactivate - functions -e _bashify_path - functions -e _fishify_path - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV '/Users/alexw/dev/ruff/crates/red_knot_workspace/resources/test/empty-test-venv' - -# https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling -if test (echo $FISH_VERSION | head -c 1) -lt 3 - set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH) -else - set -gx _OLD_VIRTUAL_PATH $PATH -end -set -gx PATH "$VIRTUAL_ENV"'/bin' $PATH - -# Prompt override provided? -# If not, just use the environment name. -if test -n '' - set -gx VIRTUAL_ENV_PROMPT '' -else - set -gx VIRTUAL_ENV_PROMPT (basename "$VIRTUAL_ENV") -end - -# Unset `$PYTHONHOME` if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -function pydoc - python -m pydoc $argv -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # Copy the current `fish_prompt` function as `_old_fish_prompt`. - functions -c fish_prompt _old_fish_prompt - - function fish_prompt - # Run the user's prompt first; it might depend on (pipe)status. - set -l prompt (_old_fish_prompt) - - printf '(%s) ' $VIRTUAL_ENV_PROMPT - - string join -- \n $prompt # handle multi-line prompts - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" -end diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.nu b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.nu deleted file mode 100644 index 1de75538f4f12..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.nu +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright (c) 2020-202x The virtualenv developers -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# virtualenv activation module -# Activate with `overlay use activate.nu` -# Deactivate with `deactivate`, as usual -# -# To customize the overlay name, you can call `overlay use activate.nu as foo`, -# but then simply `deactivate` won't work because it is just an alias to hide -# the "activate" overlay. You'd need to call `overlay hide foo` manually. - -export-env { - def is-string [x] { - ($x | describe) == 'string' - } - - def has-env [...names] { - $names | each {|n| - $n in $env - } | all {|i| $i == true} - } - - # Emulates a `test -z`, but btter as it handles e.g 'false' - def is-env-true [name: string] { - if (has-env $name) { - # Try to parse 'true', '0', '1', and fail if not convertible - let parsed = (do -i { $env | get $name | into bool }) - if ($parsed | describe) == 'bool' { - $parsed - } else { - not ($env | get -i $name | is-empty) - } - } else { - false - } - } - - let virtual_env = '/Users/alexw/dev/ruff/crates/red_knot_workspace/resources/test/empty-test-venv' - let bin = 'bin' - - let is_windows = ($nu.os-info.family) == 'windows' - let path_name = (if (has-env 'Path') { - 'Path' - } else { - 'PATH' - } - ) - - let venv_path = ([$virtual_env $bin] | path join) - let new_path = ($env | get $path_name | prepend $venv_path) - - # If there is no default prompt, then use the env name instead - let virtual_env_prompt = (if ('' | is-empty) { - ($virtual_env | path basename) - } else { - '' - }) - - let new_env = { - $path_name : $new_path - VIRTUAL_ENV : $virtual_env - VIRTUAL_ENV_PROMPT : $virtual_env_prompt - } - - let new_env = (if (is-env-true 'VIRTUAL_ENV_DISABLE_PROMPT') { - $new_env - } else { - # Creating the new prompt for the session - let virtual_prefix = $'(char lparen)($virtual_env_prompt)(char rparen) ' - - # Back up the old prompt builder - let old_prompt_command = (if (has-env 'PROMPT_COMMAND') { - $env.PROMPT_COMMAND - } else { - '' - }) - - let new_prompt = (if (has-env 'PROMPT_COMMAND') { - if 'closure' in ($old_prompt_command | describe) { - {|| $'($virtual_prefix)(do $old_prompt_command)' } - } else { - {|| $'($virtual_prefix)($old_prompt_command)' } - } - } else { - {|| $'($virtual_prefix)' } - }) - - $new_env | merge { - PROMPT_COMMAND : $new_prompt - VIRTUAL_PREFIX : $virtual_prefix - } - }) - - # Environment variables that will be loaded as the virtual env - load-env $new_env -} - -export alias pydoc = python -m pydoc -export alias deactivate = overlay hide activate diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.ps1 b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.ps1 deleted file mode 100644 index 2d2bc9ab7b80c..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate.ps1 +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright (c) 2020-202x The virtualenv developers -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -$script:THIS_PATH = $myinvocation.mycommand.path -$script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent - -function global:deactivate([switch] $NonDestructive) { - if (Test-Path variable:_OLD_VIRTUAL_PATH) { - $env:PATH = $variable:_OLD_VIRTUAL_PATH - Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global - } - - if (Test-Path function:_old_virtual_prompt) { - $function:prompt = $function:_old_virtual_prompt - Remove-Item function:\_old_virtual_prompt - } - - if ($env:VIRTUAL_ENV) { - Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue - } - - if ($env:VIRTUAL_ENV_PROMPT) { - Remove-Item env:VIRTUAL_ENV_PROMPT -ErrorAction SilentlyContinue - } - - if (!$NonDestructive) { - # Self destruct! - Remove-Item function:deactivate - Remove-Item function:pydoc - } -} - -function global:pydoc { - python -m pydoc $args -} - -# unset irrelevant variables -deactivate -nondestructive - -$VIRTUAL_ENV = $BASE_DIR -$env:VIRTUAL_ENV = $VIRTUAL_ENV - -if ("" -ne "") { - $env:VIRTUAL_ENV_PROMPT = "" -} -else { - $env:VIRTUAL_ENV_PROMPT = $( Split-Path $env:VIRTUAL_ENV -Leaf ) -} - -New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH - -$env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH -if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) { - function global:_old_virtual_prompt { - "" - } - $function:_old_virtual_prompt = $function:prompt - - function global:prompt { - # Add the custom prefix to the existing prompt - $previous_prompt_value = & $function:_old_virtual_prompt - ("(" + $env:VIRTUAL_ENV_PROMPT + ") " + $previous_prompt_value) - } -} diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate_this.py b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate_this.py deleted file mode 100644 index b3d0821f452ba..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/activate_this.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) 2020-202x The virtualenv developers -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -""" -Activate virtualenv for current interpreter: - -import runpy -runpy.run_path(this_file) - -This can be used when you must use an existing Python interpreter, not the virtualenv bin/python. -""" # noqa: D415 - -from __future__ import annotations - -import os -import site -import sys - -try: - abs_file = os.path.abspath(__file__) -except NameError as exc: - msg = "You must use import runpy; runpy.run_path(this_file)" - raise AssertionError(msg) from exc - -bin_dir = os.path.dirname(abs_file) -base = bin_dir[: -len("bin") - 1] # strip away the bin part from the __file__, plus the path separator - -# prepend bin to PATH (this file is inside the bin directory) -os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)]) -os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory -os.environ["VIRTUAL_ENV_PROMPT"] = "" or os.path.basename(base) # noqa: SIM222 - -# add the virtual environments libraries to the host python import mechanism -prev_length = len(sys.path) -for lib in "../lib/python3.12/site-packages".split(os.pathsep): - path = os.path.realpath(os.path.join(bin_dir, lib)) - site.addsitedir(path) -sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length] - -sys.real_prefix = sys.prefix -sys.prefix = base diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/deactivate.bat b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/deactivate.bat deleted file mode 100644 index 95af1351b0c96..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/deactivate.bat +++ /dev/null @@ -1,39 +0,0 @@ -@REM Copyright (c) 2020-202x The virtualenv developers -@REM -@REM Permission is hereby granted, free of charge, to any person obtaining -@REM a copy of this software and associated documentation files (the -@REM "Software"), to deal in the Software without restriction, including -@REM without limitation the rights to use, copy, modify, merge, publish, -@REM distribute, sublicense, and/or sell copies of the Software, and to -@REM permit persons to whom the Software is furnished to do so, subject to -@REM the following conditions: -@REM -@REM The above copyright notice and this permission notice shall be -@REM included in all copies or substantial portions of the Software. -@REM -@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -@REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -@REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -@REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -@REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -@REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -@REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -@set VIRTUAL_ENV= -@set VIRTUAL_ENV_PROMPT= - -@REM Don't use () to avoid problems with them in %PATH% -@if not defined _OLD_VIRTUAL_PROMPT @goto ENDIFVPROMPT - @set "PROMPT=%_OLD_VIRTUAL_PROMPT%" - @set _OLD_VIRTUAL_PROMPT= -:ENDIFVPROMPT - -@if not defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME - @set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" - @set _OLD_VIRTUAL_PYTHONHOME= -:ENDIFVHOME - -@if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH - @set "PATH=%_OLD_VIRTUAL_PATH%" - @set _OLD_VIRTUAL_PATH= -:ENDIFVPATH \ No newline at end of file diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/pydoc.bat b/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/pydoc.bat deleted file mode 100644 index 8a8d590d22a32..0000000000000 --- a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/pydoc.bat +++ /dev/null @@ -1,22 +0,0 @@ -@REM Copyright (c) 2020-202x The virtualenv developers -@REM -@REM Permission is hereby granted, free of charge, to any person obtaining -@REM a copy of this software and associated documentation files (the -@REM "Software"), to deal in the Software without restriction, including -@REM without limitation the rights to use, copy, modify, merge, publish, -@REM distribute, sublicense, and/or sell copies of the Software, and to -@REM permit persons to whom the Software is furnished to do so, subject to -@REM the following conditions: -@REM -@REM The above copyright notice and this permission notice shall be -@REM included in all copies or substantial portions of the Software. -@REM -@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -@REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -@REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -@REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -@REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -@REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -@REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -python.exe -m pydoc %* \ No newline at end of file diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/CACHEDIR.TAG b/crates/red_knot_workspace/resources/test/unix-uv-venv/CACHEDIR.TAG similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/CACHEDIR.TAG rename to crates/red_knot_workspace/resources/test/unix-uv-venv/CACHEDIR.TAG diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/python b/crates/red_knot_workspace/resources/test/unix-uv-venv/bin/python similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/bin/python rename to crates/red_knot_workspace/resources/test/unix-uv-venv/bin/python diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/python3 b/crates/red_knot_workspace/resources/test/unix-uv-venv/bin/python3 similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/bin/python3 rename to crates/red_knot_workspace/resources/test/unix-uv-venv/bin/python3 diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/bin/python3.12 b/crates/red_knot_workspace/resources/test/unix-uv-venv/bin/python3.12 similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/bin/python3.12 rename to crates/red_knot_workspace/resources/test/unix-uv-venv/bin/python3.12 diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/lib/python3.12/site-packages/_virtualenv.pth b/crates/red_knot_workspace/resources/test/unix-uv-venv/lib/python3.12/site-packages/_virtualenv.pth similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/lib/python3.12/site-packages/_virtualenv.pth rename to crates/red_knot_workspace/resources/test/unix-uv-venv/lib/python3.12/site-packages/_virtualenv.pth diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/lib/python3.12/site-packages/_virtualenv.py b/crates/red_knot_workspace/resources/test/unix-uv-venv/lib/python3.12/site-packages/_virtualenv.py similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/lib/python3.12/site-packages/_virtualenv.py rename to crates/red_knot_workspace/resources/test/unix-uv-venv/lib/python3.12/site-packages/_virtualenv.py diff --git a/crates/red_knot_workspace/resources/test/empty-unix-venv/pyvenv.cfg b/crates/red_knot_workspace/resources/test/unix-uv-venv/pyvenv.cfg similarity index 100% rename from crates/red_knot_workspace/resources/test/empty-unix-venv/pyvenv.cfg rename to crates/red_knot_workspace/resources/test/unix-uv-venv/pyvenv.cfg diff --git a/crates/red_knot_workspace/src/site_packages.rs b/crates/red_knot_workspace/src/site_packages.rs index f076e1675a38f..0e6585825b1ba 100644 --- a/crates/red_knot_workspace/src/site_packages.rs +++ b/crates/red_knot_workspace/src/site_packages.rs @@ -12,36 +12,6 @@ use std::io; use ruff_db::system::{System, SystemPath, SystemPathBuf}; -/// Attempt to retrieve the `site-packages` directory -/// associated with a given Python installation. -/// -/// `sys_prefix_path` is equivalent to the value of [`sys.prefix`] -/// at runtime in Python. For the case of a virtual environment, where a -/// Python binary is at `/.venv/bin/python`, `sys.prefix` is the path to -/// the virtual environment the Python binary lies inside, i.e. `/.venv`, -/// and `site-packages` will be at `.venv/Lib/site-packages`. System -/// Python installations generally work the same way: if a system Python -/// installation lies at `/opt/homebrew/bin/python`, `sys.prefix` will be -/// `/opt/homebrew`, and `site-packages` will be at -/// `/opt/homebrew/Lib/site-packages`. -/// -/// This routine does not verify that `sys_prefix_path` points -/// to an existing directory on disk; it is assumed that this has already -/// been checked. -/// -/// [`sys.prefix`]: https://docs.python.org/3/library/sys.html#sys.prefix -#[cfg(target_os = "windows")] -fn site_packages_dir_from_sys_prefix( - sys_prefix_path: &SystemPath, - system: &dyn System, -) -> Result { - let site_packages = sys_prefix_path.join("Lib/site-packages"); - system - .is_directory(&site_packages) - .then_some(site_packages) - .ok_or(SitePackagesDiscoveryError::NoSitePackagesDirFound) -} - /// Attempt to retrieve the `site-packages` directory /// associated with a given Python installation. /// @@ -60,11 +30,18 @@ fn site_packages_dir_from_sys_prefix( /// been checked. /// /// [`sys.prefix`]: https://docs.python.org/3/library/sys.html#sys.prefix -#[cfg(not(target_os = "windows"))] fn site_packages_dir_from_sys_prefix( sys_prefix_path: &SystemPath, system: &dyn System, ) -> Result { + if cfg!(target_os = "windows") { + let site_packages = sys_prefix_path.join("Lib/site-packages"); + return system + .is_directory(&site_packages) + .then_some(site_packages) + .ok_or(SitePackagesDiscoveryError::NoSitePackagesDirFound); + } + // In the Python standard library's `site.py` module (used for finding `site-packages` // at runtime), we can find this in [the non-Windows branch]: // @@ -156,9 +133,9 @@ mod tests { #[test] // Windows venvs have different layouts, and we only have a Unix venv committed for now. // This test is skipped on Windows until we commit a Windows venv. - #[cfg(not(target_os = "windows"))] + #[cfg_attr(target_os = "windows", ignore = "Windows has a different venv layout")] fn can_find_site_packages_dir_in_committed_venv() { - let path_to_venv = SystemPath::new("resources/test/empty-unix-venv"); + let path_to_venv = SystemPath::new("resources/test/unix-uv-venv"); let system = OsSystem::default(); // if this doesn't hold true, the premise of the test is incorrect.