#!/bin/bash -ef
set -eo pipefail
WANT_PYTHON_VERSION="$1"
if [[ "$WANT_PYTHON_VERSION" == *'t' ]]; then
WANT_FREETHREADED=true
else
WANT_FREETHREADED=false
fi
WANT_PYTHON_VERSION=$(echo "$WANT_PYTHON_VERSION" | sed 's/t$//g')
if [[ -z "$WANT_PYTHON_VERSION" ]]; then
echo "::error::Missing required argument: want Python version (e.g., 3.11)"
exit 1
fi
GOT_PYTHON=$(which python)
GOT_PYTHON_VERSION=$(python --version)
GOT_FREETHREADED=$(python -c "import sysconfig; print(str(sysconfig.get_config_var('Py_GIL_DISABLED') == 1).lower())")
echo "Checking Python found at:"
echo " \$(which python) == ${GOT_PYTHON}"
echo " \$(python --version) == ${GOT_PYTHON_VERSION}"
echo " Free-threaded == ${GOT_FREETHREADED}"
echo "for"
echo " \$MNE_CI_KIND == ${MNE_CI_KIND}"
if [[ "${MNE_CI_KIND}" == "conda" ]]; then
WANT="micromamba/envs/mne"
elif [[ "${MNE_CI_KIND}" == "old" ]]; then
WANT="mne-python/mne-python/.venv/bin"
elif [[ "${MNE_CI_KIND}" == 'pip'* ]] || [[ "${MNE_CI_KIND}" == "minimal" ]]; then
WANT="/hostedtoolcache/"
else
echo "::error::Unrecognized MNE_CI_KIND=${MNE_CI_KIND}"
exit 1
fi
if [[ "${GOT_PYTHON}" != *"${WANT}"* ]]; then
echo "::error::Did not find \"${WANT}\" in PATH (dumped below)"
tr ':' '\n' <<< "$PATH"
exit 1
else
echo "☑ Found expected \"${WANT}\""
fi
if [[ "${GOT_PYTHON_VERSION}" != *"${WANT_PYTHON_VERSION}"* ]]; then
echo "::error::Did not find expected Python version \"${WANT_PYTHON_VERSION}\""
exit 1
else
echo "☑ Found expected Python version \"${WANT_PYTHON_VERSION}\""
fi
if [[ "${GOT_FREETHREADED}" != "${WANT_FREETHREADED}" ]]; then
echo "::error::Expected free-threaded=${WANT_FREETHREADED} but got ${GOT_FREETHREADED}"
exit 1
else
echo "☑ Found expected free-threaded=${WANT_FREETHREADED}"
fi