
     f(                    J    d dl mZ d dlmZ d dlZerd dlZddZddZddZdS )    )annotations)TYPE_CHECKINGNreturntuple[tuple[str, int], ...]c                   K   g dfd} t          j                    4 d{V }t          d          D ]%}|                    | t	          |                     &	 ddd          d{V  n# 1 d{V swxY w Y   t                    S )	zDReturns a scheduler-dependent value we can use to check determinism.namestrr   Nonec                   K   t          d          D ]=}                    | |f           t          j                                         d {V  >d S )N2   )rangeappendtriolowlevel
checkpoint)r   itraces     i/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_tests/test_scheduler_determinism.pytracerzscheduler_trace.<locals>.tracer   se      r 	- 	-ALL$###-**,,,,,,,,,,	- 	-    N   )r   r	   r   r
   )r   open_nurseryr   
start_soonr	   tuple)r   nurseryr   r   s      @r   scheduler_tracer      s.     E- - - - - -
  "" / / / / / / /gq 	/ 	/Avs1vv....	// / / / / / / / / / / / / / / / / / / / / / / / / / / <<s   6A..
A8;A8r
   c                     d t          d          D             } t          t          |                     t          |           k    sJ d S )Nc                @    g | ]}t          j        t                    S  )r   runr   ).0_s     r   
<listcomp>z@test_the_trio_scheduler_is_not_deterministic.<locals>.<listcomp>   s"    ;;;Adh'';;;r   
   )r   lenset)tracess    r   ,test_the_trio_scheduler_is_not_deterministicr(      sF    ;;r;;;Fs6{{s6{{******r   monkeypatchpytest.MonkeyPatchc                   |                      t          j        j        dd           g }t	          d          D ]}t          j        j        j                                        }	 t          j        j        j                            d           |                    t          j	        t                               t          j        j        j                            |           # t          j        j        j                            |           w xY wt          |          dk    sJ t          t          |                    dk    sJ d S )N_ALLOW_DETERMINISTIC_SCHEDULINGTr$   r      )setattrr   _core_runr   _rgetstateseedr   r    r   setstater%   r&   )r)   r'   r"   states       r   2test_the_trio_scheduler_is_deterministic_if_seededr6   !   s
    
)JDQQQF2YY / /
"++--	/JO##A&&&MM$(?33444JO''....DJO''....v;;"s6{{q      s   #AC""+D)r   r   )r   r
   )r)   r*   r   r
   )	
__future__r   typingr   r   pytestr   r(   r6   r   r   r   <module>r:      s    " " " " " "              MMM    + + + +! ! ! ! ! !r   