zsh-config/plugins/python.zsh
2025-05-07 14:42:52 +02:00

25 lines
659 B
Bash

autoload -U add-zsh-hook
add-zsh-hook chpwd __python_change_venv
function __python_change_venv() {
local _path=$(pwd)
local _paths=("${_path}")
while [[ "${_path}" != "${HOME}" ]] && [[ "${_path}" != "/" ]]; do
_path="${_path:h}"
_paths+=("${_path}")
done
for _path in ${_paths}; do
local _venv_config=$(find "${_path}" -maxdepth 2 -mindepth 2 -name pyvenv.cfg 2>/dev/null | head -n1)
if [[ ${_venv_config} != "" ]]; then
local _venv_path="${_venv_config:h}"
source "${_venv_path}/bin/activate"
break
fi
done
if [[ "${VIRTUAL_ENV}" == "" ]]; then
source "${DEFAULT_PYTHON_VENV}/bin/activate"
fi
}