o
    ýÞh¥  ã                   @   s.   d dl mZ d dlZd dlZG dd„ dƒZdS )é    )ÚTypeNc                   @   s@   e Zd ZdZdeej fdd„Zddœdefdd	„Z	d
d„ Z
dS )ÚEnumRulez@A marshal for converting between integer values and enum values.Ú
enum_classc                 C   s
   || _ d S ©N)Ú_enum)Úselfr   © r   úY/var/www/html/premium_crap/venv/lib/python3.10/site-packages/proto/marshal/rules/enums.pyÚ__init__   s   
zEnumRule.__init__N)Úabsentr   c             	   C   sT   t |tƒr(t || jƒs(z|  |¡W S  ty'   t dj| jj|d�¡ Y |S w |S )Nz'Unrecognized {name} enum value: {value})ÚnameÚvalue)Ú
isinstanceÚintr   Ú
ValueErrorÚwarningsÚwarnÚformatÚ__name__)r   r   r   r   r   r	   Ú	to_python   s   þÿôzEnumRule.to_pythonc                 C   s,   t || jƒr	|jS t |tƒr| j| jS |S r   )r   r   r   Ústr)r   r   r   r   r	   Úto_proto-   s
   
zEnumRule.to_proto)r   Ú
__module__Ú__qualname__Ú__doc__r   ÚenumÚIntEnumr
   Úboolr   r   r   r   r   r	   r      s
    r   )Útypingr   r   r   r   r   r   r   r	   Ú<module>   s   