def import_sorting(*, feed: kp.Feed, workspace_name: str, recording: se.RecordingExtractor, sorting: se.SortingExtractor, recording_id: str, sorting_label: str): sorting_id = 'S-' + random_id() x = { 'sortingId': sorting_id, 'sortingLabel': sorting_label, 'sortingPath': ka.store_object(sorting.object(), basename=f'{sorting_label}.json'), 'sortingObject': sorting.object(), 'recordingId': recording_id, 'recordingPath': ka.store_object(recording.object(), basename=f'{recording_id}.json'), 'recordingObject': recording.object(), 'description': f'Imported from Python: {sorting_label}' } sortings_subfeed = feed.get_subfeed( dict(workspaceName=workspace_name, key='sortings')) _import_le_sorting(sortings_subfeed, x) return x
def add_sorting(self, *, recording_id: str, label: str, sorting: se.SortingExtractor): sorting_id = 'S-' + _random_id() if recording_id not in self._recordings: raise Exception(f'Recording not found: {recording_id}') if sorting_id in self._sortings: raise Exception(f'Duplicate sorting ID: {sorting_id}') le_recording = self._recordings[recording_id] x = { 'sortingId': sorting_id, 'sortingLabel': label, 'sortingPath': kp.store_object(sorting.object(), basename=f'{label}.json'), 'sortingObject': sorting.object(), 'recordingId': recording_id, 'recordingPath': le_recording['recordingPath'], 'recordingObject': le_recording['recordingObject'], 'description': f'Imported from Python: {label}' } sortings_subfeed = self._feed.get_subfeed( dict(workspaceName=self._workspace_name, key='sortings')) _import_le_sorting(sortings_subfeed, x) self._sortings[sorting_id] = x return x