mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-04 16:50:06 +00:00
add support for poetry virtualenv
This commit is contained in:
parent
0493886837
commit
672b958a7e
5 changed files with 58 additions and 0 deletions
|
@ -47,6 +47,7 @@
|
||||||
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
||||||
anaconda # conda environment (https://conda.io/)
|
anaconda # conda environment (https://conda.io/)
|
||||||
pyenv # python environment (https://github.com/pyenv/pyenv)
|
pyenv # python environment (https://github.com/pyenv/pyenv)
|
||||||
|
poetry # python poetry (https://python-poetry.org/)
|
||||||
goenv # go environment (https://github.com/syndbg/goenv)
|
goenv # go environment (https://github.com/syndbg/goenv)
|
||||||
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
||||||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||||
|
@ -892,6 +893,10 @@
|
||||||
# If set to "false", won't show virtualenv if pyenv is already shown.
|
# If set to "false", won't show virtualenv if pyenv is already shown.
|
||||||
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
||||||
|
# If set to "true", get the virtualenv from poetry if available
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_POETRY=false
|
||||||
|
# Show poetry venv only when in a directory tree containing pyproject.toml.
|
||||||
|
typeset -g POWERLEVEL9K_POETRY_VENV_PROJECT_ONLY=true
|
||||||
# Separate environment name from Python version only with a space.
|
# Separate environment name from Python version only with a space.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
||||||
anaconda # conda environment (https://conda.io/)
|
anaconda # conda environment (https://conda.io/)
|
||||||
pyenv # python environment (https://github.com/pyenv/pyenv)
|
pyenv # python environment (https://github.com/pyenv/pyenv)
|
||||||
|
poetry # python poetry (https://python-poetry.org/)
|
||||||
goenv # go environment (https://github.com/syndbg/goenv)
|
goenv # go environment (https://github.com/syndbg/goenv)
|
||||||
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
||||||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||||
|
@ -873,6 +874,10 @@
|
||||||
# If set to "false", won't show virtualenv if pyenv is already shown.
|
# If set to "false", won't show virtualenv if pyenv is already shown.
|
||||||
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
||||||
|
# If set to "true", get the virtualenv from poetry if available
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_POETRY=false
|
||||||
|
# Show poetry venv only when in a directory tree containing pyproject.toml.
|
||||||
|
typeset -g POWERLEVEL9K_POETRY_VENV_PROJECT_ONLY=true
|
||||||
# Separate environment name from Python version only with a space.
|
# Separate environment name from Python version only with a space.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
||||||
anaconda # conda environment (https://conda.io/)
|
anaconda # conda environment (https://conda.io/)
|
||||||
pyenv # python environment (https://github.com/pyenv/pyenv)
|
pyenv # python environment (https://github.com/pyenv/pyenv)
|
||||||
|
poetry # python poetry (https://python-poetry.org/)
|
||||||
goenv # go environment (https://github.com/syndbg/goenv)
|
goenv # go environment (https://github.com/syndbg/goenv)
|
||||||
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
||||||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||||
|
@ -869,6 +870,10 @@
|
||||||
# If set to "false", won't show virtualenv if pyenv is already shown.
|
# If set to "false", won't show virtualenv if pyenv is already shown.
|
||||||
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
||||||
|
# If set to "true", get the virtualenv from poetry if available
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_POETRY=false
|
||||||
|
# Show poetry venv only when in a directory tree containing pyproject.toml.
|
||||||
|
typeset -g POWERLEVEL9K_POETRY_VENV_PROJECT_ONLY=true
|
||||||
# Separate environment name from Python version only with a space.
|
# Separate environment name from Python version only with a space.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
||||||
anaconda # conda environment (https://conda.io/)
|
anaconda # conda environment (https://conda.io/)
|
||||||
pyenv # python environment (https://github.com/pyenv/pyenv)
|
pyenv # python environment (https://github.com/pyenv/pyenv)
|
||||||
|
poetry # python poetry (https://python-poetry.org/)
|
||||||
goenv # go environment (https://github.com/syndbg/goenv)
|
goenv # go environment (https://github.com/syndbg/goenv)
|
||||||
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
||||||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||||
|
@ -931,6 +932,10 @@
|
||||||
# If set to "false", won't show virtualenv if pyenv is already shown.
|
# If set to "false", won't show virtualenv if pyenv is already shown.
|
||||||
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
||||||
|
# If set to "true", get the virtualenv from poetry if available
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_POETRY=false
|
||||||
|
# Show poetry venv only when in a directory tree containing pyproject.toml.
|
||||||
|
typeset -g POWERLEVEL9K_POETRY_VENV_PROJECT_ONLY=true
|
||||||
# Separate environment name from Python version only with a space.
|
# Separate environment name from Python version only with a space.
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
|
|
|
@ -4235,6 +4235,44 @@ instant_prompt_vi_mode() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display poetry virtualenv information
|
||||||
|
# https://python-poetry.org/
|
||||||
|
prompt_poetry() {
|
||||||
|
local msg=''
|
||||||
|
if (( _POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION )) && _p9k_python_version; then
|
||||||
|
msg="${_p9k__ret//\%/%%} "
|
||||||
|
fi
|
||||||
|
_p9k_poetry_compute || return
|
||||||
|
msg+="$P9K_POETRY_PYTHON_VENV"
|
||||||
|
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '' "$msg"
|
||||||
|
}
|
||||||
|
|
||||||
|
_p9k_prompt_poetry_init() {
|
||||||
|
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${commands[poetry]:-${${+functions[poetry]}:#0}}'
|
||||||
|
}
|
||||||
|
|
||||||
|
function _p9k_poetry_compute() {
|
||||||
|
unset P9K_POETRY_PYTHON_VENV
|
||||||
|
case $_POWERLEVEL9K_VIRTUALENV_SHOW_WITH_POETRY in
|
||||||
|
true)
|
||||||
|
_p9k_upglob pyproject.toml
|
||||||
|
local idx=$?
|
||||||
|
if (( idx == 1 )); then
|
||||||
|
_p9k_cached_cmd 0 $_p9k__parent_dirs[idx]/pyproject.toml poetry env info -p || return
|
||||||
|
elif (( idx > 1 )); then
|
||||||
|
(( _POWERLEVEL9K_POETRY_VENV_PROJECT_ONLY )) && return
|
||||||
|
_p9k_cached_cmd 0 '' poetry env info -p || return
|
||||||
|
fi
|
||||||
|
if [[ $_p9k__ret == (#b)*/([^/]##) ]]; then
|
||||||
|
typeset -g P9K_POETRY_PYTHON_VENV=$match[1]
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
# Virtualenv: current working virtualenv
|
# Virtualenv: current working virtualenv
|
||||||
# More information on virtualenv (Python):
|
# More information on virtualenv (Python):
|
||||||
|
|
Loading…
Reference in a new issue