---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:904, in ZarrIO.__list_fill__(self, parent, name, data, options)
903 try:
--> 904 dset[:] = data # If data is an h5py.Dataset then this will copy the data
905 # For compound data types containing strings Zarr sometimes does not like wirting multiple values
906 # try to write them one-at-a-time instead then
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/zarr/core.py:1373, in Array.__setitem__(self, selection, value)
1372 else:
-> 1373 self.set_basic_selection(pure_selection, value, fields=fields)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/zarr/core.py:1468, in Array.set_basic_selection(self, selection, value, fields)
1467 else:
-> 1468 return self._set_basic_selection_nd(selection, value, fields=fields)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/zarr/core.py:1772, in Array._set_basic_selection_nd(self, selection, value, fields)
1770 indexer = BasicIndexer(selection, self)
-> 1772 self._set_selection(indexer, value, fields=fields)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/zarr/core.py:1800, in Array._set_selection(self, indexer, value, fields)
1799 value = np.asanyarray(value, like=self._meta_array)
-> 1800 check_array_shape('value', value, sel_shape)
1802 # iterate over chunks in range
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/zarr/util.py:547, in check_array_shape(param, array, shape)
546 if array.shape != shape:
--> 547 raise ValueError('parameter {!r}: expected array with shape {!r}, got {!r}'
548 .format(param, shape, array.shape))
ValueError: parameter 'value': expected array with shape (300000, 4), got ()
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
Cell In [22], line 2
1 with NWBZarrIO('nwb-test-files/test_recording_zarr.nwb', "w") as io:
----> 2 io.write(nwbfile)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/utils.py:645, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
643 def func_call(*args, **kwargs):
644 pargs = _check_args(args, kwargs)
--> 645 return func(args[0], **pargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:151, in ZarrIO.write(self, **kwargs)
149 """Overwrite the write method to add support for caching the specification"""
150 cache_spec = popargs('cache_spec', kwargs)
--> 151 super(ZarrIO, self).write(**kwargs)
152 if cache_spec:
153 self.__cache_spec()
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/utils.py:645, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
643 def func_call(*args, **kwargs):
644 pargs = _check_args(args, kwargs)
--> 645 return func(args[0], **pargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/backends/io.py:51, in HDMFIO.write(self, **kwargs)
49 container = popargs('container', kwargs)
50 f_builder = self.__manager.build(container, source=self.__source, root=True)
---> 51 self.write_builder(f_builder, **kwargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/utils.py:645, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
643 def func_call(*args, **kwargs):
644 pargs = _check_args(args, kwargs)
--> 645 return func(args[0], **pargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:248, in ZarrIO.write_builder(self, **kwargs)
246 f_builder, link_data, exhaust_dci = getargs('builder', 'link_data', 'exhaust_dci', kwargs)
247 for name, gbldr in f_builder.groups.items():
--> 248 self.write_group(parent=self.__file,
249 builder=gbldr,
250 link_data=link_data,
251 exhaust_dci=exhaust_dci)
252 for name, dbldr in f_builder.datasets.items():
253 self.write_dataset(parent=self.__file,
254 builder=dbldr,
255 link_data=link_data,
256 exhaust_dci=exhaust_dci)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/utils.py:645, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
643 def func_call(*args, **kwargs):
644 pargs = _check_args(args, kwargs)
--> 645 return func(args[0], **pargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:283, in ZarrIO.write_group(self, **kwargs)
281 if subgroups:
282 for subgroup_name, sub_builder in subgroups.items():
--> 283 self.write_group(parent=group,
284 builder=sub_builder,
285 link_data=link_data,
286 exhaust_dci=exhaust_dci)
288 datasets = builder.datasets
289 if datasets:
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/utils.py:645, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
643 def func_call(*args, **kwargs):
644 pargs = _check_args(args, kwargs)
--> 645 return func(args[0], **pargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:291, in ZarrIO.write_group(self, **kwargs)
289 if datasets:
290 for dset_name, sub_builder in datasets.items():
--> 291 self.write_dataset(parent=group,
292 builder=sub_builder,
293 link_data=link_data,
294 exhaust_dci=exhaust_dci)
296 # write all links (haven implemented)
297 links = builder.links
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/utils.py:645, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
643 def func_call(*args, **kwargs):
644 pargs = _check_args(args, kwargs)
--> 645 return func(args[0], **pargs)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:736, in ZarrIO.write_dataset(self, **kwargs)
734 self.__dci_queue.append(dataset=dset, data=data)
735 elif hasattr(data, '__len__'):
--> 736 dset = self.__list_fill__(parent, name, data, options)
737 else:
738 dset = self.__scalar_fill__(parent, name, data, options)
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf_zarr/backend.py:908, in ZarrIO.__list_fill__(self, parent, name, data, options)
905 # For compound data types containing strings Zarr sometimes does not like wirting multiple values
906 # try to write them one-at-a-time instead then
907 except ValueError:
--> 908 for i in range(len(data)):
909 dset[i] = data[i]
910 return dset
File ~/anaconda3/envs/nwb/lib/python3.9/site-packages/hdmf/data_utils.py:1028, in DataIO.__len__(self)
1026 if not self.valid:
1027 raise InvalidDataIOError("Cannot get length of data. Data is not valid.")
-> 1028 return len(self.data)
TypeError: object of type 'SpikeInterfaceRecordingDataChunkIterator' has no len()