#!/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/" elif [[ "${MNE_CI_KIND}" == "pixi" ]]; then WANT="mne-python/mne-python/tools/ci/macos-intel/.pixi/" 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