+
    i"                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^RIHt ^RIHt ];'       dA    ]P                  ! R4      e$   R]P                  ! R4      P                  4       9  M]! ]R4      R3t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      tR t ! R R]4      t]R8X  d   ]P,                  ! 4        R# R# )    )print_functionN)TestCase)PY312OPTz-DNDEBUGgettotalrefcountz1Broken on assertion-enabled builds of Python 3.12c                       ] tR t^tRtR# )	SomeError N)__name__
__module____qualname____firstlineno____static_attributes__r
       uC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\greenlet/tests/test_tracing.pyr	   r	      s    r   r	   c                   @   a  ] tR t^t o RtRR ltR tR tR tRt	V t
R# )GreenletTracerNc                     . V n         Wn        R # N)actionserror_on_trace)selfr   s   &&r   __init__GreenletTracer.__init__   s    ,r   c                l    V P                   P                  V4       V P                  '       d   \        hR # r   )r   appendr   r	   r   argss   &*r   __call__GreenletTracer.__call__!   s*    D!O r   c                P    \         P                  ! V 4      V n        V P                  # r   )greenletsettraceoldtracer   r   s   &r   	__enter__GreenletTracer.__enter__&   s     ))$/||r   c                F    \         P                  ! V P                  4       R # r   )r"   r#   r$   r   s   &*r   __exit__GreenletTracer.__exit__*   s    $--(r   )r   r   r$   )Fr   r   r   r   r$   r   r   r&   r)   r   __classdictcell____classdict__s   @r   r   r      s#     H-
) )r   r   c                   6   a  ] tR t^.t o RtR tR tR tRtV t	R# )TestGreenletTracingz"
Tests of ``greenlet.settrace()``
c           	        \         P                  ! 4       pR  pR p\        4       ;_uu_ 4       p\         P                   ! V4      pVP                  4        \         P                   ! V4      pV P	                  \
        VP                  4       RRR4       V P                  XRVX33RWQ33RVX33RWa33.4       R#   + '       g   i     L6; i)c                      R # r   r
   r
   r   r   dummy:TestGreenletTracing.test_a_greenlet_tracing.<locals>.dummy5   s    r   c                      \        4       hr   )r	   r
   r   r   dummyexc=TestGreenletTracing.test_a_greenlet_tracing.<locals>.dummyexc7   s
    +r   Nswitchthrow)r"   
getcurrentr   r8   assertRaisesr	   assertEqual)r   mainr3   r6   r   g1g2s   &      r   test_a_greenlet_tracing+TestGreenletTracing.test_a_greenlet_tracing3   s    ""$		 ""5)BIIK""8,Bi3	  	bz"z"bz"rj!	#
 	 s   AB99C		c                  a \         P                  ! 4       oV3R  lp\         P                   ! V4      pVP                  4        \        RR7      ;_uu_ 4       pV P	                  \
        VP                  4       V P                  \         P                  ! 4       R4       RRR4       V P                  XRSV33.4       R#   + '       g   i     L); i)c                  (   < S P                  4        R # r   )r8   )r=   s   r   r3   DTestGreenletTracing.test_b_exception_disables_tracing.<locals>.dummyI   s    KKMr   T)r   Nr8   )r"   r:   r8   r   r;   r	   r<   gettrace)r   r3   gr   r=   s   &   @r   !test_b_exception_disables_tracing5TestGreenletTracing.test_b_exception_disables_tracingG   s    ""$	e$	
400Gi2X..0$7 1 	ay!#
 		 10s   AB>>C	c                    \        4       pV;_uu_ 4        \        P                  ! V4       R R R 4       R #   + '       g   i     R # ; ir   )r   r"   r#   r   tracers   & r   test_set_same_tracer_twice.TestGreenletTracing.test_set_same_tracer_twiceU   s+    
  !Vf% VVVs	   6A	r
   N)
r   r   r   r   __doc__r@   rG   rL   r   r,   r-   s   @r   r0   r0   .   s     (& &r   r0   c                   <   a  ] tR t^_t o RtR tR tR tR tRt	V t
R# )PythonTracerNc                    . V n         R # r   )r   r%   s   &r   r   PythonTracer.__init__b   s	    r   c                f    V P                   P                  W!P                  P                  34       R # r   )r   r   f_codeco_name)r   frameeventargs   &&&&r   r   PythonTracer.__call__e   s!    ULL$8$89:r   c                P    \         P                  ! V 4      V n        V P                  # r   )sys
setprofiler$   r   r%   s   &r   r&   PythonTracer.__enter__i   s    t,||r   c                F    \         P                  ! V P                  4       R # r   )r[   r\   r$   r   s   &*r   r)   PythonTracer.__exit__m   s    t}}%r   )r   r$   r+   r-   s   @r   rP   rP   _   s#     H;& &r   rP   c                      ^*# *   r
   r
   r   r   tpt_callbackrc   p   s    r   c                      a  ] tR t^st o RtRtR tR tR tR t	R t
R tR	 tR
 t]P                  ! ]!  R 4       t]P                  ! ]!  R 4       tRtV tR# )TestPythonTracingz|
Tests of the interaction of ``sys.settrace()``
with greenlet facilities.

NOTE: Most of this is probably CPython specific.
Nc                    \        4       ;_uu_ 4       p\        4        R R R 4       V P                  X. RO4       R #   + '       g   i     L&; i)N)returnr&   callrc   rh   rc   rj   r)   c_callr)   )rP   rc   r<   )r   r   s   & r   test_trace_events_trivial+TestPythonTracing.test_trace_events_trivial}   s4    ^^wN  	 #
 	 ^s	   <A	c                    \        4       ;_uu_ 4       pVP                  4        R R R 4       V#   + '       g   i     X# ; ir   )rP   r8   r   gletr   s   && r   _trace_switchTestPythonTracing._trace_switch   s+    ^^wKKM  ^s   .?	c                P    V P                  V4      pV P                  V. RO4       R# )rh   N)	rg   )rn   rt   )rj   runri   rk   rh   rw   )c_returnrt   rl   rm   )rt   r<   rr   s   && r   $_check_trace_events_func_already_set6TestPythonTracing._check_trace_events_func_already_set   s'    $$T* 
#
 
	r   c                V    R  pV P                  \        P                  ! V4      4       R# )c                      \        4       # r   rc   r
   r   r   rw   OTestPythonTracing.test_trace_events_into_greenlet_func_already_set.<locals>.run   s
    >!r   N)rz   r"   )r   rw   s   & r   0test_trace_events_into_greenlet_func_already_setBTestPythonTracing.test_trace_events_into_greenlet_func_already_set   s"    	" 	11(2C2CC2HIr   c                d     ! R  R\         P                   4      pV P                  V! 4       4       R# )c                   &   a  ] tR t^t o R tRtV tR# )QTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set.<locals>.Xc                    \        4       # r   r~   r%   s   &r   rw   UTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set.<locals>.X.run   s
    #~%r   r
   Nr   r   r   r   rw   r   r,   r-   s   @r   Xr      s     & &r   r   N)r"   rz   )r   r   s   & r   4test_trace_events_into_greenlet_subclass_already_setFTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set   s&    	&!! 	& 	11!#6r   c                    VP                  4        \        4        VP                  4        V P                  VP                  . RO4       R# )rh   N)rg   ri   rk   rx   ri   rk   rl   rm   )r8   rc   r)   r<   r   )r   rF   rK   s   &&&r   /_check_trace_events_from_greenlet_sets_profilerATestPythonTracing._check_trace_events_from_greenlet_sets_profiler   s3    	
 	*
 		r   c                t   a \        4       oV3R  lpV P                  \        P                  ! V4      S4       R# )c                  8   < S P                  4        \        4       # r   r&   rc   )rK   s   r   rw   QTestPythonTracing.test_trace_events_from_greenlet_func_sets_profiler.<locals>.run   s    >!r   N)rP   r   r"   )r   rw   rK   s   & @r   2test_trace_events_from_greenlet_func_sets_profilerDTestPythonTracing.test_trace_events_from_greenlet_func_sets_profiler   s0    	" 	<<X=N=Ns=S=C	Er   c                   a \        4       o ! V3R  lR\        P                  4      pV P                  V! 4       S4       R# )c                   .   <a  ] tR t^t o V3R ltRtV tR# )STestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profiler.<locals>.Xc                8   < SP                  4        \        4       # r   r   rJ   s   &r   rw   WTestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profiler.<locals>.X.run   s      "#~%r   r
   Nr   )r.   rK   s   @r   r   r      s     & &r   r   N)rP   r"   r   )r   r   rK   s   & @r   6test_trace_events_from_greenlet_subclass_sets_profilerHTestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profiler   s0    	&!! 	&
 	<<QS&Ir   c                0  aaa \        4       oR oR oVV3R lpVV3R lp\        P                  ! V4      o\        P                  ! V4      oSP                  4       pV P                  V^*4       \	        4        V P                  SP
                  . RO4       R # )Nc                  p   < SP                  4        \        4        S P                  4        \        4        ^*# ra   )r&   rc   r8   r?   rK   s   r   g1_runPTestPythonTracing.test_trace_events_multiple_greenlets_switching.<locals>.g1_run   s%    NIIKNr   c                  p   < \        4        SP                  4        \        4        S P                  4        R # r   )rc   r)   r8   r>   rK   s   r   g2_runPTestPythonTracing.test_trace_events_multiple_greenlets_switching.<locals>.g2_run   s     NOONIIKr   )	rg   ri   rk   rn   r   )rj   r   ri   rk   rl   rm   rP   r"   r8   r<   rc   r   r   r   r   xr>   r?   rK   s   &   @@@r   .test_trace_events_multiple_greenlets_switching@TestPythonTracing.test_trace_events_multiple_greenlets_switching   sy    		 v&v&IIKB 
*
 
	r   c                p  aaa \        4       oR oR oVV3R lpVV3R lp\        P                  ! V4      o\        P                  ! V4      oSP                  4        SP                  4        SP                  4       pV P                  V^*4       \	        4        V P                  SP
                  . RO4       R # )Nc                     < \         P                  ! 4       P                  P                  4        SP	                  4        \        4        S P                  4        \        4        ^*# ra   )r"   r:   parentr8   r&   rc   r   s   r   r   YTestPythonTracing.test_trace_events_multiple_greenlets_switching_siblings.<locals>.g1_run   s@    !((//1NIIKNr   c                     < \         P                  ! 4       P                  P                  4        \	        4        SP                  4        \	        4        S P                  4        R # r   )r"   r:   r   r8   rc   r)   r   s   r   r   YTestPythonTracing.test_trace_events_multiple_greenlets_switching_siblings.<locals>.g2_run  s;    !((//1NOONIIKr   )rg   ri   rk   r   ri   rk   rl   rm   r   r   s   &   @@@r   7test_trace_events_multiple_greenlets_switching_siblingsITestPythonTracing.test_trace_events_multiple_greenlets_switching_siblings   s     		 v&v& 			 			 IIKB 	*
 		r   r
   )r   r   r   r   rN   maxDiffro   rt   rz   r   r   r   r   r   unittestskipIfASSERTION_BUILD_PY312r   r   r   r,   r-   s   @r   re   re   s   sy      G&
J7 EJ __+,# -#J __+,/ -/r   re   __main__)
__future__r   r[   	sysconfigr"   r    r   r   get_config_varsplithasattrr   	Exceptionr	   objectr   r0   rP   rc   re   r   r=   r
   r   r   <module>r      s    % 
      
  ##E*6 	)2259??AAS,-7 		 	)V )(.&( .&b&6 &"t tn zMMO r   