Ë
    _§1h  ã                  ó  — d dl mZ d dlZd dlZd dlmZ d dlZd dlZ G d„ de«      Z	dd„Z
dd„Zdd„Z	 	 	 	 	 	 dd	„Zdd
„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Zy)é    )ÚannotationsN)ÚProtocolc                  ó   — e Zd Zddd„Zy)ÚRawInputc                 ó   — y ©N© )ÚselfÚprompts     úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tests/test_repl.pyÚ__call__zRawInput.__call__   s   � ó    N©Ú ©r   ÚstrÚreturnr   )Ú__name__Ú
__module__Ú__qualname__r   r	   r   r   r   r      s   „ Ý4r   r   c                ó4   ‡‡— t        | «      Šg Šddˆˆfd„}|S )z¨
    Pass in a list of strings.
    Returns a callable that returns each string, each time its called
    When there are not more strings to return, raise EOFError
    c                óf   •— ‰j                  | «       	 t        ‰«      S # t        $ r t        d ‚w xY wr   )ÚappendÚnextÚStopIterationÚEOFError)r   Ú	cmds_iterÚpromptss    €€r   Ú_raw_helperz$build_raw_input.<locals>._raw_helper   s5   ø€ Ø�‰�vÔð	%Ü˜	“?Ð"øÜò 	%Ü Ð$ð	%ús   ”
 Ÿ0r   r   )Úiter)Úcmdsr   r   r   s     @@r   Úbuild_raw_inputr"      s    ù€ ô �T“
€IØ€G÷%ð Ðr   c                 óž   — t        dg«      }  | «       dk(  sJ ‚t        j                  t        «      5   | «        ddd«       y# 1 sw Y   yxY w)z"Quick test of our helper function.Úcmd1N)r"   ÚpytestÚraisesr   )Ú	raw_inputs    r   Útest_build_raw_inputr(   #   sD   € ä  Ó)€IÙ‹;˜&Ò Ð Ð Ü	�‰”xÓ	 ñ ÙŒ÷÷ ñ ús   ²AÁAc                 ó   — dt         iS )NÚ__builtins__)r*   r	   r   r   Úbuild_localsr+   .   s   € ØœLÐ)Ð)r   c              ƒ  óB  K  — t         j                  j                  t        «       ¬«      }t	        g d¢«      }|j                  |d|«       t         j                  j                  |«      ƒ d{  –—†  | j                  «       \  }}|j                  «       g d¢k(  sJ ‚y7 Œ/­w)zŽ
    Run some basic commands through the interpreter while capturing stdout.
    Ensure that the interpreted prints the expected results.
    ©Úrepl_locals)zx = 1zprint(f'{x=}')ú'hello'zdef func():z  print(x + 1)r   zfunc()zasync def afunc():z
  return 4r   zawait afunc()ú
import sysz"sys.stdout.write('hello stdout\n')r'   N)zx=1r/   Ú2Ú4zhello stdoutÚ13)	ÚtrioÚ_replÚTrioInteractiveConsoler+   r"   ÚsetattrÚrun_replÚ
readouterrÚ
splitlines©ÚcapsysÚmonkeypatchÚconsoler'   ÚoutÚ_errs         r   Útest_basic_interactionrA   2   s‰   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜò	
ó€Ið, ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø×!Ñ!Ó#�I€CˆØ�>‰>ÓÒQÒQÐQÑQð 'ús   ‚A+BÁ-BÁ.0Bc              ƒ  óH  K  — t         j                  j                  t        «       ¬«      }t	        dg«      }| j                  |d|«       t        j                  t        «      5  t         j                  j                  |«      ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­w)Nr-   zraise SystemExitr'   )
r4   r5   r6   r+   r"   r7   r%   r&   Ú
SystemExitr8   )r=   r>   r'   s      r   Ú"test_system_exits_quit_interpreterrD   W   s†   è ø€ Ü�j‰j×/Ñ/¼L»NÐ/ÓK€GÜàð	
ó€Ið
 ×Ñ˜ ¨iÔ8Ü	�‰”zÓ	"ñ +Ü�j‰j×!Ñ! 'Ó*×*Ð*÷+ð +Ø*ø÷+ð +üs0   ‚A!B"Á##BÂBÂBÂ	B"ÂBÂBÂB"c              ƒ  ó8  K  — t         j                  j                  t        «       ¬«      }t	        g d¢«      }|j                  |d|«       t         j                  j                  |«      ƒ d {  –—†  | j                  «       \  }}d|v sJ ‚d|vsJ ‚d|v sJ ‚y 7 Œ*­w)Nr-   )z"import signal, trio, trio.lowlevelzasync def f():zh  trio.lowlevel.spawn_system_task(    trio.to_thread.run_sync,    signal.raise_signal, signal.SIGINT,  )z  await trio.sleep_forever()z  print('should not see this')r   z	await f()z print('AFTER KeyboardInterrupt')r'   ÚKeyboardInterruptÚshouldzAFTER KeyboardInterrupt©r4   r5   r6   r+   r"   r7   r8   r9   ©r<   r=   r>   r'   r?   Úerrs         r   Útest_KI_interruptsrK   c   s�   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜò	
ó€Ið ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø× Ñ Ó"�H€CˆØ #Ñ%Ð%Ð%Ø˜3ÑÐÐØ$¨Ñ+Ð+Ñ+ð	 'úó   ‚A+BÁ-BÁ.+Bc              ƒ  ó   K  — t         j                  j                  t        «       ¬«      }t	        g d¢«      }|j                  |d|«       t         j                  j                  |«      ƒ d {  –—†  | j                  «       \  }}d|v sJ ‚y 7 Œ­w)Nr-   )r0   úif sys.version_info < (3, 11):ú/  from exceptiongroup import BaseExceptionGroupr   z<raise BaseExceptionGroup('', [RuntimeError(), SystemExit()])ú!print('AFTER BaseExceptionGroup')r'   úAFTER BaseExceptionGrouprH   r;   s         r   Útest_system_exits_in_exc_grouprR      sƒ   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜò	
ó	€Ið ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø×!Ñ!Ó#�I€Cˆð &¨Ñ,Ð,Ñ,ð	 'úó   ‚A+BÁ-BÁ.Bc              ƒ  ó   K  — t         j                  j                  t        «       ¬«      }t	        g d¢«      }|j                  |d|«       t         j                  j                  |«      ƒ d {  –—†  | j                  «       \  }}d|v sJ ‚y 7 Œ­w)Nr-   )r0   rN   rO   r   zraise BaseExceptionGroup(z?  '', [BaseExceptionGroup('', [RuntimeError(), SystemExit()])])rP   r'   rQ   rH   r;   s         r   Ú%test_system_exits_in_nested_exc_grouprU   –   sƒ   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜò	
ó
€Ið ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø×!Ñ!Ó#�I€Cˆð &¨Ñ,Ð,Ñ,ð	 'úrS   c              ƒ  ó8  K  — t         j                  j                  t        «       ¬«      }t	        ddg«      }|j                  |d|«       t         j                  j                  |«      ƒ d {  –—†  | j                  «       \  }}d|vsJ ‚d|vsJ ‚d|v sJ ‚y 7 Œ*­w)Nr-   zraise BaseExceptionúprint('AFTER BaseException')r'   ú_threads.pyú_repl.pyúAFTER BaseExceptionrH   rI   s         r   Útest_base_exception_capturedr[   ®   s¥   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜð "Ø*ð	
ó€Ið ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø× Ñ Ó"�H€CˆØ Ñ#Ð#Ð#Ø˜SÑ Ð Ð Ø  CÑ'Ð'Ñ'ð	 'úrL   c              ƒ  ó   K  — t         j                  j                  t        «       ¬«      }t	        ddg«      }|j                  |d|«       t         j                  j                  |«      ƒ d {  –—†  | j                  «       \  }}d|v sJ ‚y 7 Œ­w)Nr-   z&raise ExceptionGroup('', [KeyError()])zprint('AFTER ExceptionGroup')r'   zAFTER ExceptionGrouprH   r;   s         r   Útest_exc_group_capturedr]   Â   s‰   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜð 5Ø+ð	
ó€Ið ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø×!Ñ!Ó#�I€CˆØ! SÑ(Ð(Ñ(ð 'úrS   c              ƒ  ó8  K  — t         j                  j                  t        «       ¬«      }t	        g d¢«      }|j                  |d|«       t         j                  j                  |«      ƒ d {  –—†  | j                  «       \  }}d|vsJ ‚d|vsJ ‚d|v sJ ‚y 7 Œ*­w)Nr-   )z-async def async_func_raises_base_exception():z  raise BaseExceptionr   z(await async_func_raises_base_exception()rW   r'   rX   rY   rZ   rH   rI   s         r   Ú*test_base_exception_capture_from_coroutiner_   Ô   s�   è ø€ ô �j‰j×/Ñ/¼L»NÐ/ÓK€GÜò	
ó
€Ið ×Ñ˜ ¨iÔ8Ü
�*‰*×
Ñ
˜gÓ
&×&Ð&Ø× Ñ Ó"�H€CˆØ Ñ#Ð#Ð#Ø˜SÑ Ð Ð Ø  CÑ'Ð'Ñ'ð	 'úrL   c                 óv   — t        j                  t        j                  ddgd¬«      } | j                  dk(  sJ ‚y)zL
    Basic smoke test when running via the package __main__ entrypoint.
    z-mr4   s   exit())Úinputr   N)Ú
subprocessÚrunÚsysÚ
executableÚ
returncode)Úrepls    r   Útest_main_entrypointrh   ì   s1   € ô �>‰>œ3Ÿ>™>¨4°Ð8À	ÔJ€DØ�?‰?˜aÒÐÑr   )r!   z	list[str]r   r   )r   ÚNone)r   zdict[str, object])r<   zpytest.CaptureFixture[str]r=   úpytest.MonkeyPatchr   ri   )r=   rj   r   ri   )Ú
__future__r   rb   rd   Útypingr   r%   Ú
trio._replr4   r   r"   r(   r+   rA   rD   rK   rR   rU   r[   r]   r_   rh   r	   r   r   ú<module>rn      s  ðÝ "ã Û 
Ý ã ã ô5ˆxô 5óó&ó*ð"RØ&ð"Rà#ð"Rð 
ó"RóJ	+ð,Ø&ð,à#ð,ð 
ó,ð8-Ø&ð-à#ð-ð 
ó-ð.-Ø&ð-à#ð-ð 
ó-ð0(Ø&ð(à#ð(ð 
ó(ð()Ø&ð)à#ð)ð 
ó)ð$(Ø&ð(à#ð(ð 
ó(ô0 r   