Source code for mutwo.common_utilities.exceptions
from mutwo import core_events
__all__ = (
"InvalidMinimaCurveAndMaximaCurveCombination",
"UnequalEnvelopeDurationError",
"InvalidStartAtValueError",
"NoSolutionFoundError",
)
[docs]class InvalidMinimaCurveAndMaximaCurveCombination(Exception):
"""Raise for invalid envelope combinations in :class:`mutwo.common_generators.Tendency`."""
[docs]class UnequalEnvelopeDurationError(InvalidMinimaCurveAndMaximaCurveCombination):
def __init__(
self, minima_curve: core_events.Envelope, maxima_curve: core_events.Envelope
):
super().__init__(
"Found unequal duration when comparing 'minima_curve' "
f"(with duration = '{minima_curve.duration}')"
f" and 'maxima_curve' (with duration = "
f"'{maxima_curve.duration}'). Make sure both curves "
"have equal duration."
)
[docs]class InvalidStartAtValueError(ValueError):
"""Raise for invalid error of 'start_at' in :class:`mutwo.common_generators.ActivityLevel`"""
def __init__(self, start_at: int):
super().__init__(
"The value for the parameter 'start_at' has to be"
f"assigned to either 0, 1 or 2 and not {start_at}, "
"because there are only three different tuples defined per level."
)
class InvalidActivityLevelError(ValueError):
"""Raise for invalid 'level' when calling :class:`mutwo.common_generators.ActivityLevel`"""
def __init__(self, level: int, allowed_range_tuple: tuple[int, ...]):
super().__init__(
f"The parameter 'level' is assigned to {level} "
f"but has to be in the range of {allowed_range_tuple}."
)
[docs]class NoSolutionFoundError(Exception):
"""Raise in case backtracking algorithm can't find any solution"""
def __init__(self):
super().__init__("No solution could be found.")
class InvalidSizeError(ValueError):
"""Raise for invalid 'size' parameter value in :func:`mutwo.common_generators.paradiddle`"""
def __init__(self, size: int):
super().__init__(
f"Invalid value '{size}' for argument 'size'. 'Size' has to "
"be divisible by 2 and has to be bigger than 2."
)