"""This module is responsible for transcoding job validation.""" import json from trafaret import DataError from src import trafaret_schema class InvalidAudioError(Exception): """Exception for invalid audio asset.""" def __init__(self, *, errors, metadata): """Initialize InvalidAudioError.""" super().__init__(json.dumps({ 'errors': errors, 'metadata': metadata, })) def validate_audio_metadata(audio_metadata): """Validate audio asset metadata. Args: audio_metadata (dict): Audio metadata specification. Returns: dict: validated audio metadata. """ try: return trafaret_schema.get_schema().check(audio_metadata) except DataError as trafaret_dataerror: raise InvalidAudioError( errors=trafaret_dataerror.as_dict(), metadata=audio_metadata, )