+
    ÃìÜj\%  ã                   óô   € ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RI	H	t	 ^RIHt ^R	IHt ]! R
RR7      t]! RRR7      tRt ! R R]4      t]R8X  d   ]P$                  ! 4        R# R# )é    N)ÚContext)Ú
ContextVar)Úcopy_context)Úpartial)Ú
getcurrent)Úgreenlet)ÚPY314)ÚTestCaseÚid)ÚdefaultÚvarc                   óh   a € ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )ÚContextVarsTestsc                ó6   € \        4       P                  ! V/ VB # ©N)r   Úrun)ÚselfÚargsÚkwargss   &*,Ú]/opt/render/project/src/.venv/lib/python3.14/site-packages/greenlet/tests/test_contextvars.pyÚ_new_ctx_runÚContextVarsTests._new_ctx_run   s   € Ü‹~×!Ò! 4Ð2¨6Ñ2Ð2ó    c                ó2  € \         pVf!   V P                  VP                  4       4       M V P                  VP                  4       V4       VP	                  V4       \        ^4       F,  pW5P                  4       ;;,          ^,          uu&   V! 4        K.  	  R # r   )ÚID_VARÚassertIsNoneÚgetÚassertEqualÚsetÚrange)r   Úgreenlet_idÚcallbackÚcountsÚexpectÚctx_varÚ_s   &&&&&  r   Ú
_incrementÚContextVarsTests._increment   si   € ÜˆØŠ>Ø×Ñ˜gŸk™k›mÕ,à×Ñ˜WŸ[™[›]¨FÔ3Ø�‰�KÔ Ü�q–ˆAØ—;‘;“=×! QÕ&Ó!ÙŽJó r   c                óÆ  € \         P                  ^ 4       \        4       P                  p\	        R \        ^4       4       4      p\        ^^4       Uu. uFn  p\        \        VR8X  d)   \        \        4       P                  V P                  4      MV P                  TTTVR8X  d
   V^,
          M
VR9   d   ^ MRR7      4      NKp  	  ppV F=  pVR8X  d   \        4       Vn        K  VR8X  g   K$  \        4       P                  Vn        K?  	  \        ^4       FC  pV\         P                  4       ;;,          ^,          uu&   V F  pVP                  4        K  	  KE  	  VR8X  d$   \        V4       F  pVP                  4        K  	  MV F  pVP                  4        K  	  V F]  pV P                  VP                  4       VR8X  d   V P!                  VP                  4       KB  V P#                  VP                  4       K_  	  VR8X  d   V P%                  V^ ^^^^^^^^^/4       R# V P%                  \        VP'                  4       4      \        ^.4      4       R# u upi )r   c              3   ó(   "  € T F  q^ 3x € K
  	  R# 5i)r   N© )Ú.0Úis   & r   Ú	<genexpr>Ú1ContextVarsTests._test_context.<locals>.<genexpr>.   s   é € Ð/¡h ˜!•f£hùs   ‚r   Úsharer   N)r!   r"   r#   r$   )r   r   )r   r   r   ÚswitchÚdictr    r   r   r   r   r'   Ú
gr_contextr   ÚreversedÚ
assertTrueÚdeadr   ÚassertIsNotNoner   Úvalues)r   Úpropagate_byr"   r#   r-   ÚletsÚlets   &&     r   Ú_test_contextÚContextVarsTests._test_context)   sû  € ä�
‰
�1Œä“<×&Ñ&ˆÜÑ/¤e¨A¤hÓ/Ó/ˆô  ˜1˜a”[ó
ñ !�ô ”Wð " UÔ*ô Ü “N×&Ñ&Ø—O‘Oôð 15·±ØØ!Øà)¨WÔ4�A˜–EØ%¨Ô7‘A¸Tôö ñ !ð 	ð 
ó" ˆCØ˜uÔ$Ü!-£�–Ø Ö(Ü!+£×!8Ñ!8�–ñ	 ô �q–ˆAØ”6—:‘:“<×  AÕ%Ó Û�Ø—
‘
–ó ñ ð
 ˜5Ô ä –~�Ø—
‘
–ò &ó �Ø—
‘
–ñ ó ˆCØ�O‰O˜CŸH™HÔ%ð
 ˜uÔ$Ø×!Ñ! #§.¡.Ö1à×$Ñ$ S§^¡^Ö4ñ ð ˜7Ô"Ø×Ñ˜V a¨¨A¨q°!°Q¸¸1¸aÀÐ%CÖDà×ÑœS §¡£Ó1´3¸°s³8Ö<ùòi
s   ÁA4Ic                ó>   € V P                  V P                  R 4       R# )r   N©r   r<   ©r   s   &r   Ú&test_context_propagated_by_context_runÚ7ContextVarsTests.test_context_propagated_by_context_runf   ó   € Ø×Ñ˜$×,Ñ,¨eÖ4r   c                ó>   € V P                  V P                  R 4       R# )r   Nr?   r@   s   &r   Ú,test_context_propagated_by_setting_attributeÚ=ContextVarsTests.test_context_propagated_by_setting_attributei   rC   r   c                ó>   € V P                  V P                  R 4       R # r   r?   r@   s   &r   Útest_context_not_propagatedÚ,ContextVarsTests.test_context_not_propagatedl   s   € Ø×Ñ˜$×,Ñ,¨dÖ3r   c                ó>   € V P                  V P                  R 4       R# )r0   Nr?   r@   s   &r   Útest_context_sharedÚ$ContextVarsTests.test_context_sharedo   s   € Ø×Ñ˜$×,Ñ,¨gÖ6r   c                ó&  € \        \        4       P                  4      p\        \        4       P                  4      pVP                  \	        4       P                  4       VP                  \	        4       P                  4       VP                  4        R # r   )r   r   r   r1   r   ©r   Úlet1Úlet2s   &  r   Útest_break_ctxvarsÚ#ContextVarsTests.test_break_ctxvarsr   sY   € Üœ›×*Ñ*Ó+ˆÜœ›×*Ñ*Ó+ˆØ�‰”J“L×'Ñ'Ô(Ø�‰”J“L×'Ñ'Ô(ð 	�‰Žr   c                ó6  € \        \        4       P                  4      p\        \        4       P                  4      p\        4       Vn        \        4       Vn        VP                  4        VP                  4        VP                  4        VP                  4        R # r   )r   r   r1   r   r3   rN   s   &  r   Ú9test_not_broken_if_using_attribute_instead_of_context_runÚJContextVarsTests.test_not_broken_if_using_attribute_instead_of_context_run|   s\   € Üœ
›×+Ñ+Ó,ˆÜœ
›×+Ñ+Ó,ˆÜ&›.ˆŒÜ&›.ˆŒØ�‰ŒØ�‰ŒØ�‰ŒØ�‰Žr   c                óp  a a€ \         P                  R 4       VV 3R lp\        V4      oS P                  \        R4      ;_uu_ 4        S=R R R 4       S P                  SP
                  4       SP                  4       w  r#S P                  VSP
                  4       S P                  V\         ,          ^4       S P                  V\         ,          ^4       S P                  VP                  \         P                  4      ^4       VSn        SP                  4        S P                  SP
                  V4       R Sn        SP                  4        S P                  SP
                  V4       R Sn        SP                  4        S P                  SP
                  4       R o\        P                  ! 4        S P                  \        P                  ! V4      \         '       g   ^M^4       S P                  \        P                  ! V4      \         '       g	   ^4       R # ^4       R #   + '       g   i     ELâ; i)Nc                  óú  <€ SP                  \        P                  4       4       SP                  SP                  4       \        P	                  ^4       SP                  SP                  \        4       SP                  \        P                  4       ^4       SP                  SP                  \        ,          ^4       SP                  p RSn        SP                  \        P                  4       4       SP                  SP                  4       \        P	                  ^4       SP                  SP                  \        4       SP                  \        P                  4       ^4       SP                  SP                  \        ,          ^4       SP                  p\        4       P                  P                  W34       SP                  \        P                  4       ^4       VSn        SP                  \        P                  4       ^4       \        4       P                  P                  4        SP                  \        P                  4       4       SP                  SP                  4       V Sn        SP                  \        P                  4       ^4       \        4       P                  P                  4        SP                  \        P                  4       4       SP                  SP                  4       R# ©é   N)r   r   r   r3   r   ÚassertIsInstancer   r   r   Úparentr1   )Úold_contextÚnew_contextÚgrr   s     €€r   ÚtargetÚFContextVarsTests.test_context_assignment_while_running.<locals>.targetŠ   sç  ø€ Ø×ÑœfŸj™j›lÔ+Ø×Ñ˜bŸm™mÔ,ô �J‰J�qŒMØ×!Ñ! "§-¡-´Ô9Ø×ÑœVŸZ™Z›\¨1Ô-Ø×Ñ˜RŸ]™]¬6Õ2°AÔ6ð Ÿ-™-ˆKØ ˆBŒMØ×ÑœfŸj™j›lÔ+Ø×Ñ˜bŸm™mÔ,Ü�J‰J�qŒMØ×!Ñ! "§-¡-´Ô9Ø×ÑœVŸZ™Z›\¨1Ô-Ø×Ñ˜RŸ]™]¬6Õ2°AÔ6àŸ-™-ˆKÜ‹L×Ñ×&Ñ&¨Ð'AÔBð ×ÑœVŸZ™Z›\¨1Ô-Ø'ˆBŒMØ×ÑœVŸZ™Z›\¨1Ô-ä‹L×Ñ×&Ñ&Ô(à×ÑœfŸj™j›lÔ+Ø×Ñ˜bŸm™mÔ,Ø'ˆBŒMØ×ÑœVŸZ™Z›\¨1Ô-ä‹L×Ñ×&Ñ&Ô(à×ÑœfŸj™j›lÔ+Ø×Ñ˜bŸm™mÖ,r   zcan't delete context attribute)r   r   r   ÚassertRaisesRegexÚAttributeErrorr3   r   r1   ÚassertIsr   r   r   ÚgcÚcollectÚsysÚgetrefcountr	   )r   r_   r\   r]   r^   s   f   @r   Ú%test_context_assignment_while_runningÚ6ContextVarsTests.test_context_assignment_while_running†   s�  ù€ ä�
‰
�4Ôö'	-ôR �fÓˆà×#Ñ#¤NÐ4T×UÕUØ�÷ Vð 	×Ñ˜"Ÿ-™-Ô(Ø#%§9¡9£;Ñ ˆØ�‰�k 2§=¡=Ô1Ø×Ñ˜¤VÕ,¨aÔ0Ø×Ñ˜¤VÕ,¨aÔ0Ø×Ñ˜Ÿ™¬¯©Ó4°aÔ8Ø#ˆŒØ
�	‰	ŒØ�‰�b—m‘m [Ô1ØˆŒØ
�	‰	ŒØ�‰�b—m‘m [Ô1ØˆŒØ
�	‰	ŒØ×Ñ˜"Ÿ-™-Ô(ð ˆÜ
�
Š
Œð 	×ÑœŸš¨Ó5ÇÃ±qÈ1ÔMØ×ÑœŸš¨Ó5ÇÃ°qÖMÈ1ÖM÷3 V×UÐUús   ÁH$È$H5	c                óX  aaaaa	a
a€ ^ RI p\        P                  R4       \        4       oVP	                  4       o	VP	                  4       oVP	                  4       oVP	                  4       o
. oVV	V3R loVVVVV
3R lpVP                  VRR7      pVP                  4        S	P                  ^
4       S^ ,          pV P                  \        R4      ;_uu_ 4        \        VR4       RRR4       V P                  \        R4      ;_uu_ 4        RVn        RRR4       SP                  4        SP                  ^
4       V P                  VP                  S4       V P                  VP                  \        ,          ^4       RVn        S
P                  4        VP                  ^
4       V P                  SVR.4       V P                  VP                  4       SVn        V P                  VP                  S4       SR RpRpR#   + '       g   i     EL&; i  + '       g   i     EL; i)	r   Nc                  ó(  <€ \         P                  ^4       SP                  4        SP                  ^
4       \         P                  ^4       \        4       P                  P                  4        S P                  \         P                  4       4       R# rX   )ÚVAR_VARr   Úwaitr   r[   r1   Úappendr   )ÚholderÚ
is_runningÚshould_suspends   €€€r   Úgreenlet_in_thread_fnÚXContextVarsTests.test_context_assignment_different_thread.<locals>.greenlet_in_thread_fnÛ   sW   ø€ Ü�K‰K˜ŒNØ�N‰NÔØ×Ñ Ô#Ü�K‰K˜ŒNÜ‹L×Ñ×&Ñ&Ô(Ø�M‰Mœ'Ÿ+™+›-Ö(r   c                  óæ   <€ \        S4      p SV n        SP                  V 4       V P                  4        SP	                  4        SP                  ^
4       V P                  4        ? \        4        R# )é
   N)r   r3   rn   r1   r   rm   )r^   ÚctxÚdid_suspendrr   ro   Úshould_exits    €€€€€r   Ú	thread_fnÚLContextVarsTests.test_context_assignment_different_thread.<locals>.thread_fnã   sS   ø€ ÜÐ/Ó0ˆBØˆBŒMØ�M‰M˜"ÔØ�I‰IŒKØ�O‰OÔØ×Ñ˜RÔ Ø�I‰IŒKØÜŽJr   T)r_   Údaemonzrunning in a differentr3   :NNN)Ú	threadingrl   r   r   ÚEventÚThreadÚstartrm   ra   Ú
ValueErrorÚgetattrr3   rc   r   Újoinr   )r   r|   ry   Úthreadr^   rv   rw   rr   ro   rp   rx   rq   s   &    @@@@@@@r   Ú(test_context_assignment_different_threadÚ9ContextVarsTests.test_context_assignment_different_threadÐ   s©  þ€ ÛÜ�‰�DÔÜ‹iˆà—_‘_Ó&ˆ
Ø"Ÿ™Ó*ˆØ—o‘oÓ'ˆØ—o‘oÓ'ˆØˆ÷	)÷		ñ 		ð ×!Ñ!¨¸4Ð!Ó@ˆØ�‰ŒØ�‰˜ÔØ�A�Yˆð ×#Ñ#¤JÐ0H×IÕIÜ�B˜Ô%÷ Jà×#Ñ#¤JÐ0H×IÕIØ ˆBŒM÷ Jð 	×ÑÔØ×Ñ˜Ôð 	�‰�b—m‘m SÔ)Ø×Ñ˜Ÿ™¤wÕ/°Ô3ØˆŒà�‰ÔØ�‰�BŒà×Ñ˜ " d Ô,ð 	×Ñ˜"Ÿ-™-Ô(ØˆŒØ�‰�b—m‘m SÔ)ð �1ˆIØˆØŠ÷7 J×IÐIúçI×IÐIús   ÃHÄHÈH	ÈH)	c                óœ   € \        4       pV P                  \        R 4      ;_uu_ 4        Wn        RRR4       R#   + '       g   i     R# ; i)z6greenlet context must be a contextvars.Context or NoneN)r   ra   Ú	TypeErrorr3   )r   Úgs   & r   Ú"test_context_assignment_wrong_typeÚ3ContextVarsTests.test_context_assignment_wrong_type  sA   € Ü‹JˆØ×#Ñ#¤IØ$\÷^õ ^àŒL÷^÷ ^÷ ^ò ^ús	   ©:ºA	r+   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r'   r<   rA   rE   rH   rK   rQ   rT   rh   r„   r‰   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sL   ø‡ € ò3ò	ò;=òz5ò5ò4ò7òòòHNòT@÷D ð  r   r   Ú__main__)rd   rf   ÚunittestÚcontextvarsr   r   r   Ú	functoolsr   r   r   Ú r	   r
   r   rl   r   r‹   Úmainr+   r   r   Ú<module>r˜      sl   ðÛ 	Û 
Û Ý Ý "Ý $Ý å Ý å Ý ñ 
�D $Ô	'€Ù
�U DÔ
)€Ø€
ô| �xô | ð~ ˆzÔØ‡M‚M†Oñ r   