Source code for openfisca_core.indexed_enums._errors

from __future__ import annotations

from . import types as t


[docs] class EnumEncodingError(TypeError): """Raised when an enum is encoded with an unsupported type.""" def __init__( self, enum_class: type[t.Enum], value: t.VarArray | t.ArrayLike[object] ) -> None: msg = ( f"Failed to encode \"{value}\" of type '{value[0].__class__.__name__}', " "as it is not supported. Please, try again with an array of " f"'{int.__name__}', '{str.__name__}', or '{enum_class.__name__}'." ) super().__init__(msg)
[docs] class EnumMemberNotFoundError(IndexError): """Raised when a member is not found in an enum.""" def __init__(self, enum_class: type[t.Enum]) -> None: index = [str(enum.index) for enum in enum_class] names = [enum.name for enum in enum_class] msg = ( f"Some members were not found in enum '{enum_class.__name__}'. " f"Possible values are: {', '.join(names[:-1])}, and {names[-1]!s}; " f"or their corresponding indices: {', '.join(index[:-1])}, and " f"{index[-1]}." ) super().__init__(msg)
__all__ = ["EnumEncodingError", "EnumMemberNotFoundError"]