Skip to content

Commit 0dc4eeb

Browse files
authored
Merge pull request #1759 from zm711/tostring
KwikIO: Limit IO to numpy < 2.3.0
2 parents 510223d + a7d982b commit 0dc4eeb

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

neo/io/kwikio.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@
2020
from neo.io.baseio import BaseIO
2121

2222
# to import from core
23-
from neo.core import Segment, SpikeTrain, AnalogSignal, Block, Group
23+
from neo.core import Segment, SpikeTrain, AnalogSignal, Block, Group, NeoReadWriteError
2424

25+
import importlib.metadata
26+
from packaging.version import Version, parse
27+
28+
numpy_version = parse(importlib.metadata.version('numpy'))
2529

2630
class KwikIO(BaseIO):
2731
"""
@@ -58,6 +62,12 @@ def __init__(self, filename):
5862
Arguments:
5963
filename : the filename
6064
"""
65+
66+
if numpy_version >= Version("2.3.0"):
67+
deprecation_msg = ("As the kwik package is no longer actively maintained it only works with NumPy < 2.3.0 and your environment "
68+
f"has {numpy_version}. Downgrade your NumPy version to use this IO")
69+
raise NeoReadWriteError(deprecation_msg)
70+
6171
from klusta import kwik
6272

6373
BaseIO.__init__(self)

neo/test/iotest/test_kwikio.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@
33
"""
44

55
import unittest
6-
7-
try:
8-
from klusta import kwik
9-
6+
import importlib.util
7+
import importlib.metadata
8+
from packaging.version import Version, parse
9+
10+
kwik_spec = importlib.util.find_spec('klusta')
11+
# kwik no longer works with recent versions of numpy
12+
numpy_version = parse(importlib.metadata.version('numpy'))
13+
numpy_okay = numpy_version < Version('2.3.0')
14+
if kwik_spec is not None and numpy_okay:
1015
HAVE_KWIK = True
11-
except ImportError:
16+
else:
1217
HAVE_KWIK = False
1318

1419
from neo.io import kwikio

0 commit comments

Comments
 (0)