|
21 | 21 |
|
22 | 22 | from webknossos.dataset_properties import ( |
23 | 23 | SEGMENTATION_CATEGORY, |
| 24 | + AttachmentProperties, |
24 | 25 | DataFormat, |
25 | 26 | DatasetProperties, |
| 27 | + MagViewProperties, |
| 28 | + SegmentationLayerProperties, |
26 | 29 | get_dataset_converter, |
27 | 30 | ) |
28 | 31 |
|
@@ -283,10 +286,38 @@ def export_to_dataset( |
283 | 286 | assert len(datasource_properties.data_layers) == 1, ( |
284 | 287 | f"Volume data zip must contain exactly one layer, got {len(datasource_properties.data_layers)}" |
285 | 288 | ) |
286 | | - layer_properties = datasource_properties.data_layers[0] |
| 289 | + layer_properties = cast( |
| 290 | + SegmentationLayerProperties, datasource_properties.data_layers[0] |
| 291 | + ) |
287 | 292 | internal_layer_name = layer_properties.name |
288 | 293 | layer_properties.name = layer_name |
289 | 294 |
|
| 295 | + def replace_property_path( |
| 296 | + layer_property: AttachmentProperties | None, |
| 297 | + ) -> None: |
| 298 | + if layer_property: |
| 299 | + layer_property.path = layer_property.path.replace( |
| 300 | + internal_layer_name, layer_name |
| 301 | + ) |
| 302 | + |
| 303 | + def replace_properties_path( |
| 304 | + properties: Sequence[AttachmentProperties | MagViewProperties] |
| 305 | + | None, |
| 306 | + ) -> None: |
| 307 | + if properties: |
| 308 | + for layer_property in properties: |
| 309 | + if layer_property.path: |
| 310 | + layer_property.path = layer_property.path.replace( |
| 311 | + internal_layer_name, layer_name |
| 312 | + ) |
| 313 | + |
| 314 | + replace_properties_path(layer_properties.mags) |
| 315 | + replace_properties_path(layer_properties.attachments.meshes) |
| 316 | + replace_properties_path(layer_properties.attachments.agglomerates) |
| 317 | + replace_property_path(layer_properties.attachments.segment_index) |
| 318 | + replace_property_path(layer_properties.attachments.cumsum) |
| 319 | + replace_properties_path(layer_properties.attachments.connectomes) |
| 320 | + |
290 | 321 | _extract_zip_folder( |
291 | 322 | data_zip, dataset.path / layer_name, f"{internal_layer_name}/" |
292 | 323 | ) |
|
0 commit comments