
    h                          G d  d      Z y)c                   H    e Zd ZdZdedefdZdddefdZd	 Ze	d
        Z
y)MessageRulez@A marshal for converting between a descriptor and proto.Message.
descriptorwrapperc                      || _         || _        y N)_descriptor_wrapper)selfr   r   s      .lib/third_party/proto/marshal/rules/message.py__init__zMessageRule.__init__   s    %    N)absentr   c                h    t        || j                        r| j                  j                  |      S |S r   )
isinstancer   r	   wrap)r
   valuer   s      r   	to_pythonzMessageRule.to_python   s,    eT--.==%%e,,r   c                 4   t        || j                        r| j                  j                  |      S t        |t              r| j                  s	  | j
                  di |S |S # t        t        f$ r%}| j                  |      j                  cY d }~S d }~ww xY w)N )	r   r	   pbdictis_mapr   	TypeError
ValueError_pb)r
   r   exs      r   to_protozMessageRule.to_proto   s    eT]]+==##E**eT"4;;0't''0%00  z* 0 }}U+///0s   A# #B2BBBc                 ~    | j                   j                  }|j                  xr |j                         j                  S )z>Return True if the descriptor is a map entry, False otherwise.)r   
DESCRIPTORhas_options
GetOptions	map_entry)r
   descs     r   r   zMessageRule.is_map0   s3     **?DOO$5$?$??r   )__name__
__module____qualname____doc__typer   boolr   r   propertyr   r   r   r   r   r      sD    J 4  $   26 $ 
( @ @r   r   N)r   r   r   r   <module>r+      s    $@ $@r   