ó
    •JÕiä  ã                   ój   • S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
  S	S jr " S S5      rg)
z.
Helper to run a script in a pseudo-terminal.
é    N)Ú	ExitStack)ÚEIO)Úimport_modulec                 óh  • [        S5      n[        5       nUR                  5       u  pV[        R                  SU 4nUc3  0 [
        R                  R                  5       ES[
        R                  0EnO UR                  S[
        R                  5        [        R                  " XvXfUS9n[
        R                  " U5        [        5        n	U	R                  U5        S n
U	R                  X¨5        U	R                  [
        R                  U5        U	R                  [         R"                  " 5       5      nUR%                  U[         R&                  [         R(                  -  5        [
        R*                  " US5         UR-                  5        H·  u  pÍU[         R&                  -  (       a=   [
        R.                  " US5      nU(       d  Us  sS S S 5        $ UR7                  U5        U[         R(                  -  (       d  Mt   U[
        R8                  " XQ5      S  nU(       a  M—  UR;                  U[         R&                  5        M¹     MÍ  ! [0         a!  nUR2                  [4        :w  a  e Sn S nAN®S nAff = f! [0         a!  nUR2                  [4        :w  a  e Sn S nANƒS nAff = f! , (       d  f       g = f)	NÚptyz-cÚINPUTRC)ÚstdinÚstdoutÚstderrÚenvc                 óF   •  U R                  5         g ! [         a     g f = f©N)Ú	terminateÚProcessLookupError)Úprocs    ÚLib\test\support\pty_helper.pyr   Úrun_pty.<locals>.terminate   s#   € ðØ—‘Õ øÜ%ó áðús   ‚ “
 Ÿ Fi   ó    )r   Ú	bytearrayÚopenptyÚsysÚ
executableÚosÚenvironÚcopyÚdevnullÚ
setdefaultÚ
subprocessÚPopenÚcloser   Úenter_contextÚcallbackÚ	selectorsÚSelectSelectorÚregisterÚ
EVENT_READÚEVENT_WRITEÚset_blockingÚselectÚreadÚOSErrorÚerrnor   ÚextendÚwriteÚmodify)ÚscriptÚinputr   r   ÚoutputÚmasterÚslaveÚargsr   Úcleanupr   ÚselÚ_ÚeventsÚchunkÚerrs                   r   Úrun_ptyr<      s  € Ü
˜Ó
€CÜ‹[€FØ—k‘k“m�O€VÜ�N‰N˜D &Ð)€Dð �{Ø:”—‘—‘Ó"Ð: I¬r¯z©zÑ:‰à�‰�y¤"§*¡*Ô-ä×Ò˜D°eÈsÑS€DÜ‡H‚HˆU„OÜ	Œ˜Ø×Ñ˜dÔ#ò	ð 	×Ñ˜Ô)Ø×ÑœŸ™ 6Ô*ð ×#Ñ#¤I×$<Ò$<Ó$>Ó?ˆØ�‰�VœY×1Ñ1´I×4IÑ4IÑIÔJÜ
�Š˜ Ô&ØØ"Ÿz™zž|‘�ØœI×0Ñ0×0ð$Ü "§¢¨°Ó 8˜ö !Ø%™÷; 
‰ð< —M‘M %Ô(ØœI×1Ñ1×1Ñ1ð$Ø %¤b§h¢h¨vÓ&=Ð&>Ð ?˜÷ !˜5ØŸ
™
 6¬9×+?Ñ+?Ö@ñ+  ,ñ øô
 #ó $àŸ9™9¬Ó+Ø!Ø #�ûð	$ûô #ó $àŸ9™9¬Ó+Ø!Ø #�ûð	$ú÷E 
�úsm   ÃC J#Æ(IÆ?
J#Ç'J#Ç?I5ÈJ#È!&J#É
I2ÉI-É(J#É-I2É2J#É5
J É?JÊJ#ÊJ Ê J#Ê#
J1c                   ó$   • \ rS rSrSrS rS rSrg)Ú	FakeInputéK   zó
A fake input stream for pdb's interactive debugger.  Whenever a
line is read, print it (to simulate the user typing it), and then
return it.  The set of lines to return is specified in the
constructor; they should not have trailing newlines.
c                 ó   • Xl         g r   ©Úlines)ÚselfrB   s     r   Ú__init__ÚFakeInput.__init__R   s   € Ø�
r   c                 óX   • U R                   R                  S5      n[        U5        US-   $ )Nr   Ú
)rB   ÚpopÚprint)rC   Úlines     r   ÚreadlineÚFakeInput.readlineU   s%   € Ø�z‰z�~‰~˜aÓ ˆÜˆdŒØ�d‰{Ðr   rA   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rD   rK   Ú__static_attributes__© r   r   r>   r>   K   s   † ñòõr   r>   )s   dummy inputN)rQ   r   r#   r   r   Ú
contextlibr   r,   r   Útest.support.import_helperr   r<   r>   rS   r   r   Ú<module>rV      s2   ðñó 
Û Û Û 
Ý  Ý å 4ô7A÷|ò r   