§
    dŠtj\%  ã                   ó   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dl	m	Z	 dd	lmZ dd
lmZ  edd¬¦  «        Z edd¬¦  «        ZdZ G d„ de¦  «        Zedk    r ej        ¦   «          dS dS )é    N)ÚContext)Ú
ContextVar)Úcopy_context)Úpartial)Ú
getcurrent)Úgreenleté   )ÚPY314)ÚTestCaseÚid)ÚdefaultÚvarc                   óV   — 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S )ÚContextVarsTestsc                 ó4   —  t          ¦   «         j        |i |¤ŽS ©N)r   Úrun)ÚselfÚargsÚkwargss      ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/greenlet/tests/test_contextvars.pyÚ_new_ctx_runzContextVarsTests._new_ctx_run   s   € Ø!�|‰~Œ~Ô! 4Ð2¨6Ð2Ð2Ð2ó    c                 ó^  — t           }|€(|                      |                     ¦   «         ¦  «         n(|                      |                     ¦   «         |¦  «         |                     |¦  «         t          d¦  «        D ].}||                     ¦   «         xx         dz  cc<    |¦   «          Œ/d S )Né   r	   )ÚID_VARÚassertIsNoneÚgetÚassertEqualÚsetÚrange)r   Úgreenlet_idÚcallbackÚcountsÚexpectÚctx_varÚ_s          r   Ú
_incrementzContextVarsTests._increment   s«   € ÝˆØˆ>Ø×Ò˜gŸkšk™mœmÑ,Ô,Ð,Ð,à×Ò˜WŸ[š[™]œ]¨FÑ3Ô3Ð3Ø�Š�KÑ Ô Ð Ý�q‘”ð 	ð 	ˆAØ�7—;’;‘=”=Ð!Ð!Ô! QÑ&Ð!Ð!Ñ!ØˆH‰JŒJˆJˆJð	ð 	r   c           	      ó  ‡ ‡‡‡— t                                d¦  «         t          ¦   «         j        Št	          d„ t          d¦  «        D ¦   «         ¦  «        Šˆˆˆˆ fd„t          dd¦  «        D ¦   «         }|D ]:}‰dk    rt          ¦   «         |_        Œ‰dk    rt          ¦   «         j        |_        Œ;t          d¦  «        D ]B}‰t                                ¦   «         xx         dz  cc<   |D ]}|                     ¦   «          ŒŒC‰d	k    r't          |¦  «        D ]}|                     ¦   «          Œn|D ]}|                     ¦   «          Œ|D ]W}‰  
                    |j        ¦  «         ‰d	k    r‰                      |j        ¦  «         Œ=‰                      |j        ¦  «         ŒX‰dk    r‰                      ‰ddddd
dœ¦  «         d S ‰                      t          ‰                     ¦   «         ¦  «        t          dg¦  «        ¦  «         d S )Nr   c              3   ó   K  — | ]}|d fV — Œ	dS )r   N© )Ú.0Úis     r   ú	<genexpr>z1ContextVarsTests._test_context.<locals>.<genexpr>.   s&   è è € Ð/Ð/ �q˜!�fÐ/Ð/Ð/Ð/Ð/Ð/r   é   c                 óÖ   •— g | ]e}t          t          ‰d k    r&t          t          ¦   «         j        ‰j        ¦  «        n‰j        |‰‰‰dk    r|dz
  n‰dv rdnd¬¦  «        ¦  «        ‘ŒfS )r   Úsharer	   )r    r   r   N)r"   r#   r$   r%   )r   r   r   r   r(   )r,   r-   r#   r$   Úpropagate_byr   s     €€€€r   ú
<listcomp>z2ContextVarsTests._test_context.<locals>.<listcomp>0   sª   ø€ ð 
ð 
ð 
ð õ •Wð " UÒ*Ð*õ Ý ‘N”NÔ&Ø”Oñô ð ð 15´ØØ!Øà)¨WÒ4Ð4�A˜‘E�EØ%¨Ð7Ð7�A�A¸Tðñ ô ñ ô ð
ð 
ð 
r   r	   r    r1   r   r   é   )r   r	   r   é   é   )r   r    r   ÚswitchÚdictr!   r   Ú
gr_contextr   ÚreversedÚ
assertTrueÚdeadr   ÚassertIsNotNoner   Úvalues)r   r2   ÚletsÚletr-   r#   r$   s   ``   @@r   Ú_test_contextzContextVarsTests._test_context)   sF  øøøø€ å�
Š
�1‰Œˆå‘<”<Ô&ˆÝÐ/Ð/¥e¨A¡h¤hÐ/Ñ/Ô/Ñ/Ô/ˆð
ð 
ð 
ð 
ð 
ð 
ð 
õ ˜1˜a‘[”[ð
ñ 
ô 
ˆð" ð 	9ð 	9ˆCØ˜uÒ$Ð$Ý!-¡¤�”�Ø Ò(Ð(Ý!+¡¤Ô!8�”øå�q‘”ð 	ð 	ˆAØ•6—:’:‘<”<Ð Ð Ô  AÑ%Ð Ð Ñ Øð ð �Ø—
’
‘”��ðð ˜5Ò Ð å ‘~”~ð ð �Ø—
’
‘”��ðð ð ð �Ø—
’
‘”��àð 		5ð 		5ˆCØ�OŠO˜CœHÑ%Ô%Ð%ð
 ˜uÒ$Ð$Ø×!Ò! #¤.Ñ1Ô1Ð1Ð1à×$Ò$ S¤^Ñ4Ô4Ð4Ð4ð ˜7Ò"Ð"Ø×Ò˜V¨¨q°Q¸1ÀÐ%CÐ%CÑDÔDÐDÐDÐDà×Ò�S §¢¡¤Ñ1Ô1µ3¸°s±8´8Ñ<Ô<Ð<Ð<Ð<r   c                 ó<   — |                       | j        d¦  «         d S )Nr   ©r   rA   ©r   s    r   Ú&test_context_propagated_by_context_runz7ContextVarsTests.test_context_propagated_by_context_runf   ó!   € Ø×Ò˜$Ô,¨eÑ4Ô4Ð4Ð4Ð4r   c                 ó<   — |                       | j        d¦  «         d S )Nr    rC   rD   s    r   Ú,test_context_propagated_by_setting_attributez=ContextVarsTests.test_context_propagated_by_setting_attributei   rF   r   c                 ó<   — |                       | j        d ¦  «         d S r   rC   rD   s    r   Útest_context_not_propagatedz,ContextVarsTests.test_context_not_propagatedl   s!   € Ø×Ò˜$Ô,¨dÑ3Ô3Ð3Ð3Ð3r   c                 ó<   — |                       | j        d¦  «         d S )Nr1   rC   rD   s    r   Útest_context_sharedz$ContextVarsTests.test_context_sharedo   s!   € Ø×Ò˜$Ô,¨gÑ6Ô6Ð6Ð6Ð6r   c                 óF  — t          t          ¦   «         j        ¦  «        }t          t          ¦   «         j        ¦  «        }|                     t	          ¦   «         j        ¦  «         |                     t	          ¦   «         j        ¦  «         |                     ¦   «          d S r   )r   r   r   r7   r   ©r   Úlet1Úlet2s      r   Útest_break_ctxvarsz#ContextVarsTests.test_break_ctxvarsr   so   € Ý�™œÔ*Ñ+Ô+ˆÝ�™œÔ*Ñ+Ô+ˆØ�Š•J‘L”LÔ'Ñ(Ô(Ð(Ø�Š•J‘L”LÔ'Ñ(Ô(Ð(ð 	�Š‰Œˆˆˆr   c                 ór  — t          t          ¦   «         j        ¦  «        }t          t          ¦   «         j        ¦  «        }t          ¦   «         |_        t          ¦   «         |_        |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          d S r   )r   r   r7   r   r9   rN   s      r   Ú9test_not_broken_if_using_attribute_instead_of_context_runzJContextVarsTests.test_not_broken_if_using_attribute_instead_of_context_run|   sx   € Ý�
™œÔ+Ñ,Ô,ˆÝ�
™œÔ+Ñ,Ô,ˆÝ&™.œ.ˆŒÝ&™.œ.ˆŒØ�Š‰ŒˆØ�Š‰ŒˆØ�Š‰ŒˆØ�Š‰Œˆˆˆr   c                 ó„  ‡ ‡— t                                d ¦  «         ˆˆ fd„}t          |¦  «        Š‰                      t          d¦  «        5  ‰`d d d ¦  «         n# 1 swxY w Y   ‰                      ‰j        ¦  «         ‰                     ¦   «         \  }}‰                      |‰j        ¦  «         ‰  	                    |t                    d¦  «         ‰  	                    |t                    d¦  «         ‰  	                    | 
                    t           j        ¦  «        d¦  «         |‰_        ‰                     ¦   «          ‰                      ‰j        |¦  «         d ‰_        ‰                     ¦   «          ‰                      ‰j        |¦  «         d ‰_        ‰                     ¦   «          ‰                      ‰j        ¦  «         d Št          j        ¦   «          ‰  	                    t          j        |¦  «        t           sdnd¦  «         ‰  	                    t          j        |¦  «        t           sdnd¦  «         d S )Nc                  ó¤  •— ‰                      t                               ¦   «         ¦  «         ‰                      ‰j        ¦  «         t                               d¦  «         ‰                     ‰j        t          ¦  «         ‰                     t                               ¦   «         d¦  «         ‰                     ‰j        t                   d¦  «         ‰j        } d ‰_        ‰                      t                               ¦   «         ¦  «         ‰                      ‰j        ¦  «         t                               d¦  «         ‰                     ‰j        t          ¦  «         ‰                     t                               ¦   «         d¦  «         ‰                     ‰j        t                   d¦  «         ‰j        }t          ¦   «         j	         
                    | |f¦  «         ‰                     t                               ¦   «         d¦  «         |‰_        ‰                     t                               ¦   «         d¦  «         t          ¦   «         j	         
                    ¦   «          ‰                      t                               ¦   «         ¦  «         ‰                      ‰j        ¦  «         | ‰_        ‰                     t                               ¦   «         d¦  «         t          ¦   «         j	         
                    ¦   «          ‰                      t                               ¦   «         ¦  «         ‰                      ‰j        ¦  «         d S )Nr	   r   )r   r   r   r9   r    ÚassertIsInstancer   r   r   Úparentr7   )Úold_contextÚnew_contextÚgrr   s     €€r   ÚtargetzFContextVarsTests.test_context_assignment_while_running.<locals>.targetŠ   sj  ø€ Ø×Ò�fŸjšj™lœlÑ+Ô+Ð+Ø×Ò˜bœmÑ,Ô,Ð,õ �JŠJ�q‰MŒMˆMØ×!Ò! "¤-µÑ9Ô9Ð9Ø×Ò�VŸZšZ™\œ\¨1Ñ-Ô-Ð-Ø×Ò˜Rœ]­6Ô2°AÑ6Ô6Ð6ð œ-ˆKØ ˆBŒMØ×Ò�fŸjšj™lœlÑ+Ô+Ð+Ø×Ò˜bœmÑ,Ô,Ð,Ý�JŠJ�q‰MŒMˆMØ×!Ò! "¤-µÑ9Ô9Ð9Ø×Ò�VŸZšZ™\œ\¨1Ñ-Ô-Ð-Ø×Ò˜Rœ]­6Ô2°AÑ6Ô6Ð6àœ-ˆKÝ‰LŒLÔ×&Ò&¨°[Ð'AÑBÔBÐBð ×Ò�VŸZšZ™\œ\¨1Ñ-Ô-Ð-Ø'ˆBŒMØ×Ò�VŸZšZ™\œ\¨1Ñ-Ô-Ð-å‰LŒLÔ×&Ò&Ñ(Ô(Ð(à×Ò�fŸjšj™lœlÑ+Ô+Ð+Ø×Ò˜bœmÑ,Ô,Ð,Ø'ˆBŒMØ×Ò�VŸZšZ™\œ\¨1Ñ-Ô-Ð-å‰LŒLÔ×&Ò&Ñ(Ô(Ð(à×Ò�fŸjšj™lœlÑ+Ô+Ð+Ø×Ò˜bœmÑ,Ô,Ð,Ð,Ð,r   zcan't delete context attributer	   r   )r   r    r   ÚassertRaisesRegexÚAttributeErrorr9   r   r7   ÚassertIsr   r   r   ÚgcÚcollectÚsysÚgetrefcountr
   )r   r[   rX   rY   rZ   s   `   @r   Ú%test_context_assignment_while_runningz6ContextVarsTests.test_context_assignment_while_running†   s9  øø€ å�
Š
�4ÑÔÐð'	-ð '	-ð '	-ð '	-ð '	-ð '	-õR �fÑÔˆà×#Ò#¥NÐ4TÑUÔUð 	ð 	Ø�ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜"œ-Ñ(Ô(Ð(Ø#%§9¢9¡;¤;Ñ ˆ�[Ø�Š�k 2¤=Ñ1Ô1Ð1Ø×Ò˜¥VÔ,¨aÑ0Ô0Ð0Ø×Ò˜¥VÔ,¨aÑ0Ô0Ð0Ø×Ò˜Ÿš­¬Ñ4Ô4°aÑ8Ô8Ð8Ø#ˆŒØ
�	Š	‰ŒˆØ�Š�b”m [Ñ1Ô1Ð1ØˆŒØ
�	Š	‰ŒˆØ�Š�b”m [Ñ1Ô1Ð1ØˆŒØ
�	Š	‰ŒˆØ×Ò˜"œ-Ñ(Ô(Ð(ð ˆÝ
Œ
‰Œˆð 	×Ò�œ¨Ñ5Ô5ÅÐ7L°q°qÈ1ÑMÔMÐMØ×Ò�œ¨Ñ5Ô5ÅÐ7L°q°qÈ1ÑMÔMÐMÐMÐMs   ÁAÁA Á#A c                 ó¨  ‡‡‡‡‡	‡
‡— dd l }t                               d ¦  «         t          ¦   «         Š|                     ¦   «         Š	|                     ¦   «         Š|                     ¦   «         Š|                     ¦   «         Š
g Šˆˆ	ˆfd„Šˆˆˆˆˆ
fd„}|                     |d¬¦  «        }|                     ¦   «          ‰	                     d¦  «         ‰d         }|                      t          d¦  «        5  t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          d¦  «        5  d |_        d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          ‰                     d¦  «         |                      |j        ‰¦  «         |                      |j        t                   d	¦  «         d |_        ‰
                     ¦   «          |                     d¦  «         |                      ‰|d g¦  «         |                      |j        ¦  «         ‰|_        |                      |j        ‰¦  «         ‰d d …= d }d }d S )
Nr   c                  ód  •— t                                d¦  «         ‰                     ¦   «          ‰                     d¦  «         t                                d¦  «         t          ¦   «         j                             ¦   «          ‰                      t                                ¦   «         ¦  «         d S )Nr	   é
   r   )ÚVAR_VARr    Úwaitr   rW   r7   Úappendr   )ÚholderÚ
is_runningÚshould_suspends   €€€r   Úgreenlet_in_thread_fnzXContextVarsTests.test_context_assignment_different_thread.<locals>.greenlet_in_thread_fnÛ   s~   ø€ Ý�KŠK˜‰NŒNˆNØ�NŠNÑÔÐØ×Ò Ñ#Ô#Ð#Ý�KŠK˜‰NŒNˆNÝ‰LŒLÔ×&Ò&Ñ(Ô(Ð(Ø�MŠM�'Ÿ+š+™-œ-Ñ(Ô(Ð(Ð(Ð(r   c                  ó  •— t          ‰¦  «        } ‰| _        ‰                     | ¦  «         |                      ¦   «          ‰                     ¦   «          ‰                     d¦  «         |                      ¦   «          ~ t          ¦   «          d S )Nrf   )r   r9   ri   r7   r    rh   )rZ   ÚctxÚdid_suspendrm   rj   Úshould_exits    €€€€€r   Ú	thread_fnzLContextVarsTests.test_context_assignment_different_thread.<locals>.thread_fnã   sx   ø€ ÝÐ/Ñ0Ô0ˆBØˆBŒMØ�MŠM˜"ÑÔÐØ�IŠI‰KŒKˆKØ�OŠOÑÔÐØ×Ò˜RÑ Ô Ð Ø�IŠI‰KŒKˆKØÝ‰JŒJˆJˆJˆJr   T)r[   Údaemonrf   zrunning in a differentr9   r   )Ú	threadingrg   r    r   ÚEventÚThreadÚstartrh   r\   Ú
ValueErrorÚgetattrr9   r^   r   Újoinr   )r   rt   rr   ÚthreadrZ   ro   rp   rm   rj   rk   rq   rl   s        @@@@@@@r   Ú(test_context_assignment_different_threadz9ContextVarsTests.test_context_assignment_different_threadÐ   sá  øøøøøøø€ ØÐÐÐÝ�Š�DÑÔÐÝ‰iŒiˆà—_’_Ñ&Ô&ˆ
Ø"ŸšÑ*Ô*ˆØ—o’oÑ'Ô'ˆØ—o’oÑ'Ô'ˆØˆð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð ×!Ò!¨¸4Ð!Ñ@Ô@ˆØ�Š‰ŒˆØ�Š˜ÑÔÐØ�AŒYˆð ×#Ò#¥JÐ0HÑIÔIð 	&ð 	&Ý�B˜Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&à×#Ò#¥JÐ0HÑIÔIð 	!ð 	!Ø ˆBŒMð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	×ÒÑÔÐØ×Ò˜ÑÔÐð 	�Š�b”m SÑ)Ô)Ð)Ø×Ò˜œ¥wÔ/°Ñ3Ô3Ð3ØˆŒà�ŠÑÔÐØ�Š�B‰Œˆà×Ò˜ " d Ñ,Ô,Ð,ð 	×Ò˜"œ-Ñ(Ô(Ð(ØˆŒØ�Š�b”m SÑ)Ô)Ð)ð �1�1�1ˆIØˆØˆˆˆs$   Ã9DÄDÄDÄ<EÅEÅEc                 ó˜   — t          ¦   «         }|                      t          d¦  «        5  | |_        d d d ¦  «         d S # 1 swxY w Y   d S )Nz6greenlet context must be a contextvars.Context or None)r   r\   Ú	TypeErrorr9   )r   Úgs     r   Ú"test_context_assignment_wrong_typez3ContextVarsTests.test_context_assignment_wrong_type  s“   € Ý‰JŒJˆØ×#Ò#¥IØ$\ñ^ô ^ð 	 ð 	 àˆAŒLð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   ª?¿AÁAN)Ú__name__Ú
__module__Ú__qualname__r   r(   rA   rE   rH   rJ   rL   rQ   rS   rc   r|   r€   r+   r   r   r   r      sÔ   € € € € € ð3ð 3ð 3ð	ð 	ð 	ð;=ð ;=ð ;=ðz5ð 5ð 5ð5ð 5ð 5ð4ð 4ð 4ð7ð 7ð 7ðð ð ðð ð ðHNð HNð HNðT@ð @ð @ðD ð  ð  ð  ð  r   r   Ú__main__)r_   ra   ÚunittestÚcontextvarsr   r   r   Ú	functoolsr   r   r   Ú r
   r   r   rg   r   r�   Úmainr+   r   r   ú<module>rŠ      s8  ðØ 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð 
ˆ�D $Ð	'Ñ	'Ô	'€Ø
ˆ*�U DÐ
)Ñ
)Ô
)€Ø€
ð| ð | ð | ð | ð | �xñ | ô | ð | ð~ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   