You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
# |
|
# Exposes information about the Python environment via the $python_info |
|
# associative array. |
|
# |
|
# Authors: |
|
# Sorin Ionescu <sorin.ionescu@gmail.com> |
|
# Patrick Bos <egpbos@gmail.com> |
|
# |
|
|
|
# function python-info { |
|
|
|
local virtualenv_format |
|
local virtualenv_formatted |
|
local version_format |
|
local version_formatted |
|
local version |
|
|
|
# Clean up previous $python_info. |
|
unset python_info |
|
typeset -gA python_info |
|
|
|
# Grab the styling we might have to do |
|
zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' |
|
zstyle -s ':prezto:module:python:info:version' format 'version_format' |
|
|
|
# Format virtualenv. |
|
if [[ -n "$virtualenv_format" ]]; then |
|
if [[ -n "$VIRTUAL_ENV" ]]; then |
|
zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}" |
|
python_info[virtualenv]="$virtualenv_formatted" |
|
fi |
|
|
|
# Do the same for Conda virtual environments |
|
if [[ -n "$CONDA_DEFAULT_ENV" ]]; then |
|
zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}" |
|
python_info[virtualenv]="$virtualenv_formatted" |
|
fi |
|
fi |
|
|
|
if [[ -n "$version_format" ]]; then |
|
if (( $+commands[pyenv] )); then |
|
version="${"$(pyenv version)"%% *}" |
|
elif (( $+commands[python] )); then |
|
version="${$(python3 --version)#Python }" |
|
fi |
|
|
|
if [[ -n "$version" && "$version" != "system" ]]; then |
|
zformat -f version_formatted "$version_format" "v:$version" |
|
python_info[version]="$version_formatted" |
|
fi |
|
fi |
|
|
|
# }
|
|
|