Repository navigation
Expand file tree
/
Copy pathviewlist.py
More file actions
67 lines (61 loc) · 2.58 KB
/
Copy pathviewlist.py
File metadata and controls
67 lines (61 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import importlib.metadata
from .unitlistview import UnitListView
from .spikelistview import SpikeListView
from .mergeview import MergeView
from .traceview import TraceView
from .waveformview import WaveformView
from .waveformheatmapview import WaveformHeatMapView
from .isiview import ISIView
from .correlogramview import CorrelogramView
from .probeview import ProbeView
from .ndscatterview import NDScatterView
from .similarityview import SimilarityView
from .spikeamplitudeview import SpikeAmplitudeView
from .spikedepthview import SpikeDepthView
from .amplitudescalingsview import AmplitudeScalingsView
from .tracemapview import TraceMapView
from .curationview import CurationView
from .mainsettingsview import MainSettingsView
from .metricsview import MetricsView
from .spikerateview import SpikeRateView
from .maintemplateview import MainTemplateView
from .eventview import EventView
from .compareunitlistview import CompareUnitListView
from .agreementmatrixview import AgreementMatrixView
from .comparemainsettingsview import CompareMainSettingsView
from .compareunitvennview import CompareUnitVennView
from .comparespikesview import CompareSpikesView
from .comparelabelsview import CompareLabelsView
from .comparemetricsview import CompareMetricsView
# probe and mainsettings view are first, since they affect other views (e.g., time info)
builtin_views = [
ProbeView, MainSettingsView, UnitListView, SpikeRateView, MergeView,
TraceView, TraceMapView, WaveformView, WaveformHeatMapView, ISIView,
CorrelogramView, NDScatterView, SimilarityView, SpikeAmplitudeView,
SpikeDepthView, SpikeRateView, CurationView, MetricsView, SpikeListView,
AmplitudeScalingsView, MainTemplateView, EventView,
CompareMainSettingsView, CompareUnitListView, AgreementMatrixView, CompareUnitVennView, CompareSpikesView,
CompareLabelsView, CompareMetricsView,
]
def get_all_possible_views():
"""
Get all possible view classes, including built-in and plugin views.
Returns
-------
dict
A dictionary mapping view IDs to view classes.
"""
# id is a unique identifier
possible_class_views = {}
for view in builtin_views:
possible_class_views[view.id] = view
# Load plugin views
eps = importlib.metadata.entry_points(group="spikeinterface_gui.views")
for ep in eps:
try:
view_class = ep.load()
possible_class_views[ep.name] = view_class
except Exception as e:
# Log but don't crash if a plugin fails to load
print(f"Warning: Failed to load plugin view '{ep.name}': {e}")
return possible_class_views