Source code for audiomate.corpus.validation.track

from . import base

import audioread


[docs]class TrackReadValidator(base.Validator): """ Check if the track can be opened and read. """
[docs] def name(self): return 'Track-Read'
[docs] def validate(self, corpus): """ Perform the validation on the given corpus. Args: corpus (Corpus): The corpus to test/validate. Returns: InvalidItemsResult: Validation result. """ invalid_tracks = {} for track in corpus.tracks.values(): try: track.duration except EOFError: invalid_tracks[track.idx] = 'EOFError' except audioread.NoBackendError: invalid_tracks[track.idx] = 'NoBackendError' passed = len(invalid_tracks) <= 0 return base.InvalidItemsResult( passed, invalid_tracks, item_name='Tracks', name=self.name() )