U
    #FZh                     @   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eej dddZdded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   `/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/proto/marshal/rules/enums.py__init__   s    zEnumRule.__init__N)absentc             	   C   sT   t |trPt || jsPz| |W S  tk
rN   tdj| jj|d Y nX |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   