webknossos-libs icon indicating copy to clipboard operation
webknossos-libs copied to clipboard

fyi: datasets created with version v0.14.25 are not backward compatible with v0.14.24

Open erjel opened this issue 1 year ago • 0 comments

I cannot read datasets created with version 0.14.25 onward with version 0.14.24.

Error message:

>>> import webknossos as wk
>>> wk.Dataset.open('my_newer_dataset')
  + Exception Group Traceback (most recent call last):
  |   File "<stdin>", line 1, in <module>
  |   File "$HOME/src/webknossos-libs-test/webknossos/webknossos/dataset/dataset.py", line 386, in open
  |     return cls(dataset_path, voxel_size=_UNSPECIFIED_SCALE_FROM_OPEN, exist_ok=True)
  |   File "$HOME/src/webknossos-libs-test/webknossos/webknossos/dataset/dataset.py", line 322, in __init__
  |     self._properties: DatasetProperties = self._load_properties()
  |   File "$HOME/src/webknossos-libs-test/webknossos/webknossos/dataset/dataset.py", line 1845, in _load_properties
  |     return dataset_converter.structure(data, DatasetProperties)
  |   File "$HOME/.cache/pypoetry/virtualenvs/webknossos-lsrBp02S-py3.10/lib/python3.10/site-packages/cattrs/converters.py", line 334, in structure
  |     return self._structure_func.dispatch(cl)(obj, cl)
  |   File "<cattrs generated structure webknossos.dataset.properties.DatasetProperties>", line 25, in structure_DatasetProperties
  |     if errors: raise __c_cve('While structuring ' + 'DatasetProperties', errors, __cl)
  | cattrs.errors.ClassValidationError: While structuring DatasetProperties (1 sub-exception)
  +-+---------------- 1 ----------------
    | Exception Group Traceback (most recent call last):
    |   File "<cattrs generated structure webknossos.dataset.properties.DatasetProperties>", line 10, in structure_DatasetProperties
    |     res['scale'] = __c_structure_scale(o['scale'], __c_type_scale)
    |   File "$HOME/.cache/pypoetry/virtualenvs/webknossos-lsrBp02S-py3.10/lib/python3.10/site-packages/cattrs/converters.py", line 721, in _structure_tuple
    |     raise IterableValidationError(
    | cattrs.errors.IterableValidationError: While structuring typing.Tuple[float, float, float] (3 sub-exceptions)
    | Structuring class DatasetProperties @ attribute scale
    +-+---------------- 1 ----------------
      | Traceback (most recent call last):
      |   File "$HOME/.cache/pypoetry/virtualenvs/webknossos-lsrBp02S-py3.10/lib/python3.10/site-packages/cattrs/converters.py", line 705, in _structure_tuple
      |     res.append(conv(e, t))
      |   File "$HOME/.cache/pypoetry/virtualenvs/webknossos-lsrBp02S-py3.10/lib/python3.10/site-packages/cattrs/converters.py", line 440, in _structure_call
      |     return cl(obj)
      | ValueError: could not convert string to float: 'factor'
      | Structuring typing.Tuple[float, float, float] @ index 0
      +---------------- 2 ----------------
      | Traceback (most recent call last):
      |   File "$HOME/.cache/pypoetry/virtualenvs/webknossos-lsrBp02S-py3.10/lib/python3.10/site-packages/cattrs/converters.py", line 705, in _structure_tuple
      |     res.append(conv(e, t))
      |   File "$HOME/.cache/pypoetry/virtualenvs/webknossos-lsrBp02S-py3.10/lib/python3.10/site-packages/cattrs/converters.py", line 440, in _structure_call
      |     return cl(obj)
      | ValueError: could not convert string to float: 'unit'
      | Structuring typing.Tuple[float, float, float] @ index 1
      +---------------- 3 ----------------
      | ValueError: Not enough values in {'factor': [9.8, 9.8, 30.0], 'unit': 'nanometer'} to structure as typing.Tuple[float, float, float]
      | Structuring typing.Tuple[float, float, float]
      +------------------------------------

I will update my environments to the newer versions now, I just want to make you aware of the breaking change.

Best wishes, Eric

erjel avatar Jul 22 '24 14:07 erjel