Skip to content

Commit 36980b7

Browse files
committed
Use appropriate numpy version in kilosor tests
1 parent 864f94c commit 36980b7

2 files changed

Lines changed: 22 additions & 3 deletions

File tree

.github/workflows/test_kilosort4.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ name: Testing Kilosort4
33
on:
44
workflow_dispatch:
55
schedule:
6-
- cron: "0 12 * * 0" # Weekly on Sunday at noon UTC
6+
- cron: "0 12 * * 0" # Weekly on Sunday at noon UTC
77
pull_request:
88
paths:
9-
- '**/kilosort4.py'
10-
- '**/test_kilosort4_ci.py'
9+
- "**/kilosort4.py"
10+
- "**/test_kilosort4_ci.py"
1111

1212
jobs:
1313
versions:
@@ -76,6 +76,16 @@ jobs:
7676
if: matrix.ks_version == '4.0.16' || matrix.ks_version == '4.0.17' || matrix.ks_version == '4.0.18'
7777
run: uv pip install --system setuptools==78.0.2
7878

79+
- name: Install legacy numpy for KS4 4.1.1 - 4.1.5
80+
if: |
81+
matrix.ks_version == '4.1.1' ||
82+
matrix.ks_version == '4.1.2' ||
83+
matrix.ks_version == '4.1.3' ||
84+
matrix.ks_version == '4.1.4' ||
85+
matrix.ks_version == '4.1.5' ||
86+
matrix.ks_version == '4.1.6'
87+
run: uv pip install --system "numpy<2.4"
88+
7989
- name: Install Kilosort
8090
run: |
8191
uv pip install --system kilosort==${{ matrix.ks_version }}

src/spikeinterface/sorters/external/kilosort4.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from spikeinterface.widgets.gtstudy import StudyRunTimesWidget
12
import warnings
23
from packaging import version
34

@@ -147,6 +148,7 @@ def _setup_recording(cls, recording, sorter_output_folder, params, verbose):
147148
@classmethod
148149
def _run_from_folder(cls, sorter_output_folder, params, verbose):
149150
from kilosort import __version__ as ks_version
151+
from numpy import __version__ as np_version
150152
from kilosort.run_kilosort import (
151153
set_files,
152154
initialize_ops,
@@ -161,6 +163,13 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose):
161163
from kilosort.io import load_probe, RecordingExtractorAsArray, BinaryFiltered, save_preprocessing
162164
from kilosort.parameters import DEFAULT_SETTINGS
163165

166+
if (version.parse("4.1.1") <= version.parse(ks_version) <= version.parse("4.1.6")) and version.parse(
167+
np_version
168+
) >= version.parse("2.4.0"):
169+
raise RuntimeError(
170+
"Kilosort versions between 4.1.1 and 4.1.6 are not compatible with numpy versions above 2.4. Either upgrade Kilosort to 4.1.7 or above, or downgrade numpy to 2.3 or below."
171+
)
172+
164173
if version.parse(ks_version) >= version.parse("4.0.33"):
165174
HAS_DIAGNOSTIC_PLOTS = True
166175
import kilosort.plots as kplots

0 commit comments

Comments
 (0)