Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Error reading nwb file in latest version of hdmf (3.3.1) #739

Closed
3 tasks done
lfrank opened this issue Jun 2, 2022 · 3 comments · Fixed by #741
Closed
3 tasks done

[Bug]: Error reading nwb file in latest version of hdmf (3.3.1) #739

lfrank opened this issue Jun 2, 2022 · 3 comments · Fixed by #741
Assignees
Labels
category: bug errors in the code or code behavior priority: high impacts proper operation or use of feature important to most users

Comments

@lfrank
Copy link

lfrank commented Jun 2, 2022

What happened?

Reading our nwb files fails with the newest version of hdmf, but works with 3.2.1

@rly has access to our nwb files and may be the best person to look at this if the traceback below doesn't make the solution obvious.

Steps to Reproduce

try to read an existing nwb file (perhaps only one that has our extensions)

Traceback

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1248, in ObjectMapper.construct(self, **kwargs)
   1247 try:
-> 1248     obj = self.__new_container__(cls, builder.source, parent, builder.attributes.get(self.__spec.id_key()),
   1249                                  **kwargs)
   1250 except Exception as ex:

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1258, in ObjectMapper.__new_container__(self, cls, container_source, parent, object_id, **kwargs)
   1257 obj = cls.__new__(cls, container_source=container_source, parent=parent, object_id=object_id)
-> 1258 obj.__init__(**kwargs)
   1259 return obj

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    592 pargs = _check_args(args, kwargs)
--> 593 return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/classgenerator.py:306, in CustomClassGenerator.set_init.<locals>.__init__(self, **kwargs)
    305     new_kwargs[f] = popargs(f, kwargs) if f in kwargs else None
--> 306 base.__init__(self, **kwargs)  # special case: need to pass self to __init__
    307 for f, arg_val in new_kwargs.items():

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:592, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
--> 592     pargs = _check_args(args, kwargs)
    593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:585, in docval.<locals>.dec.<locals>._check_args(args, kwargs)
    584         msg = '%s: %s' % (func.__qualname__, ', '.join(parse_err))
--> 585         raise ExceptionType(msg)
    587 return parsed['args']

TypeError: AbstractContainer.__init__: Expected at most 1 arguments ['name'], got 3: 0 positional and 3 keyword ['description', 'manufacturer', 'name']

The above exception was the direct cause of the following exception:

ConstructError                            Traceback (most recent call last)
Input In [3], in <cell line: 2>()
      1 nwbf = 'senor20201030_.nwb'
----> 2 (IntervalPositionInfo & {'nwb_file_name': nwbf}).fetch_nwb()

File ~/Src/NWB/spyglass/src/spyglass/common/common_position.py:308, in IntervalPositionInfo.fetch_nwb(self, *attrs, **kwargs)
    307 def fetch_nwb(self, *attrs, **kwargs):
--> 308     return fetch_nwb(self,
    309                      (AnalysisNwbfile,
    310                       'analysis_file_abs_path'),
    311                      *attrs, **kwargs)

File ~/Src/NWB/spyglass/src/spyglass/common/dj_helper_fn.py:82, in fetch_nwb(query_expression, nwb_master, *attrs, **kwargs)
     80 ret = []
     81 for rec_dict in rec_dicts:
---> 82     nwbf = get_nwb_file(rec_dict.pop('nwb2load_filepath'))
     83     # for each attr that contains substring 'object_id', store key-value: attr name to NWB object
     84     # remove '_object_id' from attr name
     85     nwb_objs = {
     86         id_attr.replace("_object_id", ""): _get_nwb_object(nwbf.objects, rec_dict[id_attr])
     87         for id_attr in attrs
     88         if 'object_id' in id_attr and rec_dict[id_attr] != ''}

File ~/Src/NWB/spyglass/src/spyglass/common/nwb_helper_fn.py:33, in get_nwb_file(nwb_file_path)
     30 if nwbfile is None:
     31     io = pynwb.NWBHDF5IO(path=nwb_file_path, mode='r',
     32                          load_namespaces=True)  # keep file open
---> 33     nwbfile = io.read()
     34     __open_nwb_files[nwb_file_path] = (io, nwbfile)
     35 return nwbfile

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/backends/hdf5/h5tools.py:447, in HDF5IO.read(self, **kwargs)
    444     raise UnsupportedOperation("Cannot read from file %s in mode '%s'. Please use mode 'r', 'r+', or 'a'."
    445                                % (self.source, self.__mode))
    446 try:
--> 447     return call_docval_func(super().read, kwargs)
    448 except UnsupportedOperation as e:
    449     if str(e) == 'Cannot build data. There are no values.':  # pragma: no cover

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:434, in call_docval_func(func, kwargs)
    432 def call_docval_func(func, kwargs):
    433     fargs, fkwargs = fmt_docval_args(func, kwargs)
--> 434     return func(*fargs, **fkwargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/backends/io.py:42, in HDMFIO.read(self, **kwargs)
     39 if all(len(v) == 0 for v in f_builder.values()):
     40     # TODO also check that the keys are appropriate. print a better error message
     41     raise UnsupportedOperation('Cannot build data. There are no values.')
---> 42 container = self.__manager.construct(f_builder)
     43 return container

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/manager.py:280, in BuildManager.construct(self, **kwargs)
    276     result = self.__type_map.construct(builder, self, parent)
    277 else:
    278     # we are at the top of the hierarchy,
    279     # so it must be time to resolve parents
--> 280     result = self.__type_map.construct(builder, self, None)
    281     self.__resolve_parents(result)
    282 self.prebuilt(result, builder)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/manager.py:794, in TypeMap.construct(self, **kwargs)
    792     raise ValueError('No ObjectMapper found for builder of type %s' % dt)
    793 else:
--> 794     return obj_mapper.construct(builder, build_manager, parent)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1218, in ObjectMapper.construct(self, **kwargs)
   1216 cls = manager.get_cls(builder)
   1217 # gather all subspecs
-> 1218 subspecs = self.__get_subspec_values(builder, self.spec, manager)
   1219 # get the constructor argument that each specification corresponds to
   1220 const_args = dict()

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1147, in ObjectMapper.__get_subspec_values(self, builder, spec, manager)
   1145                 ret[subspec] = self.__flatten(sub_builder, subspec, manager)
   1146     # now process groups and datasets
-> 1147     self.__get_sub_builders(groups, spec.groups, manager, ret)
   1148     self.__get_sub_builders(datasets, spec.datasets, manager, ret)
   1149 elif isinstance(spec, DatasetSpec):

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1198, in ObjectMapper.__get_sub_builders(self, sub_builders, subspecs, manager, ret)
   1195     continue
   1196 if dt is None:
   1197     # recurse
-> 1198     ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
   1199 else:
   1200     ret[subspec] = manager.construct(sub_builder)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1147, in ObjectMapper.__get_subspec_values(self, builder, spec, manager)
   1145                 ret[subspec] = self.__flatten(sub_builder, subspec, manager)
   1146     # now process groups and datasets
-> 1147     self.__get_sub_builders(groups, spec.groups, manager, ret)
   1148     self.__get_sub_builders(datasets, spec.datasets, manager, ret)
   1149 elif isinstance(spec, DatasetSpec):

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1198, in ObjectMapper.__get_sub_builders(self, sub_builders, subspecs, manager, ret)
   1195     continue
   1196 if dt is None:
   1197     # recurse
-> 1198     ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
   1199 else:
   1200     ret[subspec] = manager.construct(sub_builder)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1147, in ObjectMapper.__get_subspec_values(self, builder, spec, manager)
   1145                 ret[subspec] = self.__flatten(sub_builder, subspec, manager)
   1146     # now process groups and datasets
-> 1147     self.__get_sub_builders(groups, spec.groups, manager, ret)
   1148     self.__get_sub_builders(datasets, spec.datasets, manager, ret)
   1149 elif isinstance(spec, DatasetSpec):

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1190, in ObjectMapper.__get_sub_builders(self, sub_builders, subspecs, manager, ret)
   1188     sub_builder = builder_dt.get(dt)
   1189     if sub_builder is not None:
-> 1190         sub_builder = self.__flatten(sub_builder, subspec, manager)
   1191         ret[subspec] = sub_builder
   1192 else:

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1203, in ObjectMapper.__flatten(self, sub_builder, subspec, manager)
   1202 def __flatten(self, sub_builder, subspec, manager):
-> 1203     tmp = [manager.construct(b) for b in sub_builder]
   1204     if len(tmp) == 1 and not subspec.is_many():
   1205         tmp = tmp[0]

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1203, in <listcomp>(.0)
   1202 def __flatten(self, sub_builder, subspec, manager):
-> 1203     tmp = [manager.construct(b) for b in sub_builder]
   1204     if len(tmp) == 1 and not subspec.is_many():
   1205         tmp = tmp[0]

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/manager.py:276, in BuildManager.construct(self, **kwargs)
    274 if parent_builder is not None:
    275     parent = self._get_proxy_builder(parent_builder)
--> 276     result = self.__type_map.construct(builder, self, parent)
    277 else:
    278     # we are at the top of the hierarchy,
    279     # so it must be time to resolve parents
    280     result = self.__type_map.construct(builder, self, None)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/manager.py:794, in TypeMap.construct(self, **kwargs)
    792     raise ValueError('No ObjectMapper found for builder of type %s' % dt)
    793 else:
--> 794     return obj_mapper.construct(builder, build_manager, parent)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/utils.py:593, in docval.<locals>.dec.<locals>.func_call(*args, **kwargs)
    591 def func_call(*args, **kwargs):
    592     pargs = _check_args(args, kwargs)
--> 593     return func(args[0], **pargs)

File ~/anaconda3/envs/spyglass/lib/python3.8/site-packages/hdmf/build/objectmapper.py:1252, in ObjectMapper.construct(self, **kwargs)
   1250 except Exception as ex:
   1251     msg = 'Could not construct %s object due to: %s' % (cls.__name__, ex)
-> 1252     raise ConstructError(builder, msg) from ex
   1253 return obj

ConstructError: (root/general/devices/probe 0 GroupBuilder {'attributes': {'contact_side_numbering': True, 'contact_size': 15.0, 'id': 0, 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'Probe', 'object_id': '1dfc1de2-5f33-4633-a435-888cf8d2e45b', 'probe_description': '128 channel polyimide probe', 'probe_type': '128c-4s6mm6cm-15um-26um-sl', 'units': 'um'}, 'groups': {'0': root/general/devices/probe 0/0 GroupBuilder {'attributes': {'name': '0', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'Shank', 'object_id': 'b1199e77-70cd-4ebe-a7ba-782109909421'}, 'groups': {'0': root/general/devices/probe 0/0/0 GroupBuilder {'attributes': {'name': '0', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7e7aef41-894c-4cff-9aff-df2c872d5703', 'rel_x': 0.0, 'rel_y': 0.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '1': root/general/devices/probe 0/0/1 GroupBuilder {'attributes': {'name': '1', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '8009d6b8-ab36-4948-a1fa-3c6f191f183b', 'rel_x': 0.0, 'rel_y': -26.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '10': root/general/devices/probe 0/0/10 GroupBuilder {'attributes': {'name': '10', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c2d8a792-27ac-4e56-8254-074b65b0b58e', 'rel_x': 0.0, 'rel_y': -260.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '11': root/general/devices/probe 0/0/11 GroupBuilder {'attributes': {'name': '11', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '758a184a-a769-4d3f-a32a-c9c2e345a24b', 'rel_x': 0.0, 'rel_y': -286.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '12': root/general/devices/probe 0/0/12 GroupBuilder {'attributes': {'name': '12', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c06826ea-8dfa-49fc-9e77-b25645ffae1e', 'rel_x': 0.0, 'rel_y': -312.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '13': root/general/devices/probe 0/0/13 GroupBuilder {'attributes': {'name': '13', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '53f6f0c9-c69b-43c6-9c5a-4a1fde03ae97', 'rel_x': 0.0, 'rel_y': -338.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '14': root/general/devices/probe 0/0/14 GroupBuilder {'attributes': {'name': '14', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '76c7d169-5b73-4f48-94b8-91185b0f2c3f', 'rel_x': 0.0, 'rel_y': -364.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '15': root/general/devices/probe 0/0/15 GroupBuilder {'attributes': {'name': '15', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'bc9f09a3-6f1a-47c2-9eda-41ec1cf021f4', 'rel_x': 0.0, 'rel_y': -390.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '16': root/general/devices/probe 0/0/16 GroupBuilder {'attributes': {'name': '16', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '3461a16d-ab9b-4b4b-9482-dc4ece92e75f', 'rel_x': 0.0, 'rel_y': -416.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '17': root/general/devices/probe 0/0/17 GroupBuilder {'attributes': {'name': '17', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'df93b8b5-850a-4888-ab1d-15dc31cf1942', 'rel_x': 0.0, 'rel_y': -442.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '18': root/general/devices/probe 0/0/18 GroupBuilder {'attributes': {'name': '18', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'cd3639e0-5a04-4055-a7bd-06bcf707cbba', 'rel_x': 0.0, 'rel_y': -468.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '19': root/general/devices/probe 0/0/19 GroupBuilder {'attributes': {'name': '19', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '717ecd4d-7338-4a6f-9343-e98e5ff68975', 'rel_x': 0.0, 'rel_y': -494.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '2': root/general/devices/probe 0/0/2 GroupBuilder {'attributes': {'name': '2', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '75eb2a45-d28f-49d2-b4eb-eef26fd28962', 'rel_x': 0.0, 'rel_y': -52.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '20': root/general/devices/probe 0/0/20 GroupBuilder {'attributes': {'name': '20', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c4f0c88b-b39a-4c41-90a9-90fa2f315ea7', 'rel_x': 0.0, 'rel_y': -520.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '21': root/general/devices/probe 0/0/21 GroupBuilder {'attributes': {'name': '21', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '29017d2f-155d-4c29-82f1-d5c95e06df43', 'rel_x': 0.0, 'rel_y': -546.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '22': root/general/devices/probe 0/0/22 GroupBuilder {'attributes': {'name': '22', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '56207324-60cf-4c27-873d-bffad83b0f39', 'rel_x': 0.0, 'rel_y': -572.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '23': root/general/devices/probe 0/0/23 GroupBuilder {'attributes': {'name': '23', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '34da2563-b8e7-43c6-baf1-279c64d00f9f', 'rel_x': 0.0, 'rel_y': -598.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '24': root/general/devices/probe 0/0/24 GroupBuilder {'attributes': {'name': '24', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'd9be8e61-10b7-4171-a8a3-da79b47fa11f', 'rel_x': 0.0, 'rel_y': -624.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '25': root/general/devices/probe 0/0/25 GroupBuilder {'attributes': {'name': '25', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '8e83d25f-a2bd-4357-bccf-25e06bc27afa', 'rel_x': 0.0, 'rel_y': -650.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '26': root/general/devices/probe 0/0/26 GroupBuilder {'attributes': {'name': '26', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c9780c82-1dd0-4851-88db-84f00d35357a', 'rel_x': 0.0, 'rel_y': -676.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '27': root/general/devices/probe 0/0/27 GroupBuilder {'attributes': {'name': '27', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '2c40c560-0883-424e-b826-c5f46acc4e92', 'rel_x': 0.0, 'rel_y': -702.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '28': root/general/devices/probe 0/0/28 GroupBuilder {'attributes': {'name': '28', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '2906b597-c149-40e2-907a-b4bd065811d5', 'rel_x': 0.0, 'rel_y': -728.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '29': root/general/devices/probe 0/0/29 GroupBuilder {'attributes': {'name': '29', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6ee299bd-c7d0-49cb-8895-33808f0f6717', 'rel_x': 0.0, 'rel_y': -754.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '3': root/general/devices/probe 0/0/3 GroupBuilder {'attributes': {'name': '3', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'f23cd281-d591-4573-8d42-77fa0cd38da8', 'rel_x': 0.0, 'rel_y': -78.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '30': root/general/devices/probe 0/0/30 GroupBuilder {'attributes': {'name': '30', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '97a88e13-47d3-4ecc-8c66-f8f19c87b827', 'rel_x': 0.0, 'rel_y': -780.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '31': root/general/devices/probe 0/0/31 GroupBuilder {'attributes': {'name': '31', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '44405943-1d1e-447f-b085-653e418c21ac', 'rel_x': 0.0, 'rel_y': -806.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '4': root/general/devices/probe 0/0/4 GroupBuilder {'attributes': {'name': '4', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'db6fbb3b-efc5-46c8-8cc2-4e86d7c43552', 'rel_x': 0.0, 'rel_y': -104.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '5': root/general/devices/probe 0/0/5 GroupBuilder {'attributes': {'name': '5', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'ff1f701a-5cfc-4fc8-84bd-28efb6994efc', 'rel_x': 0.0, 'rel_y': -130.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '6': root/general/devices/probe 0/0/6 GroupBuilder {'attributes': {'name': '6', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'eb887e6d-0ff0-4979-9b17-53478ba26149', 'rel_x': 0.0, 'rel_y': -156.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '7': root/general/devices/probe 0/0/7 GroupBuilder {'attributes': {'name': '7', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'df4980a9-2fe4-4d80-81b5-4a27ee94b057', 'rel_x': 0.0, 'rel_y': -182.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '8': root/general/devices/probe 0/0/8 GroupBuilder {'attributes': {'name': '8', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '0a850e6f-c85f-4cb7-9efa-29421c953724', 'rel_x': 0.0, 'rel_y': -208.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '9': root/general/devices/probe 0/0/9 GroupBuilder {'attributes': {'name': '9', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '82984549-71d2-45ce-9d74-f3508bf2a291', 'rel_x': 0.0, 'rel_y': -234.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}}, 'datasets': {}, 'links': {}}, '1': root/general/devices/probe 0/1 GroupBuilder {'attributes': {'name': '1', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'Shank', 'object_id': '00502493-5a3d-4288-bc3a-6653bdae5f32'}, 'groups': {'32': root/general/devices/probe 0/1/32 GroupBuilder {'attributes': {'name': '32', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a23e422d-2049-4436-97af-9e709a06043b', 'rel_x': 350.0, 'rel_y': 0.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '33': root/general/devices/probe 0/1/33 GroupBuilder {'attributes': {'name': '33', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'd8396d5d-9366-430a-a5d6-908603af4829', 'rel_x': 350.0, 'rel_y': -26.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '34': root/general/devices/probe 0/1/34 GroupBuilder {'attributes': {'name': '34', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'e3ed52bc-8cf2-4fcf-874e-f4d0f072a581', 'rel_x': 350.0, 'rel_y': -52.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '35': root/general/devices/probe 0/1/35 GroupBuilder {'attributes': {'name': '35', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '86d6e1ed-e0ec-4060-82f6-56abd717c0fd', 'rel_x': 350.0, 'rel_y': -78.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '36': root/general/devices/probe 0/1/36 GroupBuilder {'attributes': {'name': '36', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '55196b0b-106c-4a92-9d3b-908e6ff900ff', 'rel_x': 350.0, 'rel_y': -104.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '37': root/general/devices/probe 0/1/37 GroupBuilder {'attributes': {'name': '37', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '829716ca-1c66-4751-b31f-b42dce8006a3', 'rel_x': 350.0, 'rel_y': -130.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '38': root/general/devices/probe 0/1/38 GroupBuilder {'attributes': {'name': '38', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '200ec0a4-0e79-45ce-a9ff-1a12f6fdc37b', 'rel_x': 350.0, 'rel_y': -156.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '39': root/general/devices/probe 0/1/39 GroupBuilder {'attributes': {'name': '39', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '471df859-05ab-440b-acaf-5e71ac33bc14', 'rel_x': 350.0, 'rel_y': -182.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '40': root/general/devices/probe 0/1/40 GroupBuilder {'attributes': {'name': '40', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a87392fe-859c-454c-b738-df906400c3dc', 'rel_x': 350.0, 'rel_y': -208.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '41': root/general/devices/probe 0/1/41 GroupBuilder {'attributes': {'name': '41', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c17cfc3e-6188-4fb9-ad48-c9e0677cfd26', 'rel_x': 350.0, 'rel_y': -234.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '42': root/general/devices/probe 0/1/42 GroupBuilder {'attributes': {'name': '42', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '0e27875f-7b7b-4f77-95f6-c53cfad7e03f', 'rel_x': 350.0, 'rel_y': -260.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '43': root/general/devices/probe 0/1/43 GroupBuilder {'attributes': {'name': '43', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '9762a2da-be1e-494a-b86f-eae123af42ee', 'rel_x': 350.0, 'rel_y': -286.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '44': root/general/devices/probe 0/1/44 GroupBuilder {'attributes': {'name': '44', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '88f5df45-7e5f-4200-b391-46cc5b3ac603', 'rel_x': 350.0, 'rel_y': -312.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '45': root/general/devices/probe 0/1/45 GroupBuilder {'attributes': {'name': '45', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6a62d1b5-aed1-478d-afac-e7a19aa8dc96', 'rel_x': 350.0, 'rel_y': -338.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '46': root/general/devices/probe 0/1/46 GroupBuilder {'attributes': {'name': '46', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '0b27f376-698b-43db-853c-c7e004ac8579', 'rel_x': 350.0, 'rel_y': -364.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '47': root/general/devices/probe 0/1/47 GroupBuilder {'attributes': {'name': '47', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7780c9f3-1035-4d5b-894a-a44d028d595b', 'rel_x': 350.0, 'rel_y': -390.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '48': root/general/devices/probe 0/1/48 GroupBuilder {'attributes': {'name': '48', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '21bba8b8-14e1-406e-a52f-da67e35b68ae', 'rel_x': 350.0, 'rel_y': -416.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '49': root/general/devices/probe 0/1/49 GroupBuilder {'attributes': {'name': '49', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '04cd2f28-6c98-458b-8c6d-04870bf6c7be', 'rel_x': 350.0, 'rel_y': -442.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '50': root/general/devices/probe 0/1/50 GroupBuilder {'attributes': {'name': '50', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a4423d5a-921c-49f7-a52c-e8f8bf83a3f0', 'rel_x': 350.0, 'rel_y': -468.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '51': root/general/devices/probe 0/1/51 GroupBuilder {'attributes': {'name': '51', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '96f595d3-99d6-4d7d-b0c7-8a3f2b51edc1', 'rel_x': 350.0, 'rel_y': -494.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '52': root/general/devices/probe 0/1/52 GroupBuilder {'attributes': {'name': '52', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '64fbb710-997a-4bd6-83a5-fc5285b765ad', 'rel_x': 350.0, 'rel_y': -520.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '53': root/general/devices/probe 0/1/53 GroupBuilder {'attributes': {'name': '53', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '9ff89843-1b66-4cbb-ad28-29fd7e287633', 'rel_x': 350.0, 'rel_y': -546.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '54': root/general/devices/probe 0/1/54 GroupBuilder {'attributes': {'name': '54', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a3e6bf34-eed4-46b7-bf0e-6dd85219f1d4', 'rel_x': 350.0, 'rel_y': -572.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '55': root/general/devices/probe 0/1/55 GroupBuilder {'attributes': {'name': '55', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '16952a3c-b382-4138-bbad-53be00dac612', 'rel_x': 350.0, 'rel_y': -598.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '56': root/general/devices/probe 0/1/56 GroupBuilder {'attributes': {'name': '56', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '261f2145-5077-4d19-a633-8c7c32be6eae', 'rel_x': 350.0, 'rel_y': -624.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '57': root/general/devices/probe 0/1/57 GroupBuilder {'attributes': {'name': '57', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '9190f199-392f-4715-af95-7d10b5e87307', 'rel_x': 350.0, 'rel_y': -650.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '58': root/general/devices/probe 0/1/58 GroupBuilder {'attributes': {'name': '58', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '97050e9b-24e5-45cd-9193-e028401cd1df', 'rel_x': 350.0, 'rel_y': -676.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '59': root/general/devices/probe 0/1/59 GroupBuilder {'attributes': {'name': '59', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7f9f9e0d-cf5b-4910-a85b-ec9a5dd9c432', 'rel_x': 350.0, 'rel_y': -702.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '60': root/general/devices/probe 0/1/60 GroupBuilder {'attributes': {'name': '60', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '872ea668-8a7c-45e5-bd05-85194a2ef131', 'rel_x': 350.0, 'rel_y': -728.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '61': root/general/devices/probe 0/1/61 GroupBuilder {'attributes': {'name': '61', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7125b5d0-9009-4063-8cc2-71917bab9852', 'rel_x': 350.0, 'rel_y': -754.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '62': root/general/devices/probe 0/1/62 GroupBuilder {'attributes': {'name': '62', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a02efedc-6019-48d6-92f2-015806fea706', 'rel_x': 350.0, 'rel_y': -780.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '63': root/general/devices/probe 0/1/63 GroupBuilder {'attributes': {'name': '63', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a588a3c1-2f54-4c8a-b85e-d373c2e68fc0', 'rel_x': 350.0, 'rel_y': -806.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}}, 'datasets': {}, 'links': {}}, '2': root/general/devices/probe 0/2 GroupBuilder {'attributes': {'name': '2', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'Shank', 'object_id': 'c64a3ddc-6255-4f5d-9366-729a9a4653e0'}, 'groups': {'64': root/general/devices/probe 0/2/64 GroupBuilder {'attributes': {'name': '64', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '45693edb-fec6-4c77-87d9-56d4c3becaa5', 'rel_x': 774.0, 'rel_y': 0.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '65': root/general/devices/probe 0/2/65 GroupBuilder {'attributes': {'name': '65', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'e6af69ac-8257-44e1-a37b-ebc7e18953b2', 'rel_x': 774.0, 'rel_y': -26.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '66': root/general/devices/probe 0/2/66 GroupBuilder {'attributes': {'name': '66', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'b343f933-b084-4389-b5c7-f39c1350659c', 'rel_x': 774.0, 'rel_y': -52.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '67': root/general/devices/probe 0/2/67 GroupBuilder {'attributes': {'name': '67', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7173f9e8-d560-4d22-9843-569591a47776', 'rel_x': 774.0, 'rel_y': -78.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '68': root/general/devices/probe 0/2/68 GroupBuilder {'attributes': {'name': '68', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '74178c2c-a159-4ccf-8d13-f4f73282067d', 'rel_x': 774.0, 'rel_y': -104.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '69': root/general/devices/probe 0/2/69 GroupBuilder {'attributes': {'name': '69', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'be24ffc1-eccb-4760-92dd-257be45f98b3', 'rel_x': 774.0, 'rel_y': -130.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '70': root/general/devices/probe 0/2/70 GroupBuilder {'attributes': {'name': '70', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'aa994673-50a8-46c4-a1e4-a3d019dccd08', 'rel_x': 774.0, 'rel_y': -156.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '71': root/general/devices/probe 0/2/71 GroupBuilder {'attributes': {'name': '71', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '101023f4-b49d-4054-bb36-4ebe25a4ff42', 'rel_x': 774.0, 'rel_y': -182.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '72': root/general/devices/probe 0/2/72 GroupBuilder {'attributes': {'name': '72', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '96d82b53-419a-4280-9658-4c92de08168f', 'rel_x': 774.0, 'rel_y': -208.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '73': root/general/devices/probe 0/2/73 GroupBuilder {'attributes': {'name': '73', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '2e08ba0d-66c6-45a1-a0fe-05b9d20cc7c5', 'rel_x': 774.0, 'rel_y': -234.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '74': root/general/devices/probe 0/2/74 GroupBuilder {'attributes': {'name': '74', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '881c8377-911b-4ab6-b8c3-5ce70ff52df7', 'rel_x': 774.0, 'rel_y': -260.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '75': root/general/devices/probe 0/2/75 GroupBuilder {'attributes': {'name': '75', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'e59788d1-1878-47a3-aead-39acc898b0e4', 'rel_x': 774.0, 'rel_y': -286.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '76': root/general/devices/probe 0/2/76 GroupBuilder {'attributes': {'name': '76', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '4475959b-6a0e-432a-b169-4ea41a0e35c5', 'rel_x': 774.0, 'rel_y': -312.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '77': root/general/devices/probe 0/2/77 GroupBuilder {'attributes': {'name': '77', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'ac5bec70-d237-4adb-bf9c-67fd60641d3c', 'rel_x': 774.0, 'rel_y': -338.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '78': root/general/devices/probe 0/2/78 GroupBuilder {'attributes': {'name': '78', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '98dfaa2a-a138-4ff3-a3ca-bc7ca8d45eda', 'rel_x': 774.0, 'rel_y': -364.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '79': root/general/devices/probe 0/2/79 GroupBuilder {'attributes': {'name': '79', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'd4eeaf06-a152-48f0-b67d-6b393ed93b0a', 'rel_x': 774.0, 'rel_y': -390.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '80': root/general/devices/probe 0/2/80 GroupBuilder {'attributes': {'name': '80', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '5b3da876-e498-4b12-8a80-30716814ec56', 'rel_x': 774.0, 'rel_y': -416.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '81': root/general/devices/probe 0/2/81 GroupBuilder {'attributes': {'name': '81', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '897aa2e2-7deb-420f-a545-9d4c86798eba', 'rel_x': 774.0, 'rel_y': -442.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '82': root/general/devices/probe 0/2/82 GroupBuilder {'attributes': {'name': '82', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '54e05d42-91b7-471f-bf20-7b306cd59903', 'rel_x': 774.0, 'rel_y': -468.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '83': root/general/devices/probe 0/2/83 GroupBuilder {'attributes': {'name': '83', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '9198fdcd-d929-425d-b035-27f925c0f015', 'rel_x': 774.0, 'rel_y': -494.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '84': root/general/devices/probe 0/2/84 GroupBuilder {'attributes': {'name': '84', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '10925411-48e7-4cb0-9f84-6441ec74da8f', 'rel_x': 774.0, 'rel_y': -520.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '85': root/general/devices/probe 0/2/85 GroupBuilder {'attributes': {'name': '85', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '813b8cff-5294-4f79-97a7-7f07fd2c5762', 'rel_x': 774.0, 'rel_y': -546.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '86': root/general/devices/probe 0/2/86 GroupBuilder {'attributes': {'name': '86', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7530be0d-f2d6-4cf7-b44a-e7e92bf18bc1', 'rel_x': 774.0, 'rel_y': -572.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '87': root/general/devices/probe 0/2/87 GroupBuilder {'attributes': {'name': '87', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7f35300c-af9c-4494-b302-bd9e09ecd1ec', 'rel_x': 774.0, 'rel_y': -598.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '88': root/general/devices/probe 0/2/88 GroupBuilder {'attributes': {'name': '88', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'f301e6e5-a2e8-460b-aefe-437e44eebf4d', 'rel_x': 774.0, 'rel_y': -624.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '89': root/general/devices/probe 0/2/89 GroupBuilder {'attributes': {'name': '89', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'f6e0a865-cf0c-4589-95c9-335d1ac8e32b', 'rel_x': 774.0, 'rel_y': -650.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '90': root/general/devices/probe 0/2/90 GroupBuilder {'attributes': {'name': '90', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c7d98547-0e55-4406-b4b1-42469aad789e', 'rel_x': 774.0, 'rel_y': -676.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '91': root/general/devices/probe 0/2/91 GroupBuilder {'attributes': {'name': '91', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '7b396e2c-0dc6-4a01-9c00-8e2072199ea6', 'rel_x': 774.0, 'rel_y': -702.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '92': root/general/devices/probe 0/2/92 GroupBuilder {'attributes': {'name': '92', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '38034fd0-6a2d-4dee-b85a-07900093648e', 'rel_x': 774.0, 'rel_y': -728.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '93': root/general/devices/probe 0/2/93 GroupBuilder {'attributes': {'name': '93', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'cb9f442c-2ec2-473b-bcd4-d7a4d7658412', 'rel_x': 774.0, 'rel_y': -754.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '94': root/general/devices/probe 0/2/94 GroupBuilder {'attributes': {'name': '94', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '8b2c387f-6632-46ed-a77d-3fbdd3691f29', 'rel_x': 774.0, 'rel_y': -780.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '95': root/general/devices/probe 0/2/95 GroupBuilder {'attributes': {'name': '95', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'fa23bebe-dce2-451e-980d-33e0543f13d0', 'rel_x': 774.0, 'rel_y': -806.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}}, 'datasets': {}, 'links': {}}, '3': root/general/devices/probe 0/3 GroupBuilder {'attributes': {'name': '3', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'Shank', 'object_id': 'a768b9ef-abe1-4d01-8a6d-b49348d98945'}, 'groups': {'100': root/general/devices/probe 0/3/100 GroupBuilder {'attributes': {'name': '100', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '24717839-526a-4635-927f-c97127211af8', 'rel_x': 1124.0, 'rel_y': -104.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '101': root/general/devices/probe 0/3/101 GroupBuilder {'attributes': {'name': '101', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'ff33dbff-6e72-4267-98a9-8f7d99a33b1e', 'rel_x': 1124.0, 'rel_y': -130.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '102': root/general/devices/probe 0/3/102 GroupBuilder {'attributes': {'name': '102', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'd8392f58-f142-49ad-8b0d-5bb9ea393083', 'rel_x': 1124.0, 'rel_y': -156.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '103': root/general/devices/probe 0/3/103 GroupBuilder {'attributes': {'name': '103', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6963217d-b060-41ab-baa1-2c0303ad05fb', 'rel_x': 1124.0, 'rel_y': -182.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '104': root/general/devices/probe 0/3/104 GroupBuilder {'attributes': {'name': '104', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '21880f42-b835-42e7-9b18-d909a369b142', 'rel_x': 1124.0, 'rel_y': -208.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '105': root/general/devices/probe 0/3/105 GroupBuilder {'attributes': {'name': '105', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '8ad4d5f4-c1e1-4fe9-9592-cdf3a1c250c7', 'rel_x': 1124.0, 'rel_y': -234.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '106': root/general/devices/probe 0/3/106 GroupBuilder {'attributes': {'name': '106', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '2d99dc8c-b3af-46d6-89ad-32687cbf6424', 'rel_x': 1124.0, 'rel_y': -260.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '107': root/general/devices/probe 0/3/107 GroupBuilder {'attributes': {'name': '107', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'f991b5d6-66fe-432d-87c8-4397262a546c', 'rel_x': 1124.0, 'rel_y': -286.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '108': root/general/devices/probe 0/3/108 GroupBuilder {'attributes': {'name': '108', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '02f6db33-03db-4dcc-88b8-bbf7d083d0a5', 'rel_x': 1124.0, 'rel_y': -312.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '109': root/general/devices/probe 0/3/109 GroupBuilder {'attributes': {'name': '109', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '2bba1086-be43-42e3-9123-e597e72979dd', 'rel_x': 1124.0, 'rel_y': -338.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '110': root/general/devices/probe 0/3/110 GroupBuilder {'attributes': {'name': '110', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '0d164443-4aa8-4f07-b392-74c755d53eb5', 'rel_x': 1124.0, 'rel_y': -364.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '111': root/general/devices/probe 0/3/111 GroupBuilder {'attributes': {'name': '111', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '66f321f8-90c0-492e-afa1-d2419a6f9dc8', 'rel_x': 1124.0, 'rel_y': -390.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '112': root/general/devices/probe 0/3/112 GroupBuilder {'attributes': {'name': '112', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a95b22d1-3880-44e4-ad75-6bce2b6ceffa', 'rel_x': 1124.0, 'rel_y': -416.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '113': root/general/devices/probe 0/3/113 GroupBuilder {'attributes': {'name': '113', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6a557630-6885-4f98-a479-4ab03d977819', 'rel_x': 1124.0, 'rel_y': -442.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '114': root/general/devices/probe 0/3/114 GroupBuilder {'attributes': {'name': '114', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'e0c6b1f6-97a0-49d6-9cbd-f33273736e48', 'rel_x': 1124.0, 'rel_y': -468.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '115': root/general/devices/probe 0/3/115 GroupBuilder {'attributes': {'name': '115', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6ff9f63a-4322-4386-bd41-f947a52c992b', 'rel_x': 1124.0, 'rel_y': -494.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '116': root/general/devices/probe 0/3/116 GroupBuilder {'attributes': {'name': '116', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'd690f0ed-e05a-41f2-b54d-af2d1959b18a', 'rel_x': 1124.0, 'rel_y': -520.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '117': root/general/devices/probe 0/3/117 GroupBuilder {'attributes': {'name': '117', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '2c02ceb1-f222-445d-a1e8-905d3d66d633', 'rel_x': 1124.0, 'rel_y': -546.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '118': root/general/devices/probe 0/3/118 GroupBuilder {'attributes': {'name': '118', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '5d43fd95-dca4-4a08-b7de-6d49bc6e323b', 'rel_x': 1124.0, 'rel_y': -572.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '119': root/general/devices/probe 0/3/119 GroupBuilder {'attributes': {'name': '119', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'e13517c2-113b-4ede-b8aa-d376e2acfc54', 'rel_x': 1124.0, 'rel_y': -598.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '120': root/general/devices/probe 0/3/120 GroupBuilder {'attributes': {'name': '120', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'c8915905-e0c9-4a54-bbd8-b66d4d77729a', 'rel_x': 1124.0, 'rel_y': -624.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '121': root/general/devices/probe 0/3/121 GroupBuilder {'attributes': {'name': '121', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6bfc4408-fc1b-4324-9395-9e45b36d134e', 'rel_x': 1124.0, 'rel_y': -650.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '122': root/general/devices/probe 0/3/122 GroupBuilder {'attributes': {'name': '122', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'cc5e6d03-e098-43d1-aa53-a47938664650', 'rel_x': 1124.0, 'rel_y': -676.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '123': root/general/devices/probe 0/3/123 GroupBuilder {'attributes': {'name': '123', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6c4fd29b-be27-4252-819a-0e6c75ac82b6', 'rel_x': 1124.0, 'rel_y': -702.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '124': root/general/devices/probe 0/3/124 GroupBuilder {'attributes': {'name': '124', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '8e180207-6959-4444-af08-02204e7d23ab', 'rel_x': 1124.0, 'rel_y': -728.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '125': root/general/devices/probe 0/3/125 GroupBuilder {'attributes': {'name': '125', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '1a2e27aa-10cc-4836-ba78-e2e0ec720218', 'rel_x': 1124.0, 'rel_y': -754.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '126': root/general/devices/probe 0/3/126 GroupBuilder {'attributes': {'name': '126', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': '6d081670-af69-4860-a08c-d1677592b60c', 'rel_x': 1124.0, 'rel_y': -780.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '127': root/general/devices/probe 0/3/127 GroupBuilder {'attributes': {'name': '127', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'e6037cd1-45ba-4225-a0f0-d37aaee335a3', 'rel_x': 1124.0, 'rel_y': -806.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '96': root/general/devices/probe 0/3/96 GroupBuilder {'attributes': {'name': '96', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'a6741550-ae18-4436-9a31-63136ba92660', 'rel_x': 1124.0, 'rel_y': 0.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '97': root/general/devices/probe 0/3/97 GroupBuilder {'attributes': {'name': '97', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'f49ce718-391f-4c9f-b315-03669e91a1f5', 'rel_x': 1124.0, 'rel_y': -26.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '98': root/general/devices/probe 0/3/98 GroupBuilder {'attributes': {'name': '98', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'db3539b2-acfb-4279-8559-4487ea3448bd', 'rel_x': 1124.0, 'rel_y': -52.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}, '99': root/general/devices/probe 0/3/99 GroupBuilder {'attributes': {'name': '99', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'ShanksElectrode', 'object_id': 'bfee3a0a-5f91-4584-9273-4e8555fdf4f9', 'rel_x': 1124.0, 'rel_y': -78.0, 'rel_z': 0.0}, 'groups': {}, 'datasets': {}, 'links': {}}}, 'datasets': {}, 'links': {}}}, 'datasets': {}, 'links': {}}, "Could not construct Probe object due to: AbstractContainer.__init__: Expected at most 1 arguments ['name'], got 3: 0 positional and 3 keyword ['description', 'manufacturer', 'name']")

Operating System

Linux

Python Executable

Conda

Python Version

3.8

Package Versions

environment_for_issue.txt

Code of Conduct

@oruebel
Copy link
Contributor

oruebel commented Jun 2, 2022

It looks like the error is somehow related to the Probe type as part of the ndx-franklab-novela extension. Somehow it seems to try and call AbstractContainer.__init__ with too many arguments. It's hard for me to tell right now what change exactly triggers this errors, but I think it may have to do with the changes to hdmf/container.py in
#730

@oruebel oruebel added category: bug errors in the code or code behavior priority: high impacts proper operation or use of feature important to most users labels Jun 2, 2022
@CodyCBakerPhD
Copy link
Contributor

CodyCBakerPhD commented Jun 3, 2022

Another example of a file on DANDI failing to open that came up in the CI for the NWBInspector...

    with pynwb.NWBHDF5IO(
        path="https://dandiarchive.s3.amazonaws.com/blobs/da5/107/da510761-653e-4b81-a330-9cdae4838180",
        mode="r",
        load_namespaces=True,
        driver="ros3",
    ) as io:
        nwbfile = io.read()

Works fine with hdmf==3.2.1 but fails with hdmf==3.3.1, giving error

TypeError: AbstractContainer.__init__: Expected at most 1 arguments ['name'], got 18: 0 positional and 18 keyword ['bits_per_pixel', 'comments', 'control', 'control_description', 'conversion', 'data', 'description', 'device', 'dimension', 'external_file', 'format', 'name', 'rate', 'resolution', 'starting_frame', 'starting_time', 'timestamps', 'unit']

specifically traced down to

hdmf.build.errors.ConstructError: (root/processing/video_files/video/20170203_KIB_01_s1.1.h264 GroupBuilder {'attributes': {'comments': 'no comments', 'description': 'video of animal behavior from epoch', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'NwbImageSeries', 'object_id': 'b6a33b7f-68a6-41ab-a4eb-c9b06fc82f6b'}, 'groups': {}, 'datasets': {'external_file': root/processing/video_files/video/20170203_KIB_01_s1.1.h264/external_file DatasetBuilder {'attributes': {'starting_frame': array([0])}, 'data': <StrDataset for Closed HDF5 dataset>}, 'format': root/processing/video_files/video/20170203_KIB_01_s1.1.h264/format DatasetBuilder {'attributes': {}, 'data': 'external'}, 'timestamps': root/processing/video_files/video/20170203_KIB_01_s1.1.h264/timestamps DatasetBuilder {'attributes': {'interval': 1, 'unit': 'seconds'}, 'data': <Closed HDF5 dataset>}}, 'links': {'camera_device 0': root/processing/video_files/video/20170203_KIB_01_s1.1.h264/camera_device 0 LinkBuilder {'builder': root/general/devices/camera_device 0 GroupBuilder {'attributes': {'camera_name': 'sleep camera', 'lens': 'Unknown', 'manufacturer': 'Unknown', 'meters_per_pixel': 0.00055, 'model': 'Unknown', 'namespace': 'ndx-franklab-novela', 'neurodata_type': 'CameraDevice', 'object_id': '9e3fa905-100a-4905-9744-c39268747c74'}, 'groups': {}, 'datasets': {}, 'links': {}}}}}, "Could not construct NwbImageSeries object due to: AbstractContainer.__init__: Expected at most 1 arguments ['name'], got 18: 0 positional and 18 keyword ['bits_per_pixel', 'comments', 'control', 'control_description', 'conversion', 'data', 'description', 'device', 'dimension', 'external_file', 'format', 'name', 'rate', 'resolution', 'starting_frame', 'starting_time', 'timestamps', 'unit']")

@rly
Copy link
Contributor

rly commented Jun 17, 2022

Update: I have found the problem and am looking into a solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: bug errors in the code or code behavior priority: high impacts proper operation or use of feature important to most users
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants