§
    ?Äj^  ã                   óD   — d Z ddlmZ ddlmZ d„ Z G d„ de¦  «        ZdS )z6Contains _ExtensionDict class to represent extensions.é    )ÚFieldDescriptor)Útype_checkersc           	      óL  — t          |t          ¦  «        st          d|z  ¦  «        ‚|j        st          d|j        z  ¦  «        ‚|j        st          d|j        z  ¦  «        ‚|j        | j        ur2t          d|j        ›d|j        j        ›d| j        j        ›d�¦  «        ‚dS )	z0Verify that the given extension handle is valid.z3HasExtension() expects an extension handle, got: %sz"%s" is not an extension.z""%s" is missing a containing_type.zExtension "z" extends message type "z ", but this message is of type "z".N)Ú
isinstancer   ÚKeyErrorÚis_extensionÚ	full_nameÚcontaining_typeÚ
DESCRIPTOR)ÚmessageÚextension_handles     úXC:\Projects\Historical\venv\Lib\site-packages\google/protobuf/internal/extension_dict.pyÚ_VerifyExtensionHandler      sâ   € õ 
Ð$¥oÑ	6Ô	6ð Ý
Ø=Ð@PÑPñô ð ð 
Ô	&ð MÝ
Ð.Ð1AÔ1KÑKÑ
LÔ
LÐLà	Ô	)ð Ý
Ø,Ð/?Ô/IÑIñô ð ð Ô%¨WÔ-?Ð?Ð?Ý
ˆ(ð Ô&Ð&Ð&ØÔ,Ô6Ð6Ð6ØÔÔ(Ð(Ð(ð	
ñô ð ð @Ð?ó    c                   óZ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )Ú_ExtensionDictz�Dict-like container for Extension fields on proto instances.

  Note that in all cases we expect extension handles to be
  FieldDescriptors.
  c                 ó   — || _         dS )zXArgs:

    extended_message: Message instance for which we are the Extensions dict.
    N)Ú_extended_message)ÚselfÚextended_messages     r   Ú__init__z_ExtensionDict.__init__3   s   € ð
 .€DÔÐÐr   c                 óÔ  — t          | j        |¦  «         | j        j                             |¦  «        }|�|S |j        r|                     | j        ¦  «        }nÍ|j        t          j        k    r±|j	        }t          |d¦  «        sddlm} |                     |¦  «         t          |j	        d¦  «        s ddlm} |                     |j	        ¦  «         |j	                             ¦   «         }	 |                     | j        j        ¦  «         n# t"          $ r Y nw xY w|j        S | j        j        r|                     ¦   «          | j        j                             ||¦  «        }|S )z8Returns the current value of the given extension handle.NÚ_concrete_classr   )Úmessage_factory)r   r   Ú_fieldsÚgetÚis_repeatedÚ_default_constructorÚcpp_typer   ÚCPPTYPE_MESSAGEÚmessage_typeÚhasattrÚgoogle.protobufr   ÚGetMessageClassr   Ú_SetListenerÚ_listener_for_childrenÚReferenceErrorÚdefault_valueÚ_frozenÚ
_SetFrozenÚ
setdefault)r   r   Úresultr!   r   s        r   Ú__getitem__z_ExtensionDict.__getitem__:   s˜  € õ ˜4Ô1Ð3CÑDÔDÐDàÔ#Ô+×/Ò/Ð0@ÑAÔA€FØÐØ€màÔ#ð ,Ø×4Ò4°TÔ5KÑLÔL€f€fØ	Ô	"¥oÔ&EÒ	EÐ	EØ%Ô2€lÝ�\Ð#4Ñ5Ô5ð 6à3Ð3Ð3Ð3Ð3Ð3à×'Ò'¨Ñ5Ô5Ð5ÝÐ%Ô2Ð4EÑFÔFð GØ3Ð3Ð3Ð3Ð3Ð3à×'Ò'Ð(8Ô(EÑFÔFÐFØÔ,×<Ò<Ñ>Ô>€fðØ×Ò˜DÔ2ÔIÑJÔJÐJÐJøÝð ð ð Øˆðøøøð
 Ô+Ð+ð ÔÔ%ð Ø×ÒÑÔÐØÔ#Ô+×6Ò6Ð7GÈÑPÔP€Fà€Ms   Ã1D Ä
DÄDc                 óÐ   — t          || j        ¦  «        sdS | j                             ¦   «         }|j                             ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }||k    S )NFc                 ó    — g | ]}|j         ¯	|‘ŒS © ©r   ©Ú.0Úfields     r   ú
<listcomp>z)_ExtensionDict.__eq__.<locals>.<listcomp>n   s    € ÐDÐDÐD˜5°Ô1CÐD�ÐDÐDÐDr   c                 ó    — g | ]}|j         ¯	|‘ŒS r0   r1   r2   s     r   r5   z)_ExtensionDict.__eq__.<locals>.<listcomp>o   s    € ÐJÐJÐJ˜e°uÔ7IÐJ�EÐJÐJÐJr   )r   Ú	__class__r   Ú
ListFields)r   ÚotherÚ	my_fieldsÚother_fieldss       r   Ú__eq__z_ExtensionDict.__eq__f   sw   € Ý�e˜Tœ^Ñ,Ô,ð ØˆUàÔ&×1Ò1Ñ3Ô3€IØÔ*×5Ò5Ñ7Ô7€Lð EÐD IÐDÑDÔD€IØJÐJ |ÐJÑJÔJ€Là˜Ò$Ð$r   c                 ó   — | |k     S ©Nr0   )r   r9   s     r   Ú__ne__z_ExtensionDict.__ne__s   s   € Ø�uŠ}ÐÐr   c                 ój   — | j                              ¦   «         }d„ |D ¦   «         }t          |¦  «        S )Nc                 ó,   — g | ]}|d          j         ¯|‘ŒS )r   r1   r2   s     r   r5   z*_ExtensionDict.__len__.<locals>.<listcomp>y   s$   € ÐKÐKÐK %°U¸1´XÔ5JÐK˜ÐKÐKÐKr   )r   r8   Úlen)r   ÚfieldsÚextension_fieldss      r   Ú__len__z_ExtensionDict.__len__v   s9   € ØÔ#×.Ò.Ñ0Ô0€FàKÐK¨6ÐKÑKÔKÐÝÐÑ Ô Ð r   c                 ó    — t          d¦  «        ‚)Nzunhashable object)Ú	TypeError©r   s    r   Ú__hash__z_ExtensionDict.__hash__|   s   € Ý
Ð'Ñ
(Ô
(Ð(r   c                 óf  — t          | j        |¦  «         | j                             ¦   «          |j        s|j        t
          j        k    rt          d|j        z  ¦  «        ‚t          j
        |¦  «        }|                     |¦  «        | j        j        |<   | j                             ¦   «          dS )zmIf extension_handle specifies a non-repeated, scalar extension

    field, sets the value of that field.
    zKCannot assign to extension "%s" because it is a repeated or composite type.N)r   r   Ú_AssureWritabler   r   r   r    rG   r	   r   ÚGetTypeCheckerÚ
CheckValuer   Ú	_Modified)r   r   ÚvalueÚtype_checkers       r   Ú__setitem__z_ExtensionDict.__setitem__ƒ   sÁ   € õ ˜4Ô1Ð3CÑDÔDÐDàÔ×*Ò*Ñ,Ô,Ð,ð 	Ô$ðàÔ$­Ô(GÒGÐGåðàÔ&ñ'ñô ð õ !Ô/Ð0@ÑAÔA€Là7C×7NÒ7NØñ8ô 8€DÔÔ"Ð#3Ñ4ð 	Ô×$Ò$Ñ&Ô&Ð&Ð&Ð&r   c                 ó:   — | j                              |¦  «         d S r>   )r   ÚClearExtension)r   r   s     r   Ú__delitem__z_ExtensionDict.__delitem__    s    € ØÔ×)Ò)Ð*:Ñ;Ô;Ð;Ð;Ð;r   c                 ót   — | j         j        }|j        j        j        |         }|                     |d¦  «        S )z™Tries to find a known extension with the specified name.

    Args:
      name: Extension full name.

    Returns:
      Extension field descriptor.
    N)r   r   ÚfileÚpoolÚ_extensions_by_namer   )r   ÚnameÚ
descriptorÚ
extensionss       r   Ú_FindExtensionByNamez#_ExtensionDict._FindExtensionByName£   s5   € ð Ô'Ô2€JØ”Ô%Ô9¸*ÔE€JØ�>Š>˜$ Ñ%Ô%Ð%r   c                 ót   — | j         j        }|j        j        j        |         }|                     |d¦  «        S )zœTries to find a known extension with the field number.

    Args:
      number: Extension field number.

    Returns:
      Extension field descriptor.
    N)r   r   rV   rW   Ú_extensions_by_numberr   )r   ÚnumberrZ   r[   s       r   Ú_FindExtensionByNumberz%_ExtensionDict._FindExtensionByNumber°   s5   € ð Ô'Ô2€JØ”Ô%Ô;¸JÔG€JØ�>Š>˜& $Ñ'Ô'Ð'r   c                 óH   — d„ | j                              ¦   «         D ¦   «         S )Nc              3   ó@   K  — | ]}|d          j         ¯|d          V — ŒdS )r   Nr1   )r3   Úfs     r   ú	<genexpr>z*_ExtensionDict.__iter__.<locals>.<genexpr>¿   sF   è è € ð ð Ø¸Q¸q¼TÔ=NðØ	ˆ!Œðð ð ð ð ð r   )r   r8   rH   s    r   Ú__iter__z_ExtensionDict.__iter__½   s2   € ðð ØÔ,×7Ò7Ñ9Ô9ðñ ô ð r   c                 ó4  — t          | j        |¦  «         || j        j        vrdS |j        r,t	          | j        j                             |¦  «        ¦  «        S |j        t          j        k    r*| j        j                             |¦  «        }|d uo|j	        S dS )NFT)
r   r   r   r   Úboolr   r   r   r    Ú_is_present_in_parent)r   r   rO   s      r   Ú__contains__z_ExtensionDict.__contains__Ã   sž   € Ý˜4Ô1Ð3CÑDÔDÐDà˜tÔ5Ô=Ð=Ð=ØˆUàÔ#ð HÝ�$Ô(Ô0×4Ò4Ð5EÑFÔFÑGÔGÐGàÔ ¥OÔ$CÒCÐCØÔ$Ô,×0Ò0Ð1AÑBÔB€eà˜$ÐÐ> 5Ô#>Ð>àˆ4r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r-   r<   r?   rE   rI   rQ   rT   r\   r`   re   ri   r0   r   r   r   r   ,   sÓ   € € € € € ðð ð.ð .ð .ð*ð *ð *ðX%ð %ð %ðð ð ð!ð !ð !ð)ð )ð )ð'ð 'ð 'ð:<ð <ð <ð&ð &ð &ð(ð (ð (ðð ð ðð ð ð ð r   r   N)rm   Úgoogle.protobuf.descriptorr   Úgoogle.protobuf.internalr   r   Úobjectr   r0   r   r   ú<module>rq      s~   ðð =Ð <à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð>eð eð eð eð e�Vñ eô eð eð eð er   