Skip to content

Commit

Permalink
Merge pull request #1459 from SpiNNakerManchester/fix_numpy
Browse files Browse the repository at this point in the history
Try to fix numpy v2 things
  • Loading branch information
Christian-B authored Jun 21, 2024
2 parents eabcd07 + 3473a19 commit 1319cea
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 9 deletions.
7 changes: 4 additions & 3 deletions spynnaker/pyNN/models/common/param_generator_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from typing import Any, Union, cast

import numpy
from numpy import uint32
from numpy import uint32, int32
from numpy.typing import NDArray
from typing_extensions import TypeAlias

Expand Down Expand Up @@ -117,7 +117,8 @@ def param_generator_params(values: _ParamType) -> NDArray[uint32]:
"""
if numpy.isscalar(values):
return numpy.array(
[DataType.S1615.encode_as_int(cast(float, values))], dtype=uint32)
[DataType.S1615.encode_as_int(cast(float, values))],
dtype=int32).view(uint32)

if isinstance(values, RandomDistribution):
parameters = (
Expand All @@ -129,7 +130,7 @@ def param_generator_params(values: _ParamType) -> NDArray[uint32]:
for param in parameters if param is not None)
params = [
DataType.S1615.encode_as_int(param) for param in parameters]
return numpy.array(params, dtype=uint32)
return numpy.array(params, dtype=int32).view(uint32)

raise ValueError(f"Unexpected value {values}")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ def __write_post_to_pre_table(
for row in rows]

# Finally make the table and write it out
post_to_pre = numpy.core.records.fromarrays(
post_to_pre = numpy.rec.fromarrays(
numpy.concatenate(padded_rows).T, formats="u1, u1, u2").view("u4")
if len(post_to_pre) != vertex_slice.n_atoms * self.s_max:
raise ValueError(
Expand Down
12 changes: 9 additions & 3 deletions spynnaker/pyNN/models/projection.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from numpy.typing import NDArray
from typing_extensions import Literal, TypeAlias

from pyNN.recording.files import StandardTextFile, BaseFile
from pyNN.recording.files import BaseFile
from pyNN.space import Space as PyNNSpace

from spinn_utilities.config_holder import get_config_bool
Expand Down Expand Up @@ -376,11 +376,17 @@ def __save_callback(save_file: Union[str, BaseFile],
data = data.astype(dtype)
npdata = numpy.nan_to_num(cast(NDArray, data))
if isinstance(save_file, str):
data_file = StandardTextFile(save_file, mode='wb')
data_file = open(save_file, mode='wb')
else:
data_file = save_file
try:
data_file.write(npdata, metadata)
header_lines = [
f"# {key} = {value}" for key, value in metadata.items()]
header = "\n".join(header_lines) + '\n'
data_file.write(header.encode('utf-8'))
# write data
numpy.savetxt(data_file, npdata, delimiter='\t')
data_file.close()
finally:
data_file.close()

Expand Down
4 changes: 2 additions & 2 deletions spynnaker/pyNN/utilities/neo_buffer_database.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
TYPE_CHECKING)

import numpy
from numpy import floating, integer, uint8
from numpy import floating, integer, uint8, uint32
from numpy.typing import NDArray
import quantities
import neo # type: ignore[import]
Expand Down Expand Up @@ -644,7 +644,7 @@ def __get_eieio_spike_by_region(
key_bytes = eieio_header.eieio_type.key_bytes
keys = numpy.frombuffer(
spike_data, dtype=f"<u{key_bytes}",
count=eieio_header.count, offset=data_offset)
count=eieio_header.count, offset=data_offset).astype(uint32)
keys = numpy.bitwise_and(keys, inv_colour_mask)
local_ids = numpy.array([indices[key] for key in keys])
neuron_ids = slice_ids[local_ids]
Expand Down

0 comments on commit 1319cea

Please sign in to comment.