summaryrefslogtreecommitdiff
path: root/plugins/python/python.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/python/python.plugin.zsh')
-rw-r--r--plugins/python/python.plugin.zsh23
1 files changed, 19 insertions, 4 deletions
diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh
index 77d4bf425..f6ea85027 100644
--- a/plugins/python/python.plugin.zsh
+++ b/plugins/python/python.plugin.zsh
@@ -51,11 +51,12 @@ alias pyserver="python3 -m http.server"
## venv utilities
+: ${PYTHON_VENV_NAME:=venv}
# Activate a the python virtual environment specified.
-# If none specified, use 'venv'.
+# If none specified, use $PYTHON_VENV_NAME, else 'venv'.
function vrun() {
- local name="${1:-venv}"
+ local name="${1:-$PYTHON_VENV_NAME}"
local venvpath="${name:P}"
if [[ ! -d "$venvpath" ]]; then
@@ -72,12 +73,26 @@ function vrun() {
echo "Activated virtual environment ${name}"
}
-# Create a new virtual environment, with default name 'venv'.
+# Create a new virtual environment using the specified name.
+# If none specfied, use $PYTHON_VENV_NAME
function mkv() {
- local name="${1:-venv}"
+ local name="${1:-$PYTHON_VENV_NAME}"
local venvpath="${name:P}"
python3 -m venv "${name}" || return
echo >&2 "Created venv in '${venvpath}'"
vrun "${name}"
}
+
+if [[ "$PYTHON_AUTO_VRUN" == "true" ]]; then
+ # Automatically activate venv when changing dir
+ auto_vrun() {
+ if [[ -f "${PYTHON_VENV_NAME}/bin/activate" ]]; then
+ source "${PYTHON_VENV_NAME}/bin/activate" > /dev/null 2>&1
+ else
+ (( $+functions[deactivate] )) && deactivate > /dev/null 2>&1
+ fi
+ }
+ add-zsh-hook chpwd auto_vrun
+ auto_vrun
+fi