You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Full output from `pytest`
```python
=================================== FAILURES ===================================
_______ TestFromFileConnector.test_with_plastic_synapses_not_distributed _______
ValueError: could not convert string to float: 'np.float64(0.0)'
The above exception was the direct cause of the following exception:
self =
sim =
def test_with_plastic_synapses_not_distributed(self, sim=sim):
connection_list = [
(0, 0, 0.1, 0.1, 100, 100),
(3, 0, 0.2, 0.11, 110, 99),
(2, 3, 0.3, 0.12, 120, 98), # local
(2, 2, 0.4, 0.13, 130, 97),
(0, 1, 0.5, 0.14, 140, 96), # local
]
file = recording.files.StandardTextFile("test.connections.2", mode='wb')
file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]})
C = connectors.FromFileConnector("test.connections.2", distributed=False)
syn = sim.TsodyksMarkramSynapse(tau_facil=88.8)
> prj = sim.Projection(self.p1, self.p2, C, syn)
test/unittests/test_connectors_parallel.py:455:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/mock/projections.py:39: in __init__
connector.connect(self)
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/connectors.py:665: in connect
self.conn_list = self.file.read()
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/recording/files.py:159: in read
return np.loadtxt(self.fileobj)
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1395: in loadtxt
arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
fname = <_io.TextIOWrapper name='test.connections.2' mode='r' encoding='UTF-8'>
def _read(fname, *, delimiter=',', comment='#', quote='"',
imaginary_unit='j', usecols=None, skiplines=0,
max_rows=None, converters=None, ndmin=None, unpack=False,
dtype=np.float64, encoding=None):
r"""
Read a NumPy array from a text file.
This is a helper function for loadtxt.
Parameters
----------
fname : file, str, or pathlib.Path
The filename or the file to be read.
delimiter : str, optional
Field delimiter of the fields in line of the file.
Default is a comma, ','. If None any sequence of whitespace is
considered a delimiter.
comment : str or sequence of str or None, optional
Character that begins a comment. All text from the comment
character to the end of the line is ignored.
Multiple comments or multiple-character comment strings are supported,
but may be slower and `quote` must be empty if used.
Use None to disable all use of comments.
quote : str or None, optional
Character that is used to quote string fields. Default is '"'
(a double quote). Use None to disable quote support.
imaginary_unit : str, optional
Character that represent the imaginary unit `sqrt(-1)`.
Default is 'j'.
usecols : array_like, optional
A one-dimensional array of integer column numbers. These are the
columns from the file to be included in the array. If this value
is not given, all the columns are used.
skiplines : int, optional
Number of lines to skip before interpreting the data in the file.
max_rows : int, optional
Maximum number of rows of data to read. Default is to read the
entire file.
converters : dict or callable, optional
A function to parse all columns strings into the desired value, or
a dictionary mapping column number to a parser function.
E.g. if column 0 is a date string: ``converters = {0: datestr2num}``.
Converters can also be used to provide a default value for missing
data, e.g. ``converters = lambda s: float(s.strip() or 0)`` will
convert empty fields to 0.
Default: None
ndmin : int, optional
Minimum dimension of the array returned.
Allowed values are 0, 1 or 2. Default is 0.
unpack : bool, optional
If True, the returned array is transposed, so that arguments may be
unpacked using ``x, y, z = read(...)``. When used with a structured
data-type, arrays are returned for each field. Default is False.
dtype : numpy data type
A NumPy dtype instance, can be a structured dtype to map to the
columns of the file.
encoding : str, optional
Encoding used to decode the inputfile. The special value 'bytes'
(the default) enables backwards-compatible behavior for `converters`,
ensuring that inputs to the converter functions are encoded
bytes objects. The special value 'bytes' has no additional effect if
``converters=None``. If encoding is ``'bytes'`` or ``None``, the
default system encoding is used.
Returns
-------
ndarray
NumPy array.
"""
# Handle special 'bytes' keyword for encoding
byte_converters = False
if encoding == 'bytes':
encoding = None
byte_converters = True
if dtype is None:
raise TypeError("a dtype must be provided.")
dtype = np.dtype(dtype)
read_dtype_via_object_chunks = None
if dtype.kind in 'SUM' and (
dtype == "S0" or dtype == "U0" or dtype == "M8" or dtype == 'm8'):
# This is a legacy "flexible" dtype. We do not truly support
# parametric dtypes currently (no dtype discovery step in the core),
# but have to support these for backward compatibility.
read_dtype_via_object_chunks = dtype
dtype = np.dtype(object)
if usecols is not None:
# Allow usecols to be a single int or a sequence of ints, the C-code
# handles the rest
try:
usecols = list(usecols)
except TypeError:
usecols = [usecols]
_ensure_ndmin_ndarray_check_param(ndmin)
if comment is None:
comments = None
else:
# assume comments are a sequence of strings
if "" in comment:
raise ValueError(
"comments cannot be an empty string. Use comments=None to "
"disable comments."
)
comments = tuple(comment)
comment = None
if len(comments) == 0:
comments = None # No comments at all
elif len(comments) == 1:
# If there is only one comment, and that comment has one character,
# the normal parsing can deal with it just fine.
if isinstance(comments[0], str) and len(comments[0]) == 1:
comment = comments[0]
comments = None
else:
# Input validation if there are multiple comment characters
if delimiter in comments:
raise TypeError(
f"Comment characters '{comments}' cannot include the "
f"delimiter '{delimiter}'"
)
# comment is now either a 1 or 0 character string or a tuple:
if comments is not None:
# Note: An earlier version support two character comments (and could
# have been extended to multiple characters, we assume this is
# rare enough to not optimize for.
if quote is not None:
raise ValueError(
"when multiple comments or a multi-character comment is "
"given, quotes are not supported. In this case quotechar "
"must be set to None.")
if len(imaginary_unit) != 1:
raise ValueError('len(imaginary_unit) must be 1.')
_check_nonneg_int(skiplines)
if max_rows is not None:
_check_nonneg_int(max_rows)
else:
# Passing -1 to the C code means "read the entire file".
max_rows = -1
fh_closing_ctx = contextlib.nullcontext()
filelike = False
try:
if isinstance(fname, os.PathLike):
fname = os.fspath(fname)
if isinstance(fname, str):
fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
if encoding is None:
encoding = getattr(fh, 'encoding', 'latin1')
fh_closing_ctx = contextlib.closing(fh)
data = fh
filelike = True
else:
if encoding is None:
encoding = getattr(fname, 'encoding', 'latin1')
data = iter(fname)
except TypeError as e:
raise ValueError(
f"fname must be a string, filehandle, list of strings,\n"
f"or generator. Got {type(fname)} instead.") from e
with fh_closing_ctx:
if comments is not None:
if filelike:
data = iter(data)
filelike = False
data = _preprocess_comments(data, comments, encoding)
if read_dtype_via_object_chunks is None:
E ValueError: could not convert string 'np.float64(0.0)' to float64 at row 0, column 1.
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1046: ValueError
_______ TestFromFileConnector.test_with_plastic_synapses_not_distributed _______
ValueError: could not convert string to float: 'np.float64(0.0)'
The above exception was the direct cause of the following exception:
self = <unittests.test_connectors_serial.TestFromFileConnector testMethod=test_with_plastic_synapses_not_distributed>
sim = <module 'pyNN.mock' from '/builddir/build/BUILD/python-pynn-0.12.3-build/BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/mock/init.py'>
def test_with_plastic_synapses_not_distributed(self, sim=sim):
connection_list = [
(0, 0, 0.1, 0.1, 100, 100),
(3, 0, 0.2, 0.11, 110, 99),
(2, 3, 0.3, 0.12, 120, 98), # local
(2, 2, 0.4, 0.13, 130, 97),
(0, 1, 0.5, 0.14, 140, 96), # local
]
file = recording.files.StandardTextFile("test.connections.2", mode='wb')
file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]})
C = connectors.FromFileConnector("test.connections.2", distributed=False)
syn = sim.TsodyksMarkramSynapse(tau_facil=88.8)
prj = sim.Projection(self.p1, self.p2, C, syn)
test/unittests/test_connectors_serial.py:562:
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/mock/projections.py:39: in init
connector.connect(self)
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/connectors.py:665: in connect
self.conn_list = self.file.read()
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/recording/files.py:159: in read
return np.loadtxt(self.fileobj)
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1395: in loadtxt
arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
fname = <_io.TextIOWrapper name='test.connections.2' mode='r' encoding='UTF-8'>
def _read(fname, *, delimiter=',', comment='#', quote='"',
imaginary_unit='j', usecols=None, skiplines=0,
max_rows=None, converters=None, ndmin=None, unpack=False,
dtype=np.float64, encoding=None):
r"""
Read a NumPy array from a text file.
This is a helper function for loadtxt.
Parameters
----------
fname : file, str, or pathlib.Path
The filename or the file to be read.
delimiter : str, optional
Field delimiter of the fields in line of the file.
Default is a comma, ','. If None any sequence of whitespace is
considered a delimiter.
comment : str or sequence of str or None, optional
Character that begins a comment. All text from the comment
character to the end of the line is ignored.
Multiple comments or multiple-character comment strings are supported,
but may be slower and `quote` must be empty if used.
Use None to disable all use of comments.
quote : str or None, optional
Character that is used to quote string fields. Default is '"'
(a double quote). Use None to disable quote support.
imaginary_unit : str, optional
Character that represent the imaginary unit `sqrt(-1)`.
Default is 'j'.
usecols : array_like, optional
A one-dimensional array of integer column numbers. These are the
columns from the file to be included in the array. If this value
is not given, all the columns are used.
skiplines : int, optional
Number of lines to skip before interpreting the data in the file.
max_rows : int, optional
Maximum number of rows of data to read. Default is to read the
entire file.
converters : dict or callable, optional
A function to parse all columns strings into the desired value, or
a dictionary mapping column number to a parser function.
E.g. if column 0 is a date string: ``converters = {0: datestr2num}``.
Converters can also be used to provide a default value for missing
data, e.g. ``converters = lambda s: float(s.strip() or 0)`` will
convert empty fields to 0.
Default: None
ndmin : int, optional
Minimum dimension of the array returned.
Allowed values are 0, 1 or 2. Default is 0.
unpack : bool, optional
If True, the returned array is transposed, so that arguments may be
unpacked using ``x, y, z = read(...)``. When used with a structured
data-type, arrays are returned for each field. Default is False.
dtype : numpy data type
A NumPy dtype instance, can be a structured dtype to map to the
columns of the file.
encoding : str, optional
Encoding used to decode the inputfile. The special value 'bytes'
(the default) enables backwards-compatible behavior for `converters`,
ensuring that inputs to the converter functions are encoded
bytes objects. The special value 'bytes' has no additional effect if
``converters=None``. If encoding is ``'bytes'`` or ``None``, the
default system encoding is used.
Returns
-------
ndarray
NumPy array.
"""
# Handle special 'bytes' keyword for encoding
byte_converters = False
if encoding == 'bytes':
encoding = None
byte_converters = True
if dtype is None:
raise TypeError("a dtype must be provided.")
dtype = np.dtype(dtype)
read_dtype_via_object_chunks = None
if dtype.kind in 'SUM' and (
dtype == "S0" or dtype == "U0" or dtype == "M8" or dtype == 'm8'):
# This is a legacy "flexible" dtype. We do not truly support
# parametric dtypes currently (no dtype discovery step in the core),
# but have to support these for backward compatibility.
read_dtype_via_object_chunks = dtype
dtype = np.dtype(object)
if usecols is not None:
# Allow usecols to be a single int or a sequence of ints, the C-code
# handles the rest
try:
usecols = list(usecols)
except TypeError:
usecols = [usecols]
_ensure_ndmin_ndarray_check_param(ndmin)
if comment is None:
comments = None
else:
# assume comments are a sequence of strings
if "" in comment:
raise ValueError(
"comments cannot be an empty string. Use comments=None to "
"disable comments."
)
comments = tuple(comment)
comment = None
if len(comments) == 0:
comments = None # No comments at all
elif len(comments) == 1:
# If there is only one comment, and that comment has one character,
# the normal parsing can deal with it just fine.
if isinstance(comments[0], str) and len(comments[0]) == 1:
comment = comments[0]
comments = None
else:
# Input validation if there are multiple comment characters
if delimiter in comments:
raise TypeError(
f"Comment characters '{comments}' cannot include the "
f"delimiter '{delimiter}'"
)
# comment is now either a 1 or 0 character string or a tuple:
if comments is not None:
# Note: An earlier version support two character comments (and could
# have been extended to multiple characters, we assume this is
# rare enough to not optimize for.
if quote is not None:
raise ValueError(
"when multiple comments or a multi-character comment is "
"given, quotes are not supported. In this case quotechar "
"must be set to None.")
if len(imaginary_unit) != 1:
raise ValueError('len(imaginary_unit) must be 1.')
_check_nonneg_int(skiplines)
if max_rows is not None:
_check_nonneg_int(max_rows)
else:
# Passing -1 to the C code means "read the entire file".
max_rows = -1
fh_closing_ctx = contextlib.nullcontext()
filelike = False
try:
if isinstance(fname, os.PathLike):
fname = os.fspath(fname)
if isinstance(fname, str):
fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
if encoding is None:
encoding = getattr(fh, 'encoding', 'latin1')
fh_closing_ctx = contextlib.closing(fh)
data = fh
filelike = True
else:
if encoding is None:
encoding = getattr(fname, 'encoding', 'latin1')
data = iter(fname)
except TypeError as e:
raise ValueError(
f"fname must be a string, filehandle, list of strings,\n"
f"or generator. Got {type(fname)} instead.") from e
with fh_closing_ctx:
if comments is not None:
if filelike:
data = iter(data)
filelike = False
data = _preprocess_comments(data, comments, encoding)
if read_dtype_via_object_chunks is None:
E ValueError: could not convert string 'np.float64(0.0)' to float64 at row 0, column 1.
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1046: ValueError
</details>
The text was updated successfully, but these errors were encountered:
Building PyNN with NumPy 2.x (2.2.1) we see two tests fail with:
Full output from `pytest`
```python =================================== FAILURES =================================== _______ TestFromFileConnector.test_with_plastic_synapses_not_distributed _______ ValueError: could not convert string to float: 'np.float64(0.0)' The above exception was the direct cause of the following exception: self = sim = def test_with_plastic_synapses_not_distributed(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1, 100, 100), (3, 0, 0.2, 0.11, 110, 99), (2, 3, 0.3, 0.12, 120, 98), # local (2, 2, 0.4, 0.13, 130, 97), (0, 1, 0.5, 0.14, 140, 96), # local ] file = recording.files.StandardTextFile("test.connections.2", mode='wb') file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]}) C = connectors.FromFileConnector("test.connections.2", distributed=False) syn = sim.TsodyksMarkramSynapse(tau_facil=88.8) > prj = sim.Projection(self.p1, self.p2, C, syn) test/unittests/test_connectors_parallel.py:455: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/mock/projections.py:39: in __init__ connector.connect(self) ../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/connectors.py:665: in connect self.conn_list = self.file.read() ../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/recording/files.py:159: in read return np.loadtxt(self.fileobj) /usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1395: in loadtxt arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fname = <_io.TextIOWrapper name='test.connections.2' mode='r' encoding='UTF-8'> def _read(fname, *, delimiter=',', comment='#', quote='"', imaginary_unit='j', usecols=None, skiplines=0, max_rows=None, converters=None, ndmin=None, unpack=False, dtype=np.float64, encoding=None): r""" Read a NumPy array from a text file. This is a helper function for loadtxt.E ValueError: could not convert string 'np.float64(0.0)' to float64 at row 0, column 1.
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1046: ValueError
_______ TestFromFileConnector.test_with_plastic_synapses_not_distributed _______
ValueError: could not convert string to float: 'np.float64(0.0)'
The above exception was the direct cause of the following exception:
self = <unittests.test_connectors_serial.TestFromFileConnector testMethod=test_with_plastic_synapses_not_distributed>
sim = <module 'pyNN.mock' from '/builddir/build/BUILD/python-pynn-0.12.3-build/BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/mock/init.py'>
def test_with_plastic_synapses_not_distributed(self, sim=sim):
connection_list = [
(0, 0, 0.1, 0.1, 100, 100),
(3, 0, 0.2, 0.11, 110, 99),
(2, 3, 0.3, 0.12, 120, 98), # local
(2, 2, 0.4, 0.13, 130, 97),
(0, 1, 0.5, 0.14, 140, 96), # local
]
file = recording.files.StandardTextFile("test.connections.2", mode='wb')
file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]})
C = connectors.FromFileConnector("test.connections.2", distributed=False)
syn = sim.TsodyksMarkramSynapse(tau_facil=88.8)
test/unittests/test_connectors_serial.py:562:
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/mock/projections.py:39: in init
connector.connect(self)
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/connectors.py:665: in connect
self.conn_list = self.file.read()
../BUILDROOT/usr/lib64/python3.13/site-packages/pyNN/recording/files.py:159: in read
return np.loadtxt(self.fileobj)
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1395: in loadtxt
arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
fname = <_io.TextIOWrapper name='test.connections.2' mode='r' encoding='UTF-8'>
def _read(fname, *, delimiter=',', comment='#', quote='"',
imaginary_unit='j', usecols=None, skiplines=0,
max_rows=None, converters=None, ndmin=None, unpack=False,
dtype=np.float64, encoding=None):
r"""
Read a NumPy array from a text file.
This is a helper function for loadtxt.
E ValueError: could not convert string 'np.float64(0.0)' to float64 at row 0, column 1.
/usr/lib64/python3.13/site-packages/numpy/lib/_npyio_impl.py:1046: ValueError
The text was updated successfully, but these errors were encountered: