From fe75d543e3c96b45b077210670db069d7183e0cd Mon Sep 17 00:00:00 2001 From: Morgan G Hough Date: Sun, 29 Mar 2026 16:06:14 -0700 Subject: [PATCH] Fix compatibility with pyriemann >= 0.7 CospCovariances was deprecated in pyriemann 0.6 (PR pyRiemann/pyRiemann#288) and removed in pyriemann 0.7 (PR pyRiemann/pyRiemann#327). The replacement class is CoSpectra with an identical API. Since coffeine's setup.py specifies pyriemann>=0.2.7 with no upper bound, a fresh pip install pulls pyriemann 0.10 and immediately fails with: ImportError: cannot import name 'CospCovariances' from 'pyriemann.estimation' This adds a try/except fallback to import CoSpectra when CospCovariances is not available, maintaining backwards compatibility with older pyriemann. Co-Authored-By: Claude Opus 4.6 (1M context) --- coffeine/power_features.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/coffeine/power_features.py b/coffeine/power_features.py index 78ac510..6d94c28 100644 --- a/coffeine/power_features.py +++ b/coffeine/power_features.py @@ -2,7 +2,12 @@ import numpy as np import pandas as pd from scipy.stats import trim_mean -from pyriemann.estimation import CospCovariances +try: + from pyriemann.estimation import CospCovariances +except ImportError: + # CospCovariances was renamed to CoSpectra in pyriemann 0.6 + # and removed in pyriemann 0.7 (PR #327) + from pyriemann.estimation import CoSpectra as CospCovariances import mne from mne.io import BaseRaw from mne.epochs import BaseEpochs