MCPcopy
hub / github.com/babysor/MockingBird / populate_browser

Method populate_browser

toolbox/ui.py:266–311  ·  view source on GitHub ↗
(self, datasets_root: Path, recognized_datasets: List, level: int,
                         random=True)

Source from the content-addressed store, hash-verified

264 box.blockSignals(False)
265
266 def populate_browser(self, datasets_root: Path, recognized_datasets: List, level: int,
267 random=True):
268 # Select a random dataset
269 if level <= 0:
270 if datasets_root is not None:
271 datasets = [datasets_root.joinpath(d) for d in recognized_datasets]
272 datasets = [d.relative_to(datasets_root) for d in datasets if d.exists()]
273 self.browser_load_button.setDisabled(len(datasets) == 0)
274 if datasets_root is None or len(datasets) == 0:
275 msg = "Warning: you d" + ("id not pass a root directory for datasets as argument" \
276 if datasets_root is None else "o not have any of the recognized datasets" \
277 " in %s" % datasets_root)
278 self.log(msg)
279 msg += ".\nThe recognized datasets are:\n\t%s\nFeel free to add your own. You " \
280 "can still use the toolbox by recording samples yourself." % \
281 ("\n\t".join(recognized_datasets))
282 print(msg, file=sys.stderr)
283
284 self.random_utterance_button.setDisabled(True)
285 self.random_speaker_button.setDisabled(True)
286 self.random_dataset_button.setDisabled(True)
287 self.utterance_box.setDisabled(True)
288 self.speaker_box.setDisabled(True)
289 self.dataset_box.setDisabled(True)
290 self.browser_load_button.setDisabled(True)
291 self.auto_next_checkbox.setDisabled(True)
292 return
293 self.repopulate_box(self.dataset_box, datasets, random)
294
295 # Select a random speaker
296 if level <= 1:
297 speakers_root = datasets_root.joinpath(self.current_dataset_name)
298 speaker_names = [d.stem for d in speakers_root.glob("*") if d.is_dir()]
299 self.repopulate_box(self.speaker_box, speaker_names, random)
300
301 # Select a random utterance
302 if level <= 2:
303 utterances_root = datasets_root.joinpath(
304 self.current_dataset_name,
305 self.current_speaker_name
306 )
307 utterances = []
308 for extension in ['mp3', 'flac', 'wav', 'm4a']:
309 utterances.extend(Path(utterances_root).glob("**/*.%s" % extension))
310 utterances = [fpath.relative_to(utterances_root) for fpath in utterances]
311 self.repopulate_box(self.utterance_box, utterances, random)
312
313 def browser_select_next(self):
314 index = (self.utterance_box.currentIndex() + 1) % len(self.utterance_box)

Callers 2

setup_eventsMethod · 0.80
reset_uiMethod · 0.80

Calls 2

logMethod · 0.95
repopulate_boxMethod · 0.95

Tested by

no test coverage detected