Skip to content

Commit f01c8b6

Browse files
committed
Propagate logic to sorting and better name hanfling
1 parent d2028fd commit f01c8b6

2 files changed

Lines changed: 22 additions & 9 deletions

File tree

src/spikeinterface/core/baserecording.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def list_to_string(lst, max_size=6):
8989

9090
return txt
9191

92-
def _repr_header(self, display_name=True):
92+
def _repr_header(self, parent_name=None):
9393
num_segments = self.get_num_segments()
9494
num_channels = self.get_num_channels()
9595
dtype = self.get_dtype()
@@ -105,7 +105,7 @@ def _repr_header(self, display_name=True):
105105
# Khz for high sampling rate and Hz for LFP
106106
sampling_frequency_repr = f"{(sf_hz/1000.0):0.1f}kHz" if sf_hz > 10_000.0 else f"{sf_hz:0.1f}Hz"
107107

108-
if display_name:
108+
if parent_name is None or parent_name != self.name:
109109
name = f"{self.name} ({self.__class__.__name__})"
110110
else:
111111
name = self.__class__.__name__
@@ -123,11 +123,11 @@ def _repr_header(self, display_name=True):
123123

124124
return txt
125125

126-
def _repr_html_(self, display_name=True):
126+
def _repr_html_(self, parent_name=None):
127127
common_style = "margin-left: 10px;"
128128
border_style = "border:1px solid #ddd; padding:10px;"
129129

130-
html_header = f"<div style='{border_style}'><strong>{self._repr_header(display_name)}</strong></div>"
130+
html_header = f"<div style='{border_style}'><strong>{self._repr_header(parent_name)}</strong></div>"
131131

132132
html_segments = ""
133133
if self.get_num_segments() > 1:
@@ -161,7 +161,7 @@ def _repr_html_(self, display_name=True):
161161
html_properties += "</ul></details>"
162162
if self.get_parent():
163163
html_parent = f"<details style='{common_style}'> <summary><strong>Parent</strong></summary>"
164-
html_parent += self.get_parent()._repr_html_(display_name=False)
164+
html_parent += self.get_parent()._repr_html_(parent_name=self.name)
165165
else:
166166
html_parent = ""
167167

src/spikeinterface/core/basesorting.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,26 @@ def __init__(self, sampling_frequency: float, unit_ids: List):
3030
self._cached_spike_trains = {}
3131

3232
def __repr__(self):
33+
return self._repr_header()
34+
35+
def _repr_header(self, parent_name=None):
3336
nseg = self.get_num_segments()
3437
nunits = self.get_num_units()
3538
sf_khz = self.get_sampling_frequency() / 1000.0
36-
txt = f"{self.name}: {nunits} units - {nseg} segments - {sf_khz:0.1f}kHz"
39+
if parent_name is None or parent_name != self.name:
40+
name = f"{self.name} ({self.__class__.__name__})"
41+
else:
42+
name = self.__class__.__name__
43+
txt = f"{name}: {nunits} units - {nseg} segments - {sf_khz:0.1f}kHz"
3744
if "file_path" in self._kwargs:
3845
txt += "\n file_path: {}".format(self._kwargs["file_path"])
3946
return txt
4047

41-
def _repr_html_(self):
48+
def _repr_html_(self, parent_name=None):
4249
common_style = "margin-left: 10px;"
4350
border_style = "border:1px solid #ddd; padding:10px;"
4451

45-
html_header = f"<div style='{border_style}'><strong>{self.__repr__()}</strong></div>"
52+
html_header = f"<div style='{border_style}'><strong>{self._repr_header(parent_name)}</strong></div>"
4653

4754
html_unit_ids = f"<details style='{common_style}'> <summary><strong>Unit IDs</strong></summary><ul>"
4855
html_unit_ids += f"{self.unit_ids} </details>"
@@ -61,7 +68,13 @@ def _repr_html_(self):
6168
html_unit_properties += f"<details><summary><strong>{key}</strong></summary>{value_formatted}</details>"
6269
html_unit_properties += "</ul></details>"
6370

64-
html_repr = html_header + html_unit_ids + html_annotations + html_unit_properties
71+
if self.get_parent():
72+
html_parent = f"<details style='{common_style}'> <summary><strong>Parent</strong></summary>"
73+
html_parent += self.get_parent()._repr_html_(parent_name=self.name)
74+
else:
75+
html_parent = ""
76+
77+
html_repr = html_header + html_unit_ids + html_annotations + html_unit_properties + html_parent
6578
return html_repr
6679

6780
@property

0 commit comments

Comments
 (0)