From f91df56cf6d2ba2450a16f942c03c9879138882e Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:11:56 +0100 Subject: [PATCH 1/8] Update cloudvolume.py --- cloudvolume/cloudvolume.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cloudvolume/cloudvolume.py b/cloudvolume/cloudvolume.py index 580836c3..6054a08b 100644 --- a/cloudvolume/cloudvolume.py +++ b/cloudvolume/cloudvolume.py @@ -67,7 +67,7 @@ def __new__(cls, compress:CompressType=None, compress_level:Optional[int]=None, non_aligned_writes:bool=False, parallel:ParallelType=1, delete_black_uploads:bool=False, background_color:int=0, green_threads:bool=False, use_https:bool=False, - max_redirects:int=10, mesh_dir:Optional[str]=None, skel_dir:Optional[str]=None, + max_redirects:int=10, mesh_dir:Optional[str]=None, skel_dir:Optional[str]=None, segment_prop_dir:Optional[str]=None, agglomerate:bool=False, secrets:SecretsType=None, spatial_index_db:Optional[str]=None, lru_bytes:int = 0, cache_locking:bool = True @@ -207,6 +207,8 @@ def __new__(cls, file, use this one. secrets: (dict) provide per-instance authorization tokens. If not provided, defaults to looking in .cloudvolume/secrets for necessary tokens. + segment_prop_dir: (str) if not None, override the info['segment_properties'] + key before pulling the skeleton info file. skel_dir: (str) if not None, override the info['skeletons'] key before pulling the skeleton info file. spatial_index_db: (str) A path to an sqlite3 or mysql database that follows From 06bd97398d0ad700c8da12419a8c3b31d9521ea1 Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:15:57 +0100 Subject: [PATCH 2/8] Update precomputed.py --- cloudvolume/frontends/precomputed.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cloudvolume/frontends/precomputed.py b/cloudvolume/frontends/precomputed.py index 78ed6df2..2025ac58 100644 --- a/cloudvolume/frontends/precomputed.py +++ b/cloudvolume/frontends/precomputed.py @@ -38,7 +38,7 @@ def warn(text): class CloudVolumePrecomputed(object): def __init__(self, meta, cache, config, - image=None, mesh=None, skeleton=None, + image=None, mesh=None, skeleton=None, segment_props=None mip=0 ): self.config = config @@ -48,6 +48,7 @@ def __init__(self, self.image = image self.mesh = mesh self.skeleton = skeleton + self.segment_props = segment_props self.green_threads = self.config.green # display warning message @@ -216,7 +217,8 @@ def __setstate__(self, d): def create_new_info(cls, num_channels, layer_type, data_type, encoding, resolution, voxel_offset, volume_size, - mesh=None, skeletons=None, chunk_size=(64,64,64), + mesh=None, skeletons=None, segment_props= None, + chunk_size=(64,64,64), compressed_segmentation_block_size=(8,8,8), max_mip=0, factor=Vec(2,2,1), redirect=None, *args, **kwargs @@ -236,6 +238,7 @@ def create_new_info(cls, Optional: mesh: (str) name of mesh directory, typically "mesh" skeletons: (str) name of skeletons directory, typically "skeletons" + segment_props: (str) name of segment properties directory, typically "segment_properties" chunk_size: int (x,y,z), dimensions of each downloadable 3D image chunk in voxels compressed_segmentation_block_size: (x,y,z) dimensions of each compressed sub-block (only used when encoding is 'compressed_segmentation') From 7be265f4c4e9d466132c3749bc7eca634b61f2f0 Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:19:00 +0100 Subject: [PATCH 3/8] Update metadata.py --- cloudvolume/datasource/precomputed/metadata.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cloudvolume/datasource/precomputed/metadata.py b/cloudvolume/datasource/precomputed/metadata.py index 98b95c69..db709e11 100644 --- a/cloudvolume/datasource/precomputed/metadata.py +++ b/cloudvolume/datasource/precomputed/metadata.py @@ -79,7 +79,8 @@ def check_for_placeholder_scale(self, mip:int): def create_info(cls, num_channels, layer_type, data_type, encoding, resolution, voxel_offset, volume_size, - mesh=None, skeletons=None, chunk_size=(128,128,64), + mesh=None, skeletons=None, segment_props=None, + chunk_size=(128,128,64), compressed_segmentation_block_size=(8,8,8), max_mip=0, factor=Vec(2,2,1), redirect=None ): @@ -98,6 +99,7 @@ def create_info(cls, Optional: mesh: (str) name of mesh directory, typically "mesh" skeletons: (str) name of skeletons directory, typically "skeletons" + segment_props: (str) name of segment properties directory, typically "segment_properties" chunk_size: int (x,y,z), dimensions of each downloadable 3D image chunk in voxels compressed_segmentation_block_size: (x,y,z) dimensions of each compressed sub-block (only used when encoding is 'compressed_segmentation') @@ -150,6 +152,9 @@ def create_info(cls, if skeletons: info['skeletons'] = 'skeletons' if not isinstance(skeletons, string_types) else skeletons + + if segment_props: + info['segment_properties'] = 'segment_properties' if not isinstance(skeletons, string_types) else segment_props return info @@ -877,4 +882,4 @@ def unlock_mips(self, mips): raise exceptions.WriteLockReleaseError(msg) def locked_mips(self): - return set([ i for i, scale in enumerate(self.info['scales']) if scale.get('locked', False) ]) \ No newline at end of file + return set([ i for i, scale in enumerate(self.info['scales']) if scale.get('locked', False) ]) From 8f3828e728ed23f751b22a17638d561d27cbdcec Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:19:44 +0100 Subject: [PATCH 4/8] Update precomputed.py --- cloudvolume/frontends/precomputed.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudvolume/frontends/precomputed.py b/cloudvolume/frontends/precomputed.py index 2025ac58..03278a7d 100644 --- a/cloudvolume/frontends/precomputed.py +++ b/cloudvolume/frontends/precomputed.py @@ -252,7 +252,7 @@ def create_new_info(cls, return PrecomputedMetadata.create_info( num_channels, layer_type, data_type, encoding, resolution, voxel_offset, volume_size, - mesh, skeletons, chunk_size, + mesh, skeletons, segment_props, chunk_size, compressed_segmentation_block_size, max_mip, factor, *args, **kwargs From f9375a5cde5080e95c4ca266ddb4913eca72c2a4 Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:20:27 +0100 Subject: [PATCH 5/8] Change `segment_props` to `segment_properties` --- cloudvolume/frontends/precomputed.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cloudvolume/frontends/precomputed.py b/cloudvolume/frontends/precomputed.py index 03278a7d..3da7e8ac 100644 --- a/cloudvolume/frontends/precomputed.py +++ b/cloudvolume/frontends/precomputed.py @@ -38,7 +38,7 @@ def warn(text): class CloudVolumePrecomputed(object): def __init__(self, meta, cache, config, - image=None, mesh=None, skeleton=None, segment_props=None + image=None, mesh=None, skeleton=None, segment_properties=None mip=0 ): self.config = config @@ -48,7 +48,7 @@ def __init__(self, self.image = image self.mesh = mesh self.skeleton = skeleton - self.segment_props = segment_props + self.segment_properties = segment_properties self.green_threads = self.config.green # display warning message @@ -217,7 +217,7 @@ def __setstate__(self, d): def create_new_info(cls, num_channels, layer_type, data_type, encoding, resolution, voxel_offset, volume_size, - mesh=None, skeletons=None, segment_props= None, + mesh=None, skeletons=None, segment_properties= None, chunk_size=(64,64,64), compressed_segmentation_block_size=(8,8,8), max_mip=0, factor=Vec(2,2,1), redirect=None, @@ -238,7 +238,7 @@ def create_new_info(cls, Optional: mesh: (str) name of mesh directory, typically "mesh" skeletons: (str) name of skeletons directory, typically "skeletons" - segment_props: (str) name of segment properties directory, typically "segment_properties" + segment_properties: (str) name of segment properties directory, typically "segment_properties" chunk_size: int (x,y,z), dimensions of each downloadable 3D image chunk in voxels compressed_segmentation_block_size: (x,y,z) dimensions of each compressed sub-block (only used when encoding is 'compressed_segmentation') @@ -252,7 +252,7 @@ def create_new_info(cls, return PrecomputedMetadata.create_info( num_channels, layer_type, data_type, encoding, resolution, voxel_offset, volume_size, - mesh, skeletons, segment_props, chunk_size, + mesh, skeletons, segment_properties, chunk_size, compressed_segmentation_block_size, max_mip, factor, *args, **kwargs From d6345f4973aee44c8257618ea88f59232c2e36bb Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:21:36 +0100 Subject: [PATCH 6/8] Change `segment_props` to `segment_properties` --- cloudvolume/datasource/precomputed/metadata.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cloudvolume/datasource/precomputed/metadata.py b/cloudvolume/datasource/precomputed/metadata.py index db709e11..95b8b757 100644 --- a/cloudvolume/datasource/precomputed/metadata.py +++ b/cloudvolume/datasource/precomputed/metadata.py @@ -79,7 +79,7 @@ def check_for_placeholder_scale(self, mip:int): def create_info(cls, num_channels, layer_type, data_type, encoding, resolution, voxel_offset, volume_size, - mesh=None, skeletons=None, segment_props=None, + mesh=None, skeletons=None, segment_properties=None, chunk_size=(128,128,64), compressed_segmentation_block_size=(8,8,8), max_mip=0, factor=Vec(2,2,1), redirect=None @@ -99,7 +99,7 @@ def create_info(cls, Optional: mesh: (str) name of mesh directory, typically "mesh" skeletons: (str) name of skeletons directory, typically "skeletons" - segment_props: (str) name of segment properties directory, typically "segment_properties" + segment_properties: (str) name of segment properties directory, typically "segment_properties" chunk_size: int (x,y,z), dimensions of each downloadable 3D image chunk in voxels compressed_segmentation_block_size: (x,y,z) dimensions of each compressed sub-block (only used when encoding is 'compressed_segmentation') @@ -153,8 +153,8 @@ def create_info(cls, if skeletons: info['skeletons'] = 'skeletons' if not isinstance(skeletons, string_types) else skeletons - if segment_props: - info['segment_properties'] = 'segment_properties' if not isinstance(skeletons, string_types) else segment_props + if segment_properties: + info['segment_properties'] = 'segment_properties' if not isinstance(skeletons, string_types) else segment_properties return info From 07a36d2b7545839ce1c9ff999d06c42241e1d095 Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Tue, 24 Sep 2024 10:14:07 +0100 Subject: [PATCH 7/8] fix: change variable name in `if` statement --- cloudvolume/datasource/precomputed/metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudvolume/datasource/precomputed/metadata.py b/cloudvolume/datasource/precomputed/metadata.py index 95b8b757..92b1e54d 100644 --- a/cloudvolume/datasource/precomputed/metadata.py +++ b/cloudvolume/datasource/precomputed/metadata.py @@ -154,7 +154,7 @@ def create_info(cls, info['skeletons'] = 'skeletons' if not isinstance(skeletons, string_types) else skeletons if segment_properties: - info['segment_properties'] = 'segment_properties' if not isinstance(skeletons, string_types) else segment_properties + info['segment_properties'] = 'segment_properties' if not isinstance(segment_properties, string_types) else segment_properties return info From 8ba9bc299008c2d9040576a64d3eef608df9fa8f Mon Sep 17 00:00:00 2001 From: Matthieu Chourrout <83714683+chourroutm@users.noreply.github.com> Date: Tue, 24 Sep 2024 10:16:21 +0100 Subject: [PATCH 8/8] Update cloudvolume.py --- cloudvolume/cloudvolume.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudvolume/cloudvolume.py b/cloudvolume/cloudvolume.py index 6054a08b..92b1a457 100644 --- a/cloudvolume/cloudvolume.py +++ b/cloudvolume/cloudvolume.py @@ -208,7 +208,7 @@ def __new__(cls, secrets: (dict) provide per-instance authorization tokens. If not provided, defaults to looking in .cloudvolume/secrets for necessary tokens. segment_prop_dir: (str) if not None, override the info['segment_properties'] - key before pulling the skeleton info file. + key before pulling the segment properties info file. skel_dir: (str) if not None, override the info['skeletons'] key before pulling the skeleton info file. spatial_index_db: (str) A path to an sqlite3 or mysql database that follows