Ë
    Ìiª  ã                   óf   — d dl mZ d dlmZmZmZmZmZ dedefd„Z edd¬«      Z	 G d	„ de«      Z
y
)é    )ÚEnum)ÚAnyÚListÚNoReturnÚTypeÚTypeVarÚvalueÚreturnc                 ó   — J d| › �«       ‚)a  Helper method to allow MyPy to guarantee an exhaustive switch through an enumeration or literal.

    DO NOT MODIFY THE TYPE SIGNATURE OF THIS FUNCTION UNLESS MYPY CHANGES HOW IT HANDLES THINGS

    To use this function correctly you MUST do an exhaustive switch through ALL values, using `is` for comparison
    (doing x == SomeEnum.VALUE will not work, nor will `x in (SomeEnum.VALUE_1, SomeEnum.VALUE_2)`).

    If mypy raises an error of the form:
      `x has incompatible type SomeEnum; expected NoReturn`
    the switch is not constructed correctly. Fix your switch statement to use `is` for all comparisons.

    If mypy raises an error of the form
      `x has incompatible type Union[Literal...]` expected NoReturn`
    the switch statement is non-exhaustive, and the values listed in the error message need to be accounted for.

    See https://mypy.readthedocs.io/en/stable/literal_types.html#exhaustiveness-checks
    For an enum example, see issue:
    https://github.com/python/mypy/issues/6366#issuecomment-560369716
    zShould be unreachable, but got © )r	   s    úg/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt_semantic_interfaces/enum_extension.pyÚassert_values_exhaustedr      s   € ð( <Ð3°E°7Ð;Ó;ˆ5ó    ÚTÚExtendedEnum)Úboundc                   ót   — e Zd ZdZedee   dedd fd„«       Zedee   de	defd„«       Z
edee	   fd„«       Zy	)
r   z;Extension of standard Enum class with some extra utilities.Úclsr	   r
   c                 óÊ   — | D ]D  }|j                   |j                  «       k(  r|c S |j                   |j                  «       k(  sŒB|c S  t        d|› d| j                  › �«      ‚)zMake enums case insensitive.zInvalid enum value: `ú
` in enum )r	   ÚlowerÚupperÚ
ValueErrorÚ__name__)r   r	   Úmembers      r   Ú	_missing_zExtendedEnum._missing_"   s`   € ð ò 	ˆFØ�|‰|˜uŸ{™{›}Ò,Ø’Ø�|‰|˜uŸ{™{›}Ó,Ø’ð		ô Ð0°°°zÀ#Ç,Á,ÀÐPÓQÐQr   Únamec                 ól   — || j                   vrt        d|› d| j                  › �«      ‚t        | |«      S )z"Return enum member with this name.zUnable to find name `r   )Ú__members__ÚKeyErrorr   Úgetattr)r   r   s     r   Úfor_namezExtendedEnum.for_name-   s:   € ð �s—‘Ñ&ÜÐ2°4°&¸
À3Ç<Á<À.ÐQÓRÐRÜ�s˜DÓ!Ð!r   c                 óH   — t        | j                  j                  «       «      S )z(List valid names within this enum class.)Úlistr   Úkeys)r   s    r   Ú
list_nameszExtendedEnum.list_names4   s   € ô �C—O‘O×(Ñ(Ó*Ó+Ð+r   N)r   Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr   r   r   r   Ústrr"   r   r&   r   r   r   r   r      s�   „ ÙEàðR�t˜A‘wð R sð R¨~ò Ró ðRð ð"�d˜1‘gð " Sð "¨Qò "ó ð"ð ð,˜4 ™9ò ,ó ñ,r   N)Úenumr   Útypingr   r   r   r   r   r   r   r   r   r   r   ú<module>r.      s;   ðÝ ß 5Õ 5ð< 8ð <°ó <ñ. ˆC�~Ô&€ô,�4õ ,r   