Source code for transparentmeta.use_case.exceptions
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (c) 2025 Transparent Audio
# Author: Valerio Velardo - valerio@transparentaudio.ai
"""This module defines custom exceptions for the use case component."""
from pathlib import Path
from typing import Tuple, Union
from transparentmeta.use_case.constants import SUPPORTED_AUDIO_FORMATS
from transparentmeta.utils.file_utils import get_file_extension
[docs]
class UnsupportedAudioFormatError(Exception):
"""Raised when the audio file format is not supported."""
[docs]
def __init__(
self,
source: Union[str, Path],
supported_formats: Tuple[str, ...] = SUPPORTED_AUDIO_FORMATS,
) -> None:
self.supported_formats = supported_formats
if isinstance(source, Path):
self.filepath = source
self.audio_format = get_file_extension(source)
message = (
f"Unsupported audio format '{self.audio_format}' for file: {self.filepath}. "
f"Supported formats are: {', '.join(supported_formats)}."
)
else:
self.audio_format = source
message = (
f"Unsupported audio format '{self.audio_format}'. "
f"Supported formats are: {', '.join(supported_formats)}."
)
super().__init__(message)