1layout_poetry() {
2 PYPROJECT_TOML="\$\{PYPROJECT_TOML:-pyproject.toml}"
3 if [[ ! -f "$PYPROJECT_TOML" ]]; then
4 log_status "No pyproject.toml found. Executing \`poetry init\` to create a \`$PYPROJECT_TOML\` first."
5 poetry init
6 fi
7
8 if [[ -d ".venv" ]]; then
9 VIRTUAL_ENV="$(pwd)/.venv"
10 else
11 VIRTUAL_ENV=$(
12 poetry env info --path 2>/dev/null
13 true
14 )
15 fi
16
17 if [[ -z $VIRTUAL_ENV || ! -d $VIRTUAL_ENV ]]; then
18 log_status "No virtual environment exists. Executing \`poetry install\` to create one."
19 poetry install
20 VIRTUAL_ENV=$(poetry env info --path)
21 fi
22
23 PATH_add "$VIRTUAL_ENV/bin"
24 export POETRY_ACTIVE=1
25 export VIRTUAL_ENV
26}