§
    VøÁi-)  ã                   ó¶  — d dl mZ 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 d dlmZ d dlmZ  edd¬¦  «        Z edd¬¦  «        ZdZn# e$ r	 dxZxZZY nw xY w eedud¦  «         G d„ de¦  «        ¦   «         Z eedud¦  «         G d„ de¦  «        ¦   «         Zedk    r ej        ¦   «          dS dS )é    )Úprint_functionN)Úpartial)Ú
skipUnless)ÚskipIf)Úgreenlet)Ú
getcurrenté   )ÚTestCase)ÚPY314)ÚContext)Ú
ContextVar)Úcopy_contextÚid)ÚdefaultÚvarzContextVar not supportedc                   ó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      úi/var/www/html/jarvis.com/web/backend/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>6   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/   r0   r&   r'   Úpropagate_byr   s     €€€€r   ú
<listcomp>z2ContextVarsTests._test_context.<locals>.<listcomp>8   sª   ø€ ð 
ð 
ð 
ð õ •Wð " UÒ*Ð*õ Ý ‘N”NÔ&Ø”Oñô ð ð 15´ØØ!Øà)¨WÒ4Ð4�A˜‘E�EØ%¨Ð7Ð7�A�A¸Tðñ ô ñ ô ð
ð 
ð 
r   r	   r#   r4   r   r   é   )r   r	   r   é   é   )r   r#   r   ÚswitchÚdictr$   r   Ú
gr_contextr!   ÚreversedÚ
assertTrueÚdeadr    ÚassertIsNotNoner"   Úvalues)r   r5   ÚletsÚletr0   r&   r'   s   ``   @@r   Ú_test_contextzContextVarsTests._test_context1   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   rD   ©r   s    r   Ú&test_context_propagated_by_context_runz7ContextVarsTests.test_context_propagated_by_context_runn   ó!   € Ø×Ò˜$Ô,¨eÑ4Ô4Ð4Ð4Ð4r   c                 ó<   — |                       | j        d¦  «         d S )Nr#   rF   rG   s    r   Ú,test_context_propagated_by_setting_attributez=ContextVarsTests.test_context_propagated_by_setting_attributeq   rI   r   c                 ó<   — |                       | j        d ¦  «         d S r   rF   rG   s    r   Útest_context_not_propagatedz,ContextVarsTests.test_context_not_propagatedt   s!   € Ø×Ò˜$Ô,¨dÑ3Ô3Ð3Ð3Ð3r   c                 ó<   — |                       | j        d¦  «         d S )Nr4   rF   rG   s    r   Útest_context_sharedz$ContextVarsTests.test_context_sharedw   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   r:   r   ©r   Úlet1Úlet2s      r   Útest_break_ctxvarsz#ContextVarsTests.test_break_ctxvarsz   so   € Ý�™œÔ*Ñ+Ô+ˆÝ�™œÔ*Ñ+Ô+ˆØ�Š•J‘L”LÔ'Ñ(Ô(Ð(Ø�Š•J‘L”LÔ'Ñ(Ô(Ð(ð 	�Š‰Œˆˆˆr   c                 ór  — t          t          ¦   «         j        ¦  «        }t          t          ¦   «         j        ¦  «        }t          ¦   «         |_        t          ¦   «         |_        |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          d S r   )r   r   r:   r   r<   rQ   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!   r<   r#   ÚassertIsInstancer   r"   r   Úparentr:   )Ú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ÚAttributeErrorr<   r    r:   ÚassertIsr"   r   r!   ÚgcÚcollectÚsysÚgetrefcountr   )r   r^   r[   r\   r]   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   rZ   r:   Ú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 )Nri   )r   r<   rl   r:   r#   rk   )r]   ÚctxÚdid_suspendrp   rm   Ú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^   Údaemonri   zrunning in a differentr<   r   )Ú	threadingrj   r#   r   ÚEventÚThreadÚstartrk   r_   Ú
ValueErrorÚgetattrr<   ra   r"   Újoinr    )r   rw   ru   Úthreadr]   rr   rs   rp   rm   rn   rt   ro   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_   Ú	TypeErrorr<   )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+   rD   rH   rK   rM   rO   rT   rV   rf   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   zContextVar supportedc                   ó   — e Zd Zd„ ZdS )ÚNoContextVarsTestsc                 ó¢  — t          t          ¦   «         j        ¦  «        }|                      t	          |d¦  «        ¦  «         |                      t          ¦  «        5  t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  d |_        d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                      t          ¦  «        5  t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  d |_        d d d ¦  «         n# 1 swxY w Y   ~d S )Nr<   )	r   r   r:   ÚassertFalseÚhasattrÚassertRaisesr`   r|   r<   )r   rR   s     r   Útest_contextvars_errorsz*NoContextVarsTests.test_contextvars_errors#  s"  € Ý�
™œÔ+Ñ,Ô,ˆØ×Ò�  |Ñ4Ô4Ñ5Ô5Ð5Ø×Ò�~Ñ.Ô.ð 	(ð 	(Ý�D˜,Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð ×Ò�~Ñ.Ô.ð 	#ð 	#Ø"ˆDŒOð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	�Š‰Œˆà×Ò�~Ñ.Ô.ð 	(ð 	(Ý�D˜,Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð ×Ò�~Ñ.Ô.ð 	#ð 	#Ø"ˆDŒOð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð ˆDˆDsH   ÁA;Á;A?ÂA?Â B4Â4B8Â;B8Ã-D
Ä
DÄDÄ/EÅEÅ
EN)r„   r…   r†   r�   r.   r   r   rˆ   rˆ   !  s#   € € € € € ðð ð ð ð r   rˆ   Ú__main__)Ú
__future__r   rb   rd   ÚunittestÚ	functoolsr   r   r   r   r   Ú r
   r   Úcontextvarsr   r   r   r   rj   ÚImportErrorr   rˆ   r„   Úmainr.   r   r   ú<module>r–      s  ðØ %Ð %Ð %Ð %Ð %Ð %à 	€	€	€	Ø 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð/Ø#Ð#Ð#Ð#Ð#Ð#Ø&Ð&Ð&Ð&Ð&Ð&Ø(Ð(Ð(Ð(Ð(Ð(ð ˆZ˜ dÐ+Ñ+Ô+€FØˆj˜¨Ð-Ñ-Ô-€GØ€J€JøØð /ð /ð /Ø*.Ð.€GÐ.ˆj˜<˜<˜<ð/øøøð €ˆG˜4ÐÐ!;Ñ<Ô<ð| ð | ð | ð | ð | �xñ | ô | ñ =Ô<ð| ð~ €ˆ�tÐÐ3Ñ4Ô4ðð ð ð ð ˜ñ ô ñ 5Ô4ðð* ˆzÒÐØ€H„M�O„O€O€O€Oð Ðs   ¾.A- Á-A;Á:A;