CURRENT_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" export PATH=$PATH:$CURRENT_DIRECTORY/bin:$CURRENT_DIRECTORY/scripts # Automatically set up our virtual environment in .venv (same as poetry is configured to use). # From: https://github.com/direnv/direnv/wiki/Python realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" } layout_python-venv() { local python=${1:-python3} [[ $# -gt 0 ]] && shift unset PYTHONHOME if [[ -n $VIRTUAL_ENV ]]; then VIRTUAL_ENV=$(realpath "${VIRTUAL_ENV}") else local python_version python_version=$("$python" -c "import platform; print(platform.python_version())") if [[ -z $python_version ]]; then log_error "Could not detect Python version" return 1 fi VIRTUAL_ENV=$PWD/.direnv/python-venv-$python_version fi export VIRTUAL_ENV if [[ ! -d $VIRTUAL_ENV ]]; then log_status "no venv found; creating $VIRTUAL_ENV" "$python" -m venv "$VIRTUAL_ENV" fi PATH="${VIRTUAL_ENV}/bin:${PATH}" export PATH } export VIRTUAL_ENV=.venv layout python-venv