Auto-generate contact_ids when not explicitly set#429
Open
h-mayorquin wants to merge 1 commit intoSpikeInterface:mainfrom
Open
Auto-generate contact_ids when not explicitly set#429h-mayorquin wants to merge 1 commit intoSpikeInterface:mainfrom
contact_ids when not explicitly set#429h-mayorquin wants to merge 1 commit intoSpikeInterface:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #423. A
Probenow always carriescontact_ids: when the user does not pass them intoset_contacts, they are auto-generated as["0", "1", ..., str(n - 1)], matching the zero-indexed convention and giving every contact a stable, slicing- and aggregation-invariant handle without requiring every reader or caller to generate ids themselves. This removes a class of friction where downstream code (serialization round-trips,ProbeGroupaggregation in PR #420,ChannelsAggregationRecordingin SpikeInterface #4465) had to special-caseNoneat the consumer side.set_contact_idsalso accepts the legacy all-empty-strings form (produced by older serialized probes viato_numpy) and regenerates in the same way, so old data still loads cleanly. Becausecontact_idsis now an internal invariant afterset_contacts, I deleted the unreachableNoneguard in the BIDS export path inio.py(which also referenced the now-irrelevantauto_generate_contact_idsworkflow) and theNonebranch inProbe.to_numpy. I kept the change narrow:Probe.__init__still leaves_contact_ids = Noneso an unpopulated probe is still recognizable, and I did not touch the manufacturer-label split (python-neo'scontact_namevscontact_id); that can come later if we decide we want to preserve manufacturer labels separately from the always-set identifier.