spikeinterface 0.104.0__tar.gz → 0.104.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. {spikeinterface-0.104.0/src/spikeinterface.egg-info → spikeinterface-0.104.2}/PKG-INFO +1 -1
  2. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/pyproject.toml +1 -1
  3. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/base.py +2 -8
  4. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/waveforms_extractor_backwards_compatibility.py +8 -4
  5. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/cbin_ibl.py +1 -8
  6. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/openephys.py +11 -2
  7. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/quality/quality_metrics.py +14 -0
  8. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/template/template_metrics.py +10 -5
  9. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/valid_unit_periods.py +3 -3
  10. {spikeinterface-0.104.0 → spikeinterface-0.104.2/src/spikeinterface.egg-info}/PKG-INFO +1 -1
  11. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/LICENSE +0 -0
  12. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/README.md +0 -0
  13. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/setup.cfg +0 -0
  14. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/__init__.py +0 -0
  15. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/__init__.py +0 -0
  16. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_base.py +0 -0
  17. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_clustering.py +0 -0
  18. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_matching.py +0 -0
  19. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_merging.py +0 -0
  20. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_motion_estimation.py +0 -0
  21. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_motion_interpolation.py +0 -0
  22. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_peak_detection.py +0 -0
  23. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_peak_localization.py +0 -0
  24. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_peak_selection.py +0 -0
  25. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_plot_tools.py +0 -0
  26. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_sorter.py +0 -0
  27. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_sorter_without_gt.py +0 -0
  28. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/benchmark_tools.py +0 -0
  29. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/benchmark/residual_analysis.py +0 -0
  30. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/__init__.py +0 -0
  31. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/basecomparison.py +0 -0
  32. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/collision.py +0 -0
  33. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/comparisontools.py +0 -0
  34. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/correlogram.py +0 -0
  35. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/groundtruthstudy.py +0 -0
  36. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/multicomparisons.py +0 -0
  37. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/comparison/paircomparisons.py +0 -0
  38. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/__init__.py +0 -0
  39. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/analyzer_extension_core.py +0 -0
  40. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/baseevent.py +0 -0
  41. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/baserecording.py +0 -0
  42. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/baserecordingsnippets.py +0 -0
  43. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/basesnippets.py +0 -0
  44. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/basesorting.py +0 -0
  45. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/binaryfolder.py +0 -0
  46. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/binaryrecordingextractor.py +0 -0
  47. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/channelsaggregationrecording.py +0 -0
  48. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/channelslice.py +0 -0
  49. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/core_tools.py +0 -0
  50. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/datasets.py +0 -0
  51. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/frameslicerecording.py +0 -0
  52. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/frameslicesorting.py +0 -0
  53. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/generate.py +0 -0
  54. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/globals.py +0 -0
  55. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/job_tools.py +0 -0
  56. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/loading.py +0 -0
  57. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/motion.py +0 -0
  58. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/node_pipeline.py +0 -0
  59. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/npyfoldersnippets.py +0 -0
  60. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/npysnippetsextractor.py +0 -0
  61. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/npzfolder.py +0 -0
  62. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/npzsortingextractor.py +0 -0
  63. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/numpyextractors.py +0 -0
  64. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/old_api_utils.py +0 -0
  65. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/operatorrecordings.py +0 -0
  66. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/recording_tools.py +0 -0
  67. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/segmentutils.py +0 -0
  68. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/snippets_tools.py +0 -0
  69. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/sorting_tools.py +0 -0
  70. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/sortinganalyzer.py +0 -0
  71. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/sortingfolder.py +0 -0
  72. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/sparsity.py +0 -0
  73. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/template.py +0 -0
  74. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/template_tools.py +0 -0
  75. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/testing.py +0 -0
  76. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/testing_tools.py +0 -0
  77. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/unitsaggregationsorting.py +0 -0
  78. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/unitsselectionsorting.py +0 -0
  79. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/waveform_tools.py +0 -0
  80. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/zarrextractors.py +0 -0
  81. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/core/zarrrecordingextractor.py +0 -0
  82. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/__init__.py +0 -0
  83. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/auto_merge.py +0 -0
  84. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/bombcell_curation.py +0 -0
  85. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/curation_format.py +0 -0
  86. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/curation_model.py +0 -0
  87. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/curation_tools.py +0 -0
  88. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/curationsorting.py +0 -0
  89. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/mergeunitssorting.py +0 -0
  90. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/model_based_curation.py +0 -0
  91. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/remove_duplicated_spikes.py +0 -0
  92. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/remove_excess_spikes.py +0 -0
  93. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/remove_redundant.py +0 -0
  94. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/sortingview_curation.py +0 -0
  95. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/splitunitsorting.py +0 -0
  96. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/threshold_metrics_curation.py +0 -0
  97. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/train_manual_curation.py +0 -0
  98. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/curation/unitrefine_curation.py +0 -0
  99. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/exporters/__init__.py +0 -0
  100. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/exporters/report.py +0 -0
  101. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/exporters/to_ibl.py +0 -0
  102. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/exporters/to_phy.py +0 -0
  103. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/exporters/to_pynapple.py +0 -0
  104. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/__init__.py +0 -0
  105. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/alfsortingextractor.py +0 -0
  106. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/bids.py +0 -0
  107. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/cellexplorersortingextractor.py +0 -0
  108. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/combinatoextractors.py +0 -0
  109. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/extractor_classes.py +0 -0
  110. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/hdsortextractors.py +0 -0
  111. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/herdingspikesextractors.py +0 -0
  112. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/iblextractors.py +0 -0
  113. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/klustaextractors.py +0 -0
  114. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/matlabhelpers.py +0 -0
  115. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/mclustextractors.py +0 -0
  116. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/mcsh5extractors.py +0 -0
  117. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/mdaextractors.py +0 -0
  118. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/__init__.py +0 -0
  119. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/alphaomega.py +0 -0
  120. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/axon.py +0 -0
  121. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/axona.py +0 -0
  122. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/biocam.py +0 -0
  123. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/blackrock.py +0 -0
  124. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/ced.py +0 -0
  125. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/edf.py +0 -0
  126. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/intan.py +0 -0
  127. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/maxwell.py +0 -0
  128. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/mcsraw.py +0 -0
  129. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/mearec.py +0 -0
  130. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/neo_utils.py +0 -0
  131. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/neobaseextractor.py +0 -0
  132. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/neuralynx.py +0 -0
  133. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/neuroexplorer.py +0 -0
  134. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/neuronexus.py +0 -0
  135. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/neuroscope.py +0 -0
  136. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/nix.py +0 -0
  137. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/plexon.py +0 -0
  138. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/plexon2.py +0 -0
  139. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/spike2.py +0 -0
  140. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/spikegadgets.py +0 -0
  141. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/spikeglx.py +0 -0
  142. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neoextractors/tdt.py +0 -0
  143. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/neuropixels_utils.py +0 -0
  144. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/nwbextractors.py +0 -0
  145. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/phykilosortextractors.py +0 -0
  146. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/shybridextractors.py +0 -0
  147. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/sinapsrecordingextractors.py +0 -0
  148. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/spykingcircusextractors.py +0 -0
  149. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/toy_example.py +0 -0
  150. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/tridesclousextractors.py +0 -0
  151. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/waveclussnippetstextractors.py +0 -0
  152. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/waveclustextractors.py +0 -0
  153. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/whitematterrecordingextractor.py +0 -0
  154. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/xclustextractors.py +0 -0
  155. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/extractors/yassextractors.py +0 -0
  156. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/full.py +0 -0
  157. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/__init__.py +0 -0
  158. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/drift_tools.py +0 -0
  159. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/drifting_generator.py +0 -0
  160. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/hybrid_tools.py +0 -0
  161. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/noise_tools.py +0 -0
  162. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/splitting_tools.py +0 -0
  163. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/generation/template_database.py +0 -0
  164. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/__init__.py +0 -0
  165. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/conftest.py +0 -0
  166. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/quality/__init__.py +0 -0
  167. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/quality/misc_metrics.py +0 -0
  168. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/quality/pca_metrics.py +0 -0
  169. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/spiketrain/__init__.py +0 -0
  170. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/spiketrain/metrics.py +0 -0
  171. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/spiketrain/spiketrain_metrics.py +0 -0
  172. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/template/__init__.py +0 -0
  173. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/template/metrics.py +0 -0
  174. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/metrics/utils.py +0 -0
  175. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/__init__.py +0 -0
  176. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/alignsorting.py +0 -0
  177. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/amplitude_scalings.py +0 -0
  178. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/correlograms.py +0 -0
  179. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/isi.py +0 -0
  180. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/localization_tools.py +0 -0
  181. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/noise_level.py +0 -0
  182. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/principal_component.py +0 -0
  183. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/spike_amplitudes.py +0 -0
  184. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/spike_locations.py +0 -0
  185. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/template_metrics.py +0 -0
  186. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/template_similarity.py +0 -0
  187. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/postprocessing/unit_locations.py +0 -0
  188. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/__init__.py +0 -0
  189. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/align_snippets.py +0 -0
  190. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/astype.py +0 -0
  191. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/average_across_direction.py +0 -0
  192. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/basepreprocessor.py +0 -0
  193. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/clip.py +0 -0
  194. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/common_reference.py +0 -0
  195. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/correct_lsb.py +0 -0
  196. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/decimate.py +0 -0
  197. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/deepinterpolation/__init__.py +0 -0
  198. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/deepinterpolation/deepinterpolation.py +0 -0
  199. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/deepinterpolation/generators.py +0 -0
  200. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/deepinterpolation/tf_utils.py +0 -0
  201. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/deepinterpolation/train.py +0 -0
  202. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/depth_order.py +0 -0
  203. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/detect_artifacts.py +0 -0
  204. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/detect_bad_channels.py +0 -0
  205. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/directional_derivative.py +0 -0
  206. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/filter.py +0 -0
  207. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/filter_gaussian.py +0 -0
  208. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/filter_opencl.py +0 -0
  209. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/highpass_spatial_filter.py +0 -0
  210. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/interpolate_bad_channels.py +0 -0
  211. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/motion.py +0 -0
  212. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/normalize_scale.py +0 -0
  213. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/phase_shift.py +0 -0
  214. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/pipeline.py +0 -0
  215. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/preprocessing_classes.py +0 -0
  216. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/preprocessing_tools.py +0 -0
  217. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/rectify.py +0 -0
  218. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/remove_artifacts.py +0 -0
  219. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/resample.py +0 -0
  220. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/scale.py +0 -0
  221. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/silence_periods.py +0 -0
  222. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/unsigned_to_signed.py +0 -0
  223. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/whiten.py +0 -0
  224. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/preprocessing/zero_channel_pad.py +0 -0
  225. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/qualitymetrics/__init__.py +0 -0
  226. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/__init__.py +0 -0
  227. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/basesorter.py +0 -0
  228. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/container_tools.py +0 -0
  229. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/__init__.py +0 -0
  230. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/combinato.py +0 -0
  231. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/hdsort.py +0 -0
  232. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/hdsort_master.m +0 -0
  233. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/herdingspikes.py +0 -0
  234. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/ironclust.py +0 -0
  235. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort.py +0 -0
  236. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort2.py +0 -0
  237. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort2_5.py +0 -0
  238. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort2_5_master.m +0 -0
  239. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort2_master.m +0 -0
  240. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort3.py +0 -0
  241. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort3_master.m +0 -0
  242. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort4.py +0 -0
  243. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosort_master.m +0 -0
  244. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/kilosortbase.py +0 -0
  245. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/klusta.py +0 -0
  246. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/klusta_config_default.prm +0 -0
  247. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/mountainsort4.py +0 -0
  248. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/mountainsort5.py +0 -0
  249. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/pykilosort.py +0 -0
  250. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/rt_sort.py +0 -0
  251. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/sc_config_default.params +0 -0
  252. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/spyking_circus.py +0 -0
  253. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/tridesclous.py +0 -0
  254. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/waveclus.py +0 -0
  255. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/waveclus_master.m +0 -0
  256. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/waveclus_snippets.py +0 -0
  257. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/waveclus_snippets_master.m +0 -0
  258. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/yass.py +0 -0
  259. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/external/yass_config_default.yaml +0 -0
  260. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/internal/__init__.py +0 -0
  261. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/internal/lupin.py +0 -0
  262. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/internal/si_based.py +0 -0
  263. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/internal/simplesorter.py +0 -0
  264. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/internal/spyking_circus2.py +0 -0
  265. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/internal/tridesclous2.py +0 -0
  266. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/launcher.py +0 -0
  267. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/runsorter.py +0 -0
  268. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/sorterlist.py +0 -0
  269. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/utils/__init__.py +0 -0
  270. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/utils/constructNPYheader.m +0 -0
  271. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/utils/misc.py +0 -0
  272. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/utils/shellscript.py +0 -0
  273. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sorters/utils/writeNPY.m +0 -0
  274. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/__init__.py +0 -0
  275. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/__init__.py +0 -0
  276. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/cleaning_tools.py +0 -0
  277. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/dummy.py +0 -0
  278. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/graph_clustering.py +0 -0
  279. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/graph_tools.py +0 -0
  280. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/isosplit_isocut.py +0 -0
  281. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/iterative_hdbscan.py +0 -0
  282. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/iterative_isosplit.py +0 -0
  283. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/itersplit_tools.py +0 -0
  284. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/main.py +0 -0
  285. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/merging_tools.py +0 -0
  286. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/method_list.py +0 -0
  287. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/positions.py +0 -0
  288. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/random_projections.py +0 -0
  289. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/clustering/tools.py +0 -0
  290. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/__init__.py +0 -0
  291. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/base.py +0 -0
  292. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/circus.py +0 -0
  293. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/main.py +0 -0
  294. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/method_list.py +0 -0
  295. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/nearest.py +0 -0
  296. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/tdc_peeler.py +0 -0
  297. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/matching/wobble.py +0 -0
  298. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/__init__.py +0 -0
  299. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/decentralized.py +0 -0
  300. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/dredge.py +0 -0
  301. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/iterative_template.py +0 -0
  302. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/medicine.py +0 -0
  303. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/motion_cleaner.py +0 -0
  304. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/motion_estimation.py +0 -0
  305. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/motion_interpolation.py +0 -0
  306. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/motion/motion_utils.py +0 -0
  307. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/__init__.py +0 -0
  308. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/by_channel.py +0 -0
  309. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/iterative.py +0 -0
  310. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/locally_exclusive.py +0 -0
  311. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/main.py +0 -0
  312. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/matched_filtering.py +0 -0
  313. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_detection/method_list.py +0 -0
  314. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/__init__.py +0 -0
  315. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/base.py +0 -0
  316. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/center_of_mass.py +0 -0
  317. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/grid.py +0 -0
  318. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/main.py +0 -0
  319. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/method_list.py +0 -0
  320. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_localization/monopolar.py +0 -0
  321. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/peak_selection.py +0 -0
  322. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/tools.py +0 -0
  323. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/__init__.py +0 -0
  324. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/features_from_peaks.py +0 -0
  325. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/hanning_filter.py +0 -0
  326. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/neural_network_denoiser.py +0 -0
  327. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/peak_svd.py +0 -0
  328. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/savgol_denoiser.py +0 -0
  329. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/temporal_pca.py +0 -0
  330. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/waveform_thresholder.py +0 -0
  331. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/sortingcomponents/waveforms/waveform_utils.py +0 -0
  332. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/__init__.py +0 -0
  333. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/all_amplitudes_distributions.py +0 -0
  334. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/amplitudes.py +0 -0
  335. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/autocorrelograms.py +0 -0
  336. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/base.py +0 -0
  337. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/bombcell_curation.py +0 -0
  338. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/collision.py +0 -0
  339. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/comparison.py +0 -0
  340. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/crosscorrelograms.py +0 -0
  341. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/drift_templates.py +0 -0
  342. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/gtstudy.py +0 -0
  343. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/isi_distribution.py +0 -0
  344. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/metrics.py +0 -0
  345. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/motion.py +0 -0
  346. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/multicomparison.py +0 -0
  347. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/peak_activity.py +0 -0
  348. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/peaks_on_probe.py +0 -0
  349. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/potential_merges.py +0 -0
  350. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/probe_map.py +0 -0
  351. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/quality_metrics.py +0 -0
  352. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/rasters.py +0 -0
  353. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/sorting_summary.py +0 -0
  354. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/spike_locations.py +0 -0
  355. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/spike_locations_by_time.py +0 -0
  356. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/spikes_on_traces.py +0 -0
  357. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/template_metrics.py +0 -0
  358. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/template_similarity.py +0 -0
  359. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/traces.py +0 -0
  360. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_depths.py +0 -0
  361. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_labels.py +0 -0
  362. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_locations.py +0 -0
  363. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_presence.py +0 -0
  364. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_probe_map.py +0 -0
  365. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_summary.py +0 -0
  366. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_templates.py +0 -0
  367. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_valid_periods.py +0 -0
  368. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_waveforms.py +0 -0
  369. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/unit_waveforms_density_map.py +0 -0
  370. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/utils.py +0 -0
  371. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/utils_figpack.py +0 -0
  372. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/utils_ipywidgets.py +0 -0
  373. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/utils_matplotlib.py +0 -0
  374. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface/widgets/widget_list.py +0 -0
  375. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface.egg-info/SOURCES.txt +0 -0
  376. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface.egg-info/dependency_links.txt +0 -0
  377. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface.egg-info/requires.txt +0 -0
  378. {spikeinterface-0.104.0 → spikeinterface-0.104.2}/src/spikeinterface.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spikeinterface
3
- Version: 0.104.0
3
+ Version: 0.104.2
4
4
  Summary: Python toolkit for analysis, visualization, and comparison of spike sorting output
5
5
  Author-email: Alessio Buccino <alessiop.buccino@gmail.com>, Samuel Garcia <sam.garcia.die@gmail.com>
6
6
  Project-URL: homepage, https://github.com/SpikeInterface/spikeinterface
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "spikeinterface"
3
- version = "0.104.0"
3
+ version = "0.104.2"
4
4
  authors = [
5
5
  { name="Alessio Buccino", email="alessiop.buccino@gmail.com" },
6
6
  { name="Samuel Garcia", email="sam.garcia.die@gmail.com" },
@@ -1138,14 +1138,8 @@ def _load_extractor_from_dict(dic) -> BaseExtractor:
1138
1138
 
1139
1139
  assert extractor_class is not None and class_name is not None, "Could not load spikeinterface class"
1140
1140
  is_old_version = not _check_same_version(class_name, dic["version"])
1141
- if is_old_version:
1142
- warnings.warn(
1143
- f"Versions are not the same. This might lead to compatibility errors. "
1144
- f"Using {class_name.split('.')[0]}=={dic['version']} is recommended"
1145
- )
1146
-
1147
- if hasattr(extractor_class, "_handle_backward_compatibility"):
1148
- new_kwargs = extractor_class._handle_backward_compatibility(new_kwargs, dic)
1141
+ if is_old_version and hasattr(extractor_class, "_handle_backward_compatibility"):
1142
+ new_kwargs = extractor_class._handle_backward_compatibility(new_kwargs, dic)
1149
1143
 
1150
1144
  # Initialize the extractor
1151
1145
  extractor = extractor_class(**new_kwargs)
@@ -628,12 +628,16 @@ def _read_old_waveforms_extractor_binary(folder, sorting):
628
628
  pc_all[mask, ...] = pc_one
629
629
  ext.data["pca_projection"] = pc_all
630
630
 
631
- # update params
632
- new_params = ext._set_params()
633
- updated_params = make_ext_params_up_to_date(ext, params, new_params)
634
- ext.set_params(**updated_params, save=False)
631
+ # Install raw on-disk params and run compat handler first,
632
+ # matching what AnalyzerExtension.load does for non-legacy folders.
633
+ ext.params = dict(params)
635
634
  if ext.need_backward_compatibility_on_load:
636
635
  ext._handle_backward_compatibility_on_load()
636
+
637
+ # Now merge and validate — deprecated names are already migrated.
638
+ new_params = ext._set_params()
639
+ updated_params = make_ext_params_up_to_date(ext, ext.params, new_params)
640
+ ext.set_params(**updated_params, save=False)
637
641
  ext.run_info = None
638
642
 
639
643
  sorting_analyzer.extensions[new_name] = ext
@@ -106,14 +106,7 @@ class CompressedBinaryIblExtractor(BaseRecording):
106
106
  else:
107
107
  self.set_probe(probe, in_place=True)
108
108
 
109
- # load num_channels_per_adc depending on probe type
110
- ptype = probe.annotations["probe_type"]
111
-
112
- if ptype in [21, 24]: # NP2.0
113
- num_channels_per_adc = 16
114
- else: # NP1.0
115
- num_channels_per_adc = 12
116
- sample_shifts = get_neuropixels_sample_shifts_from_probe(probe, num_channels_per_adc)
109
+ sample_shifts = get_neuropixels_sample_shifts_from_probe(probe)
117
110
  self.set_property("inter_sample_shift", sample_shifts)
118
111
 
119
112
  self._kwargs = {
@@ -229,6 +229,8 @@ class OpenEphysBinaryRecordingExtractor(NeoBaseRecordingExtractor):
229
229
  experiment_names: str | list | None = None,
230
230
  all_annotations: bool = False,
231
231
  ):
232
+ folder_path = Path(folder_path)
233
+
232
234
  # Handle experiment_names deprecation
233
235
  if experiment_names is not None:
234
236
  warnings.warn(
@@ -348,8 +350,15 @@ class OpenEphysBinaryRecordingExtractor(NeoBaseRecordingExtractor):
348
350
  if sample_shifts is not None:
349
351
  self.set_property("inter_sample_shift", sample_shifts)
350
352
 
351
- # load synchronized timestamps and set_times to recording
352
- recording_folder = Path(folder_path) / record_node
353
+ # folder_path can point to different levels of the OE folder structure
354
+ # (root, record node, experiment, or recording). We need to find the root folder
355
+ # in order to load the sync timestamps and set them as times to the recording.
356
+ if record_node in folder_path.parts:
357
+ root_index = len(folder_path.parts) - folder_path.parts.index(record_node) - 1
358
+ root_folder = folder_path.parents[root_index]
359
+ else:
360
+ root_folder = folder_path
361
+ recording_folder = root_folder / record_node
353
362
  stream_folders = []
354
363
  for segment_index, rec_id in enumerate(rec_ids):
355
364
  stream_folder = (
@@ -77,6 +77,20 @@ class ComputeQualityMetrics(BaseMetricExtension):
77
77
  if "peak_sign" in self.params["metric_params"]["amplitude_median"]:
78
78
  del self.params["metric_params"]["amplitude_median"]["peak_sign"]
79
79
 
80
+ # TODO: update this once `main_channel_index` PR is merged
81
+ # global peak_sign used to find appropriate channels for pca metric computation
82
+ # If not found, use a "peak_sign" set by any metric
83
+ global_peak_sign_from_params = self.params.get("peak_sign")
84
+ if global_peak_sign_from_params is None:
85
+ for metric_params in self.params["metric_params"].values():
86
+ if "peak_sign" in metric_params:
87
+ global_peak_sign_from_params = metric_params["peak_sign"]
88
+ break
89
+ # If still not found, use <0.104.0 default, "neg"
90
+ if global_peak_sign_from_params is None:
91
+ global_peak_sign_from_params = "neg"
92
+ self.params["peak_sign"] = global_peak_sign_from_params
93
+
80
94
  def _set_params(
81
95
  self,
82
96
  metric_names: list[str] | None = None,
@@ -169,6 +169,11 @@ class ComputeTemplateMetrics(BaseMetricExtension):
169
169
  if "waveform_ratios" not in self.params["metric_names"]:
170
170
  self.params["metric_names"].append("waveform_ratios")
171
171
 
172
+ # If original analyzer doesn't have "peaks_data" or "main_channel_templates",
173
+ # then we can't save this tmp data (important for merges/splits)
174
+ if "peaks_data" not in self.data:
175
+ self.tmp_data_to_save = []
176
+
172
177
  def _set_params(
173
178
  self,
174
179
  metric_names: list[str] | None = None,
@@ -234,12 +239,12 @@ class ComputeTemplateMetrics(BaseMetricExtension):
234
239
  unit_ids = sorting_analyzer.unit_ids
235
240
  peak_sign = self.params["peak_sign"]
236
241
  upsampling_factor = self.params["upsampling_factor"]
237
- min_thresh_detect_peaks_troughs = self.params["min_thresh_detect_peaks_troughs"]
238
- edge_exclusion_ms = self.params.get("edge_exclusion_ms", 0.1)
242
+ min_thresh_detect_peaks_troughs = self.params.get("min_thresh_detect_peaks_troughs", 0.3)
243
+ edge_exclusion_ms = self.params.get("edge_exclusion_ms", 0.09)
239
244
  min_peak_trough_distance_ratio = self.params.get("min_peak_trough_distance_ratio", 0.2)
240
245
  min_extremum_distance_samples = self.params.get("min_extremum_distance_samples", 3)
241
246
  sampling_frequency = sorting_analyzer.sampling_frequency
242
- if self.params["upsampling_factor"] > 1:
247
+ if upsampling_factor > 1:
243
248
  sampling_frequency_up = upsampling_factor * sampling_frequency
244
249
  else:
245
250
  sampling_frequency_up = sampling_frequency
@@ -249,7 +254,7 @@ class ComputeTemplateMetrics(BaseMetricExtension):
249
254
  m in get_multi_channel_template_metric_names() for m in self.params["metrics_to_compute"]
250
255
  )
251
256
 
252
- operator = self.params["template_operator"]
257
+ operator = self.params.get("template_operator", "average")
253
258
  extremum_channel_indices = get_template_extremum_channel(
254
259
  sorting_analyzer, peak_sign=peak_sign, outputs="index", operator=operator
255
260
  )
@@ -312,7 +317,7 @@ class ComputeTemplateMetrics(BaseMetricExtension):
312
317
  # multi_channel_templates is a list of 2D arrays of shape (n_times, n_channels)
313
318
  tmp_data["multi_channel_templates"] = multi_channel_templates
314
319
  tmp_data["channel_locations_multi"] = channel_locations_multi
315
- tmp_data["depth_direction"] = self.params["depth_direction"]
320
+ tmp_data["depth_direction"] = self.params.get("depth_direction", "y")
316
321
 
317
322
  # Add peaks_info and preprocessed templates to self.data for storage in extension
318
323
  columns = []
@@ -548,12 +548,12 @@ class ComputeValidUnitPeriods(AnalyzerExtension):
548
548
  for segment_index in range(self.sorting_analyzer.get_num_segments()):
549
549
  segment_mask = good_periods_array["segment_index"] == segment_index
550
550
  periods_dict = {}
551
- for unit_index in unit_ids:
552
- periods_dict[unit_index] = []
551
+ for unit_index, unit_id in enumerate(unit_ids):
552
+ periods_dict[unit_id] = []
553
553
  unit_mask = good_periods_array["unit_index"] == unit_index
554
554
  good_periods_unit_segment = good_periods_array[segment_mask & unit_mask]
555
555
  for start, end in good_periods_unit_segment[["start_sample_index", "end_sample_index"]]:
556
- periods_dict[unit_index].append((start, end))
556
+ periods_dict[unit_id].append((start, end))
557
557
  good_periods.append(periods_dict)
558
558
 
559
559
  return good_periods
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spikeinterface
3
- Version: 0.104.0
3
+ Version: 0.104.2
4
4
  Summary: Python toolkit for analysis, visualization, and comparison of spike sorting output
5
5
  Author-email: Alessio Buccino <alessiop.buccino@gmail.com>, Samuel Garcia <sam.garcia.die@gmail.com>
6
6
  Project-URL: homepage, https://github.com/SpikeInterface/spikeinterface