#
# 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

# }
