§
    YŠtjå  ã                   óD   — d Z ddlmZ ddlmZ d„ Z G d„ de¦  «        ZdS )z7Contains _ExtensionDict class to represent extensions.
é    )Útype_checkers)ÚFieldDescriptorc           	      ó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     úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/google/protobuf/internal/extension_dict.pyÚ_VerifyExtensionHandler      sä   € õ 
Ð$¥oÑ	6Ô	6ð %Ý
ÐHØ#ñ$ñ %ô %ð %ð 
Ô	&ð MÝ
Ð.Ð1AÔ1KÑKÑ
LÔ
LÐLà	Ô	)ð 1Ý
Ð7Ø%Ô/ñ0ñ 1ô 1ð 1ð Ô%¨WÔ-?Ð?Ð?Ý
ˆ(à$Ô.Ð.Ð.Ø$Ô4Ô>Ð>Ð>ØÔ&Ô0Ð0Ð0ð	2ñ 3ô 3ð 3ð @Ð?ó    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 )z^
    Args:
      extended_message: Message instance for which we are the Extensions dict.
    N)Ú_extended_message)ÚselfÚextended_messages     r   Ú__init__z_ExtensionDict.__init__0   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                             ||¦  «        }|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Ú
setdefault)r   r   Úresultr!   r   s        r   Ú__getitem__z_ExtensionDict.__getitem__7   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Ø˜&ñ"ô "€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>h   s    € ÐDÐDÐD˜5°Ô1CÐD�ÐDÐDÐDr   c                 ó    — g | ]}|j         ¯	|‘ŒS r.   r/   r0   s     r   r3   z)_ExtensionDict.__eq__.<locals>.<listcomp>i   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__`   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 ©Nr.   )r   r7   s     r   Ú__ne__z_ExtensionDict.__ne__m   s   € Ø�uŠ}ÐÐr   c                 ój   — | j                              ¦   «         }d„ |D ¦   «         }t          |¦  «        S )Nc                 ó,   — g | ]}|d          j         ¯|‘ŒS )r   r/   r0   s     r   r3   z*_ExtensionDict.__len__.<locals>.<listcomp>s   s$   € ÐKÐKÐK %°U¸1´XÔ5JÐK˜ÐKÐKÐKr   )r   r6   Úlen)r   ÚfieldsÚextension_fieldss      r   Ú__len__z_ExtensionDict.__len__p   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__v   s   € Ý
Ð'Ñ
(Ô
(Ð(r   c                 ó4  — t          | j        |¦  «         |j        s|j        t          j        k    rt          d|j        z  ¦  «        ‚t          j	        |¦  «        }| 
                    |¦  «        | j        j        |<   | j                             ¦   «          dS )zlIf 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   r   r   r   r    rE   r	   r   ÚGetTypeCheckerÚ
CheckValuer   Ú	_Modified)r   r   ÚvalueÚtype_checkers       r   Ú__setitem__z_ExtensionDict.__setitem__}   s¨   € õ
 ˜4Ô1Ð3CÑDÔDÐDàÔ$ð :ØÔ!¥_Ô%DÒDÐDÝðØ.Ô8ñ9ñ:ô :ð :õ !Ô/Ð0@ÑAÔA€Lð 	×Ò Ñ&Ô&ð 	ÔÔ"Ð#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   rS   rT   Ú_extensions_by_numberr   )r   ÚnumberrW   rX   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   Nr/   )r1   Úfs     r   ú	<genexpr>z*_ExtensionDict.__iter__.<locals>.<genexpr>±   sE   è è € ð "ð "�QØ�ŒtÔ ð"ˆAˆaŒDð "ð "ð "ð "ð "ð "r   )r   r6   rF   s    r   Ú__iter__z_ExtensionDict.__iter__¯   s1   € ð"ð "˜$Ô0×;Ò;Ñ=Ô=ð "ñ "ô "ð "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   rL   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=   rC   rG   rN   rQ   rY   r]   rb   rf   r.   r   r   r   r   (   sÓ   € € € € € ðð ð.ð .ð .ð'ð 'ð 'ðR%ð %ð %ðð ð ð!ð !ð !ð)ð )ð )ð'ð 'ð 'ð*<ð <ð <ð&ð &ð &ð(ð (ð (ð"ð "ð "ð
ð ð ð ð r   r   N)rj   Úgoogle.protobuf.internalr   Úgoogle.protobuf.descriptorr   r   Úobjectr   r.   r   r   ú<module>rn      s‚   ððð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ð3ð 3ð 3ð2Zð Zð Zð Zð Z�Vñ Zô Zð Zð Zð Zr   