o
    Rh1                     @   s   G d d dZ dS )c                   @   sJ   e Zd ZdZdedefddZdddefd	d
Zdd Ze	dd Z
dS )MessageRulez@A marshal for converting between a descriptor and proto.Message.
descriptorwrapperc                 C   s   || _ || _d S N)_descriptor_wrapper)selfr   r    r   ]/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/proto/marshal/rules/message.py__init__   s   
zMessageRule.__init__N)absentr   c                C   s   t || jr| j|S |S r   )
isinstancer   r   wrap)r   valuer   r   r   r	   	to_python   s   zMessageRule.to_pythonc              
   C   sp   t || jr| j|S t |tr6| js6z	| jdi |W S  ty5 } z| |jW  Y d }~S d }~ww |S )Nr   )r   r   pbdictis_mapr   	TypeError_pb)r   r   exr   r   r	   to_proto   s   zMessageRule.to_protoc                 C   s   | j j}|jo| jS )z>Return True if the descriptor is a map entry, False otherwise.)r   
DESCRIPTORhas_options
GetOptions	map_entry)r   descr   r   r	   r   ,   s   zMessageRule.is_map)__name__
__module____qualname____doc__typer
   boolr   r   propertyr   r   r   r   r	   r      s    r   N)r   r   r   r   r	   <module>   s   