
    ,h                    D   d dl mZ d dlZd dlmZ d dlZddlmZ ddlm	Z	m
Z
 ej                  j                  ej                  dk7  d	      Zej                  dk(  serJ ej                  dk(  rd d
lmZ ddlmZmZ ddlmZmZ ddZddZddZddZddZddZddZy)    )annotationsN)TYPE_CHECKING   )_core)check_one_way_streamwait_all_tasks_blockedwin32zwindows only)reason)pipe)_handlekernel32)PipeReceiveStreamPipeSendStreamc                 P   K   t               \  } }t        |      t        |       fS w)zMakes a new pair of pipes.)r   r   r   )rws     `/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/trio/_tests/test_windows_pipes.py	make_piper      s'     VFQ!/222s   $&c                     t        j                  t              5  t        d       d d d        t        j                  t              5  t	        d        d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)Ng      ?)pytestraises	TypeErrorr   r        r   test_pipe_typecheckr      sY    	y	! s	y	!  $       s   AA(A%(A1c                   K   t               \  } }t        |      }t        |       }t        j                  t        |             sJ t        j                  t        |            sJ t        j                  t        d      5  |j                          d {    d d d        t        j                  t        d      5  |j                          d {    d d d        y 7 I# 1 sw Y   HxY w7 # 1 sw Y   y xY ww)Nz&^\[WinError 6\] The handle is invalid$)match)
r   r   r   r   CloseHandler   r   r   OSErroraclose)r   r   send_streamreceive_streams       r   test_pipe_error_on_closer#   &   s     6DAq #K&q)N
++
++	w&O	P #  """#	w&O	P &##%%%& & 	## # 	&& &sZ   A?C;C!CC!#C;=C/C-C/	C;C!!C*&C;-C//C84C;c                 :  K   t                d {   \  dddfd} dfd}t        j                         4 d {   }|j                  |        |j                  |       d d d       d {    y 7 k7 97 	# 1 d {  7  sw Y   y xY ww)Ni      c                    K   4 d {    t              } t              D ]  }j                  |        d {     d d d       d {    y 7 I7 7 	# 1 d {  7  sw Y   y xY wwN)	bytearrayrangesend_all)big_countreplicaswrites     r   senderz#test_pipes_combined.<locals>.sender;   sn      	* 	*E"C8_ *nnS)))*	* 	* 	* *	* 	* 	* 	*sT   A/AA/.AAAA/AA/AA/A, A#!A,(A/c                   K   4 d {    t                d {    d} 	 t        j                  d       d {         }|sn| |z  } +| z  k(  sJ d d d       d {    y 7 _7 O7 07 # 1 d {  7  sw Y   y xY ww)Nr   i  )r   lenreceive_some)total_receivedreceivedr-   readr.   s     r   readerz#test_pipes_combined.<locals>.readerA   s      
	6 
	6(***NT%6%6t%<<=(*  "UX%555
	6 
	6 
	6*  =
	6 
	6 
	6 
	6sd   BA*BA2A, A2A.
A2B$A0%B,A2.A20B2B8A;9B BreturnNone)r   r   open_nursery
start_soon)r0   r7   nr-   r6   r.   r/   s      @@@@r   test_pipes_combinedr>   6   s     !#KE4EH*6 !!#  q	V	V  / $.    sW   BB 3BB	B#B/B:B;BBBBBBBc                 X  K   t                d {   \  } }| 4 d {    |4 d {    	 d d d       d {    d d d       d {    t        j                  t        j                        5  | j                  d       d {    d d d        t        j                  t        j                        5  |j                  d       d {    d d d        y 7 7 7 7 # 1 d {  7  sw Y   xY w7 # 1 d {  7  sw Y   xY w7 # 1 sw Y   xY w7 O# 1 sw Y   y xY ww)Nr   
   )r   r   r   r   ClosedResourceErrorr*   r3   )r   r   s     r   test_async_withrB   S   s    DAq  !      
u00	1 jjo	u00	1 !nnR   ! !           	  	!! !s   D*CD*CD*C9CC9C"C9C C9D*
C7'D*2DDD+D*7DDD
D*D*C9 C9"C4	(C+)C4	0C97D*9D?D DD*DDD*DD'#D*c                 T  K   t                d {   \  } t        j                         4 d {   }dfd}|j                  |       t	        d       d {    j                          d {    d d d       d {    y 7 w7 Y7 17 7 # 1 d {  7  sw Y   y xY ww)Nc                    K   t        j                  t        j                        5 } 	 j	                  d       d {    7 # 1 sw Y   nxY wdt         j                        v sJ y w)Ns   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzanother task)r   r   r   rA   r*   strvalue)excinfor   s    r   write_foreverz.test_close_during_write.<locals>.write_foreverb   sb     u889 2W**[111 12 2 "S%7777s    $A+AAAA
!A+g?r8   )r   r   r;   r<   r   r    )_rnurseryrH   r   s      @r   test_close_during_writerK   ^   s     +EAr!!# 
 
w	8 	=)$S)))hhj
 
 
 
 	*
 
 
 
sx   B(B	B(BB(&BBB3B4B8B(BB(B(BBB(B%BB%!B(c                 @   K   t        t        d        d {    y 7 wr'   )r   r   r   r   r   test_pipe_fullyrM   m   s      y$
///s   )r9   z(tuple[PipeSendStream, PipeReceiveStream]r8   )
__future__r   systypingr   r    r   testingr   r   markskipifplatform
pytestmarkasyncio.windows_utilsr   _core._windows_cffir   r   _windows_pipesr   r   r   r   r#   r>   rB   rK   rM   r   r   r   <module>rZ      s    " 
     B [[ 7O
 LLG= <<7*7B3 & :!0r   