Skip to content

Commit 25c7dfc

Browse files
authored
Use legacy numpy versions for ks 4.1.1-4.1.6 tests (#4591)
1 parent eecaffe commit 25c7dfc

2 files changed

Lines changed: 21 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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ def _setup_recording(cls, recording, sorter_output_folder, params, verbose):
147147
@classmethod
148148
def _run_from_folder(cls, sorter_output_folder, params, verbose):
149149
from kilosort import __version__ as ks_version
150+
from numpy import __version__ as np_version
150151
from kilosort.run_kilosort import (
151152
set_files,
152153
initialize_ops,
@@ -161,6 +162,13 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose):
161162
from kilosort.io import load_probe, RecordingExtractorAsArray, BinaryFiltered, save_preprocessing
162163
from kilosort.parameters import DEFAULT_SETTINGS
163164

165+
if (version.parse("4.1.1") <= version.parse(ks_version) <= version.parse("4.1.6")) and version.parse(
166+
np_version
167+
) >= version.parse("2.4.0"):
168+
raise RuntimeError(
169+
"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."
170+
)
171+
164172
if version.parse(ks_version) >= version.parse("4.0.33"):
165173
HAS_DIAGNOSTIC_PLOTS = True
166174
import kilosort.plots as kplots

0 commit comments

Comments
 (0)