"""This module is responsible for constructing schemas for validation.""" import audio_schemas from constants import transcoding_types def get_audio_validation_schema(mime_type): """Return validation schema for provided codec and MIME type. Args: mime_type (str): audio file MIME type. Returns: trafaret.Dict: trafaret schema for validation of audio meta data. """ if mime_type in transcoding_types.WAV_MIME_TYPES: return audio_schemas.BASE_SCHEMA.append( audio_schemas.WAV_SCHEMA) return audio_schemas.BASE_SCHEMA def extract_errors(validation_error): """Extract errors and generate one error message. Args: validation_error (trafaret.DataError): Validation error. Returns: str: error descriptions separated by newline escape character. """ exception_description = validation_error.as_dict() errors = [] for key, value in exception_description.items(): error = '{key} {error}.'.format(key=key, error=value) errors.append(error) result_error = '\n'.join(errors) return result_error