
    Ng                     <    d dl mZ d dlZd dlZ G d d          ZdS )    )TypeNc                   L    e Zd ZdZdeej                 fdZdddefdZ	d Z
dS )	EnumRulez@A marshal for converting between integer values and enum values.
enum_classc                     || _         d S N)_enum)selfr   s     U/var/www/html/ai-engine/env/lib/python3.11/site-packages/proto/marshal/rules/enums.py__init__zEnumRule.__init__   s    


    N)absentr   c                   t          |t                    rnt          || j                  sY	 |                     |          S # t          $ r6 t	          j        d                    | j        j        |                     Y nw xY w|S )Nz'Unrecognized {name} enum value: {value})namevalue)
isinstanceintr	   
ValueErrorwarningswarnformat__name__)r
   r   r   s      r   	to_pythonzEnumRule.to_python   s    eS!! 	*UDJ*G*G 	zz%(((    =DD!Z0# E       s   A =B Bc                     t          || j                  r|j        S t          |t                    r| j        |         j        S |S r   )r   r	   r   str)r
   r   s     r   to_protozEnumRule.to_proto-   sK    
 eTZ(( 	; eS!! 	+:e$** r   )r   
__module____qualname____doc__r   enumIntEnumr   boolr   r    r   r   r   r      su        JJ 4#5         26   $    &    r   r   )typingr   r    r   r   r#   r   r   <module>r%      s]           ' ' ' ' ' ' ' ' ' 'r   