From 2d7406776a542ecb4e8352a684d943879e26c0a6 Mon Sep 17 00:00:00 2001 From: Samuel Garcia Date: Fri, 25 Jul 2025 10:37:44 +0200 Subject: [PATCH 1/3] Fix set_properties_after_merging when property is boolean. This was introducing bugs in auto_merge --- src/spikeinterface/core/sorting_tools.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/spikeinterface/core/sorting_tools.py b/src/spikeinterface/core/sorting_tools.py index c74c76d010..a4151fe2f5 100644 --- a/src/spikeinterface/core/sorting_tools.py +++ b/src/spikeinterface/core/sorting_tools.py @@ -361,8 +361,14 @@ def set_properties_after_merging( keep_pre_inds = sorting_pre_merge.ids_to_indices(kept_unit_ids) keep_post_inds = sorting_post_merge.ids_to_indices(kept_unit_ids) + default_missing_values = BaseExtractor.default_missing_property_values + for key in prop_keys: parent_values = sorting_pre_merge.get_property(key) + if parent_values.dtype.kind not in default_missing_values: + # if the property is boolean or integer there is no missing values so we skip + # for instance reccussive "is_merged" will not be propagated + continue # propagate keep values shape = (len(sorting_post_merge.unit_ids),) + parent_values.shape[1:] @@ -377,7 +383,7 @@ def set_properties_after_merging( # and new values only if they are all similar new_values[new_index] = merge_values[0] else: - default_missing_values = BaseExtractor.default_missing_property_values + new_values[new_index] = default_missing_values[parent_values.dtype.kind] sorting_post_merge.set_property(key, new_values) From 2e4cde18288a4bae69fd782c35a452099344ee51 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 25 Jul 2025 08:39:52 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/spikeinterface/core/sorting_tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spikeinterface/core/sorting_tools.py b/src/spikeinterface/core/sorting_tools.py index a4151fe2f5..2d4525e85d 100644 --- a/src/spikeinterface/core/sorting_tools.py +++ b/src/spikeinterface/core/sorting_tools.py @@ -383,7 +383,7 @@ def set_properties_after_merging( # and new values only if they are all similar new_values[new_index] = merge_values[0] else: - + new_values[new_index] = default_missing_values[parent_values.dtype.kind] sorting_post_merge.set_property(key, new_values) From 202c0681d7b40421706be88cc1fdff18c36dc8b6 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Mon, 28 Jul 2025 10:02:53 +0200 Subject: [PATCH 3/3] Update src/spikeinterface/core/sorting_tools.py --- src/spikeinterface/core/sorting_tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spikeinterface/core/sorting_tools.py b/src/spikeinterface/core/sorting_tools.py index 2d4525e85d..8d0037ef1d 100644 --- a/src/spikeinterface/core/sorting_tools.py +++ b/src/spikeinterface/core/sorting_tools.py @@ -367,7 +367,7 @@ def set_properties_after_merging( parent_values = sorting_pre_merge.get_property(key) if parent_values.dtype.kind not in default_missing_values: # if the property is boolean or integer there is no missing values so we skip - # for instance reccussive "is_merged" will not be propagated + # for instance recursive "is_merged" will not be propagated continue # propagate keep values