§
    dŠtj˜  ã                  óÖ   — d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZ ddlmZmZmZmZmZ ddlmZ eZeeef         Zeeef         Zedee         f         Z G d„ de¦  «        Zd	S )
zCImplementation of the metadata abstraction for gRPC Asyncio Python.é    )Úannotations)ÚOrderedDict)Ú
CollectionÚ	ItemsViewÚIterableÚIteratorÚKeysViewÚSequenceÚ
ValuesView)ÚAnyÚListÚOptionalÚTupleÚUnion)ÚSelfÚMetadatac                  óÖ   — e Zd ZdZd2d„Zed3d	„¦   «         Zed4d„¦   «         Zd5d„Zd6d„Z	d7d„Z
d5d„Zd8d„Zd8d„Zd9d„Zd:d„Zd;d„Zd<d„Z	 d=d>d#„Zd?d%„Zd@d'„ZdAd*„ZdBd,„ZdCd/„ZdDd1„Zd S )Er   aÍ  Metadata abstraction for the asynchronous calls and interceptors.

    The metadata is a mapping from str -> List[str]

    Traits
        * Multiple entries are allowed for the same key
        * The order of the values by key is preserved
        * Getting by an element by key, retrieves the first mapped value
        * Supports an immutable view of the data
        * Allows partial mutation on the data without recreating the new object from scratch.
    ÚargsÚMetadatumTypeÚreturnÚNonec                óh   — t          ¦   «         | _        |D ]\  }}|                      ||¦  «         Œd S ©N)r   Ú	_metadataÚadd)Úselfr   Úmd_keyÚmd_values       úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/grpc/aio/_metadata.pyÚ__init__zMetadata.__init__2   sB   € Ý$™œˆŒØ $ð 	'ð 	'ÑˆF�HØ�HŠH�V˜XÑ&Ô&Ð&Ð&ð	'ð 	'ó    Úraw_metadataÚtuplec                ó$   — |r | |Ž S  | ¦   «         S r   © ©Úclsr"   s     r   Ú
from_tuplezMetadata.from_tuple7   s$   € ð ð 	&Ø�3˜Ð%Ð%Øˆs‰uŒuˆr!   ú*Union[None, Self, Iterable[MetadatumType]]r   c                ó`   — |€
 | ¦   «         S t          || ¦  «        r|S |r | |Ž S  | ¦   «         S r   )Ú
isinstancer&   s     r   Ú_createzMetadata._create?   sM   € ð ÐØ�3‘5”5ˆLÝ�l CÑ(Ô(ð 	 ØÐØð 	&Ø�3˜Ð%Ð%Øˆs‰uŒuˆr!   ÚkeyÚMetadataKeyÚvalueÚMetadataValuec                ó|   — | j                              |g ¦  «         | j         |                              |¦  «         d S r   )r   Ú
setdefaultÚappend)r   r-   r/   s      r   r   zMetadata.addN   s;   € ØŒ×!Ò! # rÑ*Ô*Ð*ØŒ�sÔ×"Ò" 5Ñ)Ô)Ð)Ð)Ð)r!   Úintc                ót   — t          t          t          | j                             ¦   «         ¦  «        ¦  «        S )z€Return the total number of elements that there are in the metadata,
        including multiple values for the same key.
        )ÚsumÚmapÚlenr   Úvalues©r   s    r   Ú__len__zMetadata.__len__R   s*   € õ •3•s˜DœN×1Ò1Ñ3Ô3Ñ4Ô4Ñ5Ô5Ð5r!   c                ó‚   — 	 | j         |         d         S # t          t          f$ r}|›}t          |¦  «        |‚d}~ww xY w)zmWhen calling <metadata>[<key>], the first element of all those
        mapped for <key> is returned.
        r   N)r   Ú
ValueErrorÚ
IndexErrorÚKeyError)r   r-   ÚeÚ	error_msgs       r   Ú__getitem__zMetadata.__getitem__X   sT   € ð	-Ø”> #Ô& qÔ)Ð)øÝ�JÐ'ð 	-ð 	-ð 	-Ø˜
ˆIÝ˜9Ñ%Ô%¨1Ð,øøøøð	-øøøs   ‚ •>¦9¹>c                ó|   — || vr|g| j         |<   dS |                      |¦  «        }|g|dd…         ¢| j         |<   dS )z_Calling metadata[<key>] = <value>
        Maps <value> to the first instance of <key>.
        é   N)r   Úget_all)r   r-   r/   Úcurrent_valuess       r   Ú__setitem__zMetadata.__setitem__b   sU   € ð �dˆ?ˆ?Ø#( 'ˆDŒN˜3ÑÐÐà!Ÿ\š\¨#Ñ.Ô.ˆNØ#(Ð">¨>¸!¸"¸"Ô+=Ð">ˆDŒN˜3ÑÐÐr!   c                ó�   — |                       |¦  «        }|st          t          |¦  «        ¦  «        ‚|dd…         | j        |<   dS )z<``del metadata[<key>]`` deletes the first mapping for <key>.rD   N)rE   r?   Úreprr   )r   r-   rF   s      r   Ú__delitem__zMetadata.__delitem__l   sJ   € àŸš cÑ*Ô*ˆØð 	&Ý�4 ™9œ9Ñ%Ô%Ð%Ø,¨Q¨R¨RÔ0ˆŒ�sÑÐÐr!   c                ó   — | j         |= dS )zDelete all mappings for <key>.N©r   ©r   r-   s     r   Ú
delete_allzMetadata.delete_alls   s   € àŒN˜3ÐÐÐr!   ú+Iterator[Tuple[MetadataKey, MetadataValue]]c              #  ó^   K  — | j                              ¦   «         D ]\  }}|D ]}||fV — Œ	Œd S r   )r   Úitems)r   r-   r9   r/   s       r   Ú__iter__zMetadata.__iter__w   sX   è è € Øœ>×/Ò/Ñ1Ô1ð 	#ð 	#‰KˆC�Øð #ð #�Ø˜E�lÐ"Ð"Ð"Ð"ð#ð	#ð 	#r!   r	   c                ó*   — t          | j        ¦  «        S r   )r	   r   r:   s    r   ÚkeyszMetadata.keys|   s   € Ý˜œÑ'Ô'Ð'r!   r   c                ó*   — t          | j        ¦  «        S r   )r   r   r:   s    r   r9   zMetadata.values   s   € Ý˜$œ.Ñ)Ô)Ð)r!   r   c                ó*   — t          | j        ¦  «        S r   )r   r   r:   s    r   rQ   zMetadata.items‚   s   € Ý˜œÑ(Ô(Ð(r!   NÚdefaultúOptional[MetadataValue]c                ó8   — 	 | |         S # t           $ r |cY S w xY wr   )r?   )r   r-   rW   s      r   ÚgetzMetadata.get…   s5   € ð	Ø˜”9ÐøÝð 	ð 	ð 	ØˆNˆNˆNð	øøøs   ‚
 Š˜úList[MetadataValue]c                ó8   — | j                              |g ¦  «        S )z�For compatibility with other Metadata abstraction objects (like in Java),
        this would return all items under the desired <key>.
        )r   rZ   rM   s     r   rE   zMetadata.get_all�   s   € ð Œ~×!Ò! # rÑ*Ô*Ð*r!   r9   c                ó   — || j         |<   d S r   rL   )r   r-   r9   s      r   Úset_allzMetadata.set_all“   s   € Ø$ˆŒ�sÑÐÐr!   ÚobjectÚboolc                óB   — t          |t          ¦  «        sdS || j        v S )NF)r+   r.   r   rM   s     r   Ú__contains__zMetadata.__contains__–   s&   € Ý˜#�{Ñ+Ô+ð 	Ø�5Ø�d”nÐ$Ð$r!   Úotherc                óª   — t          || j        ¦  «        r| j        |j        k    S t          |t          ¦  «        rt          | ¦  «        |k    S t          S r   )r+   Ú	__class__r   r#   ÚNotImplemented©r   rc   s     r   Ú__eq__zMetadata.__eq__›   sN   € Ý�e˜Tœ^Ñ,Ô,ð 	5Ø”> U¤_Ò4Ð4Ý�e�UÑ#Ô#ð 	(Ý˜‘;”; %Ò'Ð'ÝÐr!   r   ú
'Metadata'c                óâ   — t          || j        ¦  «        r&t          t          | ¦  «        t          |¦  «        z   Ž S t          |t          ¦  «        rt          t          | ¦  «        |z   Ž S t          S r   )r+   re   r   r#   rf   rg   s     r   Ú__add__zMetadata.__add__¢   s`   € Ý�e˜Tœ^Ñ,Ô,ð 	;Ý�e D™kœk­E°%©L¬LÑ8Ð:Ð:Ý�e�UÑ#Ô#ð 	4Ý�e D™kœk¨EÑ1Ð3Ð3ÝÐr!   Ústrc                ó`   — t          | ¦  «        }d                     | j        j        |¦  «        S )Nz
{0}({1!r}))r#   Úformatre   Ú__name__)r   Úviews     r   Ú__repr__zMetadata.__repr__©   s(   € Ý�T‰{Œ{ˆØ×"Ò" 4¤>Ô#:¸DÑAÔAÐAr!   )r   r   r   r   )r"   r#   )r"   r)   r   r   )r-   r.   r/   r0   r   r   )r   r4   )r-   r.   r   r0   )r-   r.   r   r   )r   rO   )r   r	   )r   r   )r   r   r   )r-   r.   rW   rX   r   rX   )r-   r.   r   r[   )r-   r.   r9   r[   r   r   )r-   r_   r   r`   )rc   r_   r   r`   )rc   r   r   ri   )r   rl   )ro   Ú
__module__Ú__qualname__Ú__doc__r    Úclassmethodr(   r,   r   r;   rB   rG   rJ   rN   rR   rT   r9   rQ   rZ   rE   r^   rb   rh   rk   rq   r%   r!   r   r   r   %   sØ  € € € € € ð
ð 
ð'ð 'ð 'ð 'ð
 ðð ð ñ „[ðð ðð ð ñ „[ðð*ð *ð *ð *ð6ð 6ð 6ð 6ð-ð -ð -ð -ð?ð ?ð ?ð ?ð1ð 1ð 1ð 1ð ð  ð  ð  ð#ð #ð #ð #ð
(ð (ð (ð (ð*ð *ð *ð *ð)ð )ð )ð )ð DHðð ð ð ð ð+ð +ð +ð +ð%ð %ð %ð %ð%ð %ð %ð %ð
ð ð ð ðð ð ð ðBð Bð Bð Bð Bð Br!   N)rt   Ú
__future__r   Úcollectionsr   Úcollections.abcr   r   r   r   r	   r
   r   Útypingr   r   r   r   r   Útyping_extensionsr   rl   r.   Úbytesr0   r   ÚMetadataTyper   r%   r!   r   ú<module>r}      sH  ðð JÐ IØ "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à "Ð "Ð "Ð "Ð "Ð "à€Ø�c˜5�jÔ!€Ø�k =Ð0Ô1€Ø�Z ¨-Ô!8Ð8Ô9€ðFBð FBð FBð FBð FBˆzñ FBô FBð FBð FBð FBr!   