+
    4O|j}  ã                  ó2  € R t ^ RIHt ^ RIHtHtHtHtHtH	t	H
t
 ^ RIHt ]'       d   ^ RIHt ^ RIHt ]	! R4      t]]]3,          t]],          t ! R R4      tR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR# )zFCriteria to select some ServerDescriptions from a TopologyDescription.)Úannotations)ÚTYPE_CHECKINGÚAnyÚMappingÚOptionalÚSequenceÚTypeVarÚcast)ÚSERVER_TYPE)ÚServerDescription)ÚTopologyDescriptionÚTc                  ó®   € ] tR t^ tRt]R R l4       tR R ltR R ltR R	 lt	]
R
 R l4       t]
R R l4       t]
R R l4       tR R ltR R ltRtR# )Ú	Selectionz.Input or output of a server selector function.c               ó    € V ^8„  d   QhRRRR/# )é   Útopology_descriptionr   Úreturnr   © )Úformats   "ÚQC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/server_selectors.pyÚ__annotate__ÚSelection.__annotate__$   s   € ÷ 
ñ 
Ð=Pð 
ÐU^ñ 
ó    c                	óº   € VP                   pR pV F&  pVP                  \        P                  8X  g   K$  Tp M	  \	        VVP                   VP
                  V4      # ©N)Úcandidate_serversÚserver_typer
   Ú	RSPrimaryr   Úcommon_wire_version)Úclsr   r   ÚprimaryÚsds   &&   r   Úfrom_topology_descriptionÚ#Selection.from_topology_description#   s^   € à0×BÑBÐØˆÛ#ˆBØ�~‰~¤×!6Ñ!6Ö6Ø�Ùñ $ô
 Ø Ø ×2Ñ2Ø ×4Ñ4Øó	
ð 	
r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r   r   Úserver_descriptionsúlist[ServerDescription]r   zOptional[int]r!   úOptional[ServerDescription]r   )r   s   "r   r   r   3   s2   € ÷ 
7ñ 
7à1ð
7ð 5ð
7ð +ð	
7ð
 -ñ
7r   c                	ó6   € Wn         W n        W@n        W0n        R # r   )r   r&   r!   r   )Úselfr   r&   r   r!   s   &&&&&r   Ú__init__ÚSelection.__init__3   s   € ð %9Ô!Ø#6Ô ØŒØ#6Ö r   c               ó    € V ^8„  d   QhRRRR/# )r   r&   r'   r   r   r   )r   s   "r   r   r   ?   s   € ÷ 
ñ 
Ð<Sð 
ÐXañ 
r   c                	óX   € \        V P                  WP                  V P                  4      # r   )r   r   r   r!   )r*   r&   s   &&r   Úwith_server_descriptionsÚ"Selection.with_server_descriptions?   s*   € ÜØ×%Ñ%Ð':×<TÑ<TÐVZ×VbÑVbó
ð 	
r   c               ó   € V ^8„  d   QhRR/# )r   r   r(   r   )r   s   "r   r   r   D   s   € ÷ ñ Ð4Oñ r   c                	óp   € \        V 4      pVP                  '       d   \        VP                  R  R7      # R# )c                ó6   € \        \        V P                  4      # r   )r	   ÚfloatÚlast_write_date)r"   s   &r   Ú<lambda>Ú>Selection.secondary_with_max_last_write_date.<locals>.<lambda>H   s   € ÄÄUÈB×L^ÑL^Ô@_r   )ÚkeyN)Úsecondary_server_selectorr&   Úmax)r*   Úsecondariess   & r   Ú"secondary_with_max_last_write_dateÚ,Selection.secondary_with_max_last_write_dateD   s6   € Ü/°Ó5ˆØ×*×*Ð*ÜØ×/Ñ/Ñ5_ôð ñ r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   M   s   € ÷ 8ñ 8 9ñ 8r   c                	óf   € V P                   '       d   V P                   .M. pV P                  V4      # r   )r!   r/   )r*   Ú	primariess   & r   Úprimary_selectionÚSelection.primary_selectionL   s(   € à&*§l§l l�T—\‘\‘N¸ˆ	Ø×,Ñ,¨YÓ7Ð7r   c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   r   R   s   € ÷ =ñ = Sñ =r   c                	ó.   € V P                   P                  # r   )r   Úheartbeat_frequency©r*   s   &r   rG   ÚSelection.heartbeat_frequencyQ   s   € à×(Ñ(×<Ñ<Ð<r   c               ó   € V ^8„  d   QhRR/# rD   r   )r   s   "r   r   r   V   s   € ÷ 7ñ 7˜sñ 7r   c                	ó.   € V P                   P                  # r   )r   Útopology_typerH   s   &r   rL   ÚSelection.topology_typeU   s   € à×(Ñ(×6Ñ6Ð6r   c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   r   Y   s   € ÷ .ñ .˜$ñ .r   c                	ó,   € \        V P                  4      # r   )rO   r&   rH   s   &r   Ú__bool__ÚSelection.__bool__Y   s   € Ü�D×,Ñ,Ó-Ð-r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚitemrE   r   r   r   )r   s   "r   r   r   \   s   € ÷ .ñ . ð .Ð(9ñ .r   c                	ó(   € V P                   V,          # r   )r&   )r*   rT   s   &&r   Ú__getitem__ÚSelection.__getitem__\   s   € Ø×'Ñ'¨Õ-Ð-r   )r   r!   r&   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úclassmethodr#   r+   r/   r<   ÚpropertyrA   rG   rL   rQ   rV   Ú__static_attributes__r   r   r   r   r       sq   † Ù8àô
ó ð
õ
7õ
õ
ð ô8ó ð8ð ô=ó ð=ð ô7ó ð7õ.÷.ñ .r   r   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	selectionr   r   r   )r   s   "r   r   r   `   s   € ÷ ñ  1ð ¨ñ r   c                ó   € V # r   r   ©ra   s   &r   Úany_server_selectorrd   `   s   € ØÐr   c               ó    € V ^8„  d   QhRRRR/# ©r   ra   r   r   r   )r   s   "r   r   r   d   ó   € ÷ ñ ¨	ð °iñ r   c                óˆ   € T P                  V P                   Uu. uF  qP                  '       g   K  VNK  	  up4      # u upi r   )r/   r&   Úis_readable©ra   Úss   & r   Úreadable_server_selectorrl   d   ó8   € Ø×-Ñ-Ø×1Ò1ÓCÑ1ˆq·]µ]�ˆÑ1ÑCóð ùÚCó   š?²?c               ó    € V ^8„  d   QhRRRR/# rf   r   )r   s   "r   r   r   j   rg   r   c                óˆ   € T P                  V P                   Uu. uF  qP                  '       g   K  VNK  	  up4      # u upi r   )r/   r&   Úis_writablerj   s   & r   Úwritable_server_selectorrr   j   rm   rn   c               ó    € V ^8„  d   QhRRRR/# rf   r   )r   s   "r   r   r   p   s   € ÷ ñ ¨ð °yñ r   c                ó¢   € T P                  V P                   Uu. uF%  qP                  \        P                  8X  g   K#  VNK'  	  up4      # u upi r   )r/   r&   r   r
   ÚRSSecondaryrj   s   & r   r9   r9   p   sC   € Ø×-Ñ-Ø×1Ò1Ó^Ñ1ˆq·]±]Äk×F]ÑF]Ñ5]�ˆÑ1Ñ^óð ùÚ^ó
   š A¿Ac               ó    € V ^8„  d   QhRRRR/# rf   r   )r   s   "r   r   r   v   s   € ÷ ñ  yð °Yñ r   c                ó¢   € T P                  V P                   Uu. uF%  qP                  \        P                  8X  g   K#  VNK'  	  up4      # u upi r   )r/   r&   r   r
   Ú	RSArbiterrj   s   & r   Úarbiter_server_selectorrz   v   sC   € Ø×-Ñ-Ø×1Ò1Ó\Ñ1ˆq·]±]Äk×F[ÑF[Ñ5[�ˆÑ1Ñ\óð ùÚ\rv   c               ó    € V ^8„  d   QhRRRR/# rf   r   )r   s   "r   r   r   |   s   € ÷ Wñ W°)ð WÀ	ñ Wr   c                ó>   € \        V 4      ;'       g    \        V 4      # )z6Like PrimaryPreferred but doesn't use tags or latency.)rr   r9   rc   s   &r   Ú"writable_preferred_server_selectorr}   |   s   € ä# IÓ.×VÐVÔ2KÈIÓ2VÐVr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útag_setÚTagSetra   r   r   r   )r   s   "r   r   r   �   s!   € ÷ ñ  &ð °Yð À9ñ r   c                ó¨   a € R V 3R llpTP                  VP                   Uu. uF  q2! VP                  4      '       g   K  VNK   	  up4      # u upi )zÔAll servers matching one tag set.

A tag set is a dict. A server matches if its tags are a superset:
A server tagged {'a': '1', 'b': '2'} matches the tag set {'a': '1'}.

The empty tag set {} matches any server.
c               ó    € V ^8„  d   QhRRRR/# )r   Úserver_tagszMapping[str, Any]r   rO   r   )r   s   "r   r   Ú*apply_single_tag_set.<locals>.__annotate__Š   s   € ÷ ñ Ð 1ð °dñ r   c                óf   <€ SP                  4        F  w  rW9  g   W,          V8w  g   K   R # 	  R# )FT)Úitems)rƒ   r8   Úvaluer   s   &  €r   Ú
tags_matchÚ(apply_single_tag_set.<locals>.tags_matchŠ   s-   ø€ Ø!Ÿ-™-ž/‰JˆCØÔ%¨Õ)9¸UÖ)BÚñ *ñ r   )r/   r&   Útags)r   ra   rˆ   rk   s   f&  r   Úapply_single_tag_setr‹   �   sL   ø€ ÷ð ð ×-Ñ-Ø×1Ò1ÓHÑ1ˆq°ZÀÇÁ×5G�ˆÑ1ÑHóð ùÚHs   ¤AÁAc               ó$   € V ^8„  d   QhRRRRRR/# ©r   Útag_setsÚTagSetsra   r   r   r   )r   s   "r   r   r   –   s!   € ÷ 2ñ 2˜Wð 2°ð 2¸yñ 2r   c                ód   € V  F  p\        W!4      pV'       g   K  Vu # 	  VP                  . 4      # )a6  All servers match a list of tag sets.

tag_sets is a list of dicts. The empty tag set {} matches any server,
and may be provided at the end of the list as a fallback. So
[{'a': 'value'}, {}] expresses a preference for servers tagged
{'a': 'value'}, but accepts any server if none matches the first
preference.
)r‹   r/   )rŽ   ra   r   Úwith_tag_sets   &&  r   Úapply_tag_setsr’   –   s6   € ó ˆÜ+¨GÓ?ˆß‰<ØÒñ ð
 ×-Ñ-¨bÓ1Ð1r   c               ó$   € V ^8„  d   QhRRRRRR/# r�   r   )r   s   "r   r   r   §   s'   € ÷ Jñ J°'ð JÀið JÐT]ñ Jr   c                ó,   € \        V \        V4      4      # )z2All near-enough secondaries matching the tag sets.)r’   r9   ©rŽ   ra   s   &&r   Ú#secondary_with_tags_server_selectorr–   §   s   € ä˜(Ô$=¸iÓ$HÓIÐIr   c               ó$   € V ^8„  d   QhRRRRRR/# r�   r   )r   s   "r   r   r   ¬   s'   € ÷ Iñ I¨wð IÀ9ð IÐQZñ Ir   c                ó,   € \        V \        V4      4      # )z.All near-enough members matching the tag sets.)r’   rl   r•   s   &&r   Ú member_with_tags_server_selectorr™   ¬   s   € ä˜(Ô$<¸YÓ$GÓHÐHr   N) r\   Ú
__future__r   Útypingr   r   r   r   r   r   r	   Úpymongo.server_typer
   Úpymongo.server_descriptionr   Úpymongo.topology_descriptionr   r   Ústrr€   r�   r   rd   rl   rr   r9   rz   r}   r‹   r’   r–   r™   r   r   r   Ú<module>r       s†   ðñ MÝ "ç Q× QÑ Qå +çÝ<Ý@ñ ˆCƒL€Ø	��c�Õ	€Ø
�6Õ
€÷=.ñ =.õ@õõõõõWõ
õ*2õ"J÷
Ir   