§
    øÛg„-  ã                   óÖ  — d dl Z d dlZd dlZd dlZ	 d dlmZ n# e$ r	 d dlmZ Y nw xY wej        dk     r G d„ de¦  «        ZneZ	 d dlm	Z	 n# e$ r  G d„ de¦  «        Z	Y nw xY wd	d
ddœZ
 G d„ d¦  «        Zdd„Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z	 e j        ZdS # e$ r e j        dk    rdZY dS dZY dS w xY w)é    N)ÚStringIO©é   r   c                   ó   — e Zd Zd„ ZdS )ÚTextIOc                 ó–   — t          |t          ¦  «        s t          |t          | dd¦  «        d¦  «        }t          j        | |¦  «        S )NÚ	_encodingúUTF-8Úreplace)Ú
isinstanceÚunicodeÚgetattrr   Úwrite©ÚselfÚdatas     úD/granary/edev/quantum/lib/python3.11/site-packages/py/_io/capture.pyr   zTextIO.write   sD   € Ý˜d¥GÑ,Ô,ð UÝ˜t¥W¨T°;ÀÑ%HÔ%HÈ)ÑTÔT�Ý”> $¨Ñ-Ô-Ð-ó    N©Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      ó#   € € € € € ð	.ð 	.ð 	.ð 	.ð 	.r   r   )ÚBytesIOc                   ó   — e Zd Zd„ ZdS )r   c                 óz   — t          |t          ¦  «        rt          d|›�¦  «        ‚t          j        | |¦  «        S )Nznot a byte value: )r   r   Ú	TypeErrorr   r   r   s     r   r   zBytesIO.write   s<   € Ý˜$¥Ñ(Ô(ð AÝ�i¸¸Ð ?Ñ@Ô@Ð@Ý”> $¨Ñ-Ô-Ð-r   Nr   r   r   r   r   r      r   r   r   ÚstdinÚstdoutÚstderr)r   é   é   c                   ó,   — e Zd ZdZd	d„Zd„ Zd„ Zd„ ZdS )
Ú	FDCapturez5 Capture IO to/from a given os-level filedescriptor. NTFc                 ó^  — || _         |€?|dk    r9t          j        d¦  «        }t          |d¬¦  «        }|                     ¦   «          || _        t          j        | j         ¦  «        | _        |r%t          t          t          |         ¦  «        | _        |r|                      ¦   «          dS dS )z» save targetfd descriptor, and open a new
            temporary file there.  If no tmpfile is
            specified a tempfile.Tempfile() will be opened
            in text mode.
        Nr   zwb+r
   )Úencoding)ÚtargetfdÚtempfileÚTemporaryFileÚdupfileÚcloseÚtmpfileÚosÚdupÚ_savefdr   ÚsysÚpatchsysdictÚ_oldsysÚstart)r   r(   r-   ÚnowÚpatchsysÚfs         r   Ú__init__zFDCapture.__init__"   s£   € ð !ˆŒØˆ?˜x¨1š}˜}ÝÔ& uÑ-Ô-ˆAÝ˜a¨'Ð2Ñ2Ô2ˆGØ�GŠG‰IŒIˆIØˆŒÝ”v˜dœmÑ,Ô,ˆŒØð 	@Ý"¥3­°XÔ(>Ñ?Ô?ˆDŒLØð 	Ø�JŠJ‰LŒLˆLˆLˆLð	ð 	r   c                 óœ  — 	 t          j        | j        ¦  «         n# t          $ r t	          d¦  «        ‚w xY w| j        dk    rš| j        s“t          j        t          t           j	        ¦  «        }t          j
        |d¦  «         t          j        |¦  «         t          | d¦  «        r4t          t          t          | j                 t!          ¦   «         ¦  «         d S d S t          j
        | j                             ¦   «         | j        ¦  «         t          | d¦  «        r-t          t          t          | j                 | j        ¦  «         d S d S )Nz;saved filedescriptor not valid, did you call start() twice?r   r3   )r.   Úfstatr0   ÚOSErrorÚ
ValueErrorr(   r-   ÚopenÚdevnullpathÚO_RDONLYÚdup2r,   ÚhasattrÚsetattrr1   r2   ÚDontReadFromInputÚfileno)r   Úfds     r   r4   zFDCapture.start4   s<  € ð	/ÝŒH�T”\Ñ"Ô"Ð"Ð"øÝð 	/ð 	/ð 	/Ýð .ñ /ô /ð /ð	/øøøð Œ=˜AÒÐ d¤lÐÝ”�¥b¤kÑ2Ô2ˆBÝŒG�B˜‰NŒNˆNÝŒH�R‰LŒLˆLÝ�t˜YÑ'Ô'ð OÝ��\¨$¬-Ô8Õ:KÑ:MÔ:MÑNÔNÐNÐNÐNðOð Oõ ŒG�D”L×'Ò'Ñ)Ô)¨4¬=Ñ9Ô9Ð9Ý�t˜YÑ'Ô'ð HÝ��\¨$¬-Ô8¸$¼,ÑGÔGÐGÐGÐGðHð Hs   ‚ œ6c                 ó@  — t          j        | j        | j        ¦  «         t          j        | j        ¦  «         | j        dk    r| j                             d¦  «         t          | d¦  «        r+t          t          t          | j                 | j        ¦  «         | j        S )zF unpatch and clean up, returns the self.tmpfile (file object)
        r   r3   )r.   r@   r0   r(   r,   r-   ÚseekrA   rB   r1   r2   r3   ©r   s    r   ÚdonezFDCapture.doneE   s…   € õ 	Œ�”˜dœmÑ,Ô,Ð,Ý
Œ�”ÑÔÐØŒ=˜AÒÐØŒL×Ò˜aÑ Ô Ð Ý�4˜Ñ#Ô#ð 	DÝ•C� d¤mÔ4°d´lÑCÔCÐCØŒ|Ðr   c                 ó
  — t          j        ¦   «         }	 t          j        | j        |                     ¦   «         ¦  «         |                     |¦  «         |                     ¦   «          dS # |                     ¦   «          w xY w)z8 write a string to the original file descriptor
        N)r)   r*   r.   r@   r0   rD   r   r,   )r   r   Útempfps      r   ÚwriteorgzFDCapture.writeorgP   sh   € õ Ô'Ñ)Ô)ˆð	ÝŒG�D”L &§-¢-¡/¤/Ñ2Ô2Ð2Ø�LŠL˜ÑÔÐà�LŠL‰NŒNˆNˆNˆNøˆF�LŠL‰NŒNˆNˆNøøøs   •AA, Á,B)NTF)r   r   r   Ú__doc__r8   r4   rI   rL   r   r   r   r%   r%      s^   € € € € € Ø?Ð?ðð ð ð ð$Hð Hð Hð"	ð 	ð 	ðð ð ð ð r   r%   Fc                 ól  — 	 |                       ¦   «         }|p| j        }n# t          $ r |r‚ | cY S w xY wt          j        |¦  «        }t
          j        dk    r3|�|                     dd¦  «        }d}t          j        ||||d¬¦  «        S t          j        |||¦  «        } |�t          | |¦  «        S | S )ae   return a new open file object that's a duplicate of f

        mode is duplicated if not given, 'buffering' controls
        buffer size (defaulting to no buffering) and 'raising'
        defines whether an exception is raised when an incompatible
        file object is passed in (if raising is False, the file
        object itself will be returned)
    r   NÚbÚ T)Úclosefd)
rD   ÚmodeÚAttributeErrorr.   r/   r1   Úversion_infor   ÚfdopenÚEncodedFile)r7   rR   Ú	bufferingÚraisingr'   rE   Únewfds          r   r+   r+   [   sÔ   € ðØ�XŠX‰ZŒZˆØˆ~�q”vˆˆøÝð ð ð Øð 	ØØˆˆˆðøøøõ ŒF�2‰JŒJ€EÝ
Ô˜5Ò Ð ØÐØ—<’<  RÑ(Ô(ˆDØˆIÝŒy˜  i°À4ÐHÑHÔHÐHåŒI�e˜T 9Ñ-Ô-ˆØÐÝ˜q (Ñ+Ô+Ð+Øˆs   ‚   2±2c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )rV   c                 ó"   — || _         || _        d S ©N)Ú_streamr'   )r   r]   r'   s      r   r8   zEncodedFile.__init__x   s   € ØˆŒØ ˆŒˆˆr   c                 óä   — t          |t          ¦  «        r|                     | j        ¦  «        }n%t          |t          ¦  «        rnt	          |¦  «        }| j                             |¦  «         d S r\   )r   r   Úencoder'   Ústrr]   r   )r   Úobjs     r   r   zEncodedFile.write|   se   € Ý�c�7Ñ#Ô#ð 	Ø—*’*˜Tœ]Ñ+Ô+ˆCˆCÝ˜�SÑ!Ô!ð 	Øå�c‘(”(ˆCØŒ×Ò˜3ÑÔÐÐÐr   c                 óZ   — d                      |¦  «        }|                      |¦  «         d S )NrP   )Újoinr   )r   Úlinelistr   s      r   Ú
writelineszEncodedFile.writelines…   s+   € Ø�wŠw�xÑ Ô ˆØ�
Š
�4ÑÔÐÐÐr   c                 ó,   — t          | j        |¦  «        S r\   )r   r]   )r   Únames     r   Ú__getattr__zEncodedFile.__getattr__‰   s   € Ý�t”| TÑ*Ô*Ð*r   N)r   r   r   r8   r   re   rh   r   r   r   rV   rV   w   sP   € € € € € ð!ð !ð !ð ð  ð  ðð ð ð+ð +ð +ð +ð +r   rV   c                   ó6   — e Zd Zd„ Z ee¦  «        Zd„ Zd„ ZdS )ÚCapturec                 óš   —  | ¦   «         }	  ||i |¤Ž}|                      ¦   «         \  }}n# |                      ¦   «         \  }}w xY w|||fS )zÿ return a (res, out, err) tuple where
            out and err represent the output/error output
            during function execution.
            call the given function with args/kwargs
            and capture output/error during its execution.
        )Úreset)ÚclsÚfuncÚargsÚkwargsÚsoÚresÚoutÚerrs           r   ÚcallzCapture.call�   sd   € ð ˆS‰UŒUˆð	"Ø�$˜Ð' Ð'Ð'ˆCà—x’x‘z”z‰HˆC��ø�r—x’x‘z”z‰HˆC�Ð!Ð!Ð!Ð!Ø�C˜ˆ}Ðs	   Œ, ¬Ac                 ób  — t          | d¦  «        rt          d¦  «        ‚d| _        |                      d¬¦  «        \  }}d\  }}|r/|j        s(|                     ¦   «         }|                     ¦   «          |r5||k    r/|j        s(|                     ¦   «         }|                     ¦   «          ||fS )z@ reset sys.stdout/stderr and return captured output as strings. Ú_resetzwas already resetTF)Úsave)rP   rP   )rA   r<   rw   rI   ÚclosedÚreadr,   )r   ÚoutfileÚerrfilers   rt   s        r   rl   zCapture.resetœ   s²   € å�4˜Ñ"Ô"ð 	2ÝÐ0Ñ1Ô1Ð1ØˆŒØŸ9š9¨%˜9Ñ0Ô0Ñˆ�Ø‰ˆˆSØð 	˜7œ>ð 	Ø—,’,‘.”.ˆCØ�MŠM‰OŒOˆOØð 	�w 'Ò)Ð)°'´.Ð)Ø—,’,‘.”.ˆCØ�MŠM‰OŒOˆOØ�Cˆxˆr   c                 ó\   — |                       ¦   «         }|                      ¦   «         \  }}|S )z7 return current snapshot captures, memorize tempfiles. )Ú
readouterrrI   )r   Úouterrr{   r|   s       r   ÚsuspendzCapture.suspend«   s(   € à—’Ñ"Ô"ˆØŸ9š9™;œ;Ñˆ�Øˆr   N)r   r   r   ru   Úclassmethodrl   r€   r   r   r   rj   rj   Œ   sR   € € € € € ðð ð ð ˆ;�tÑÔ€Dðð ð ðð ð ð ð r   rj   c                   óD   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd„ Zdd„Zd	„ Z	d
„ Z
dS )ÚStdCaptureFDzá This class allows to capture writes to FD1 and FD2
        and may connect a NULL file to FD0 (and prevent
        reads from sys.stdin).  If any of the 0,1,2 file descriptors
        is invalid it will not be captured.
    TFc                 óz   — ||||||dœ| _         |                      ¦   «          |r|                      ¦   «          d S d S )N)rs   rt   ÚmixedÚin_r6   r5   )Ú_optionsÚ_saveÚstartall)r   rs   rt   r…   r†   r6   r5   s          r   r8   zStdCaptureFD.__init__¸   sV   € ð ØØØØ Øð
ð 
ˆŒð 	�
Š
‰ŒˆØð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	r   c                 óX  — | j         d         }| j         d         }| j         d         }| j         d         }| j         d         }|r*	 t          dd d|¬¦  «        | _        n# t          $ r Y nw xY w|rRd }t	          |d	¦  «        r|}	 t          d
|d|¬¦  «        | _        | j        j        | j         d<   n# t          $ r Y nw xY w|rf|r|r| j        j        }nt	          |d	¦  «        r|}nd }	 t          d|d|¬¦  «        | _        | j        j        | j         d<   d S # t          $ r Y d S w xY wd S )Nr†   rs   rt   r…   r6   r   F)r-   r5   r6   r   r"   r#   )r‡   r%   r†   r;   rA   rs   r-   rt   )r   r†   rs   rt   r…   r6   r-   s          r   rˆ   zStdCaptureFD._saveÆ   s°  € ØŒm˜EÔ"ˆØŒm˜EÔ"ˆØŒm˜EÔ"ˆØ”˜gÔ&ˆØ”= Ô,ˆØð 	ðÝ$ Q°¸%Ø%ð'ñ 'ô '�”�øåð ð ð Ø�ðøøøàð 		ØˆGÝ�s˜GÑ$Ô$ð Ø�ðÝ$ Q°Ø$¨xð9ñ 9ô 9�”à'+¤xÔ'7�”˜eÑ$Ð$øÝð ð ð Ø�ðøøøàð 	Øð �uð Øœ(Ô*��Ý˜˜gÑ&Ô&ð Ø��à�ðÝ$ Q°Ø$¨xð9ñ 9ô 9�”à'+¤xÔ'7�”˜eÑ$Ð$Ð$øÝð ð ð Ø��ðøøøð	ð 	s6   ÁA Á
A+Á*A+Â,B2 Â2
B?Â>B?Ã+,D Ä
D'Ä&D'c                 ó   — t          | d¦  «        r| j                             ¦   «          t          | d¦  «        r| j                             ¦   «          t          | d¦  «        r| j                             ¦   «          d S d S )Nr†   rs   rt   )rA   r†   r4   rs   rt   rH   s    r   r‰   zStdCaptureFD.startallê   s~   € Ý�4˜ÑÔð 	ØŒH�NŠNÑÔÐÝ�4˜ÑÔð 	ØŒH�NŠNÑÔÐÝ�4˜ÑÔð 	ØŒH�NŠNÑÔÐÐÐð	ð 	r   c                 ó.   — |                       ¦   «          dS ©z, resume capturing with original temp files. N©r‰   rH   s    r   ÚresumezStdCaptureFD.resumeò   ó   € à�Š‰Œˆˆˆr   c                 óx  — dx}}t          | d¦  «        r*| j        j        j        s| j                             ¦   «         }t          | d¦  «        r*| j        j        j        s| j                             ¦   «         }t          | d¦  «        r| j                             ¦   «         }|r|                      ¦   «          ||fS )ú/ return (outfile, errfile) and stop capturing. Nrs   rt   r†   )rA   rs   r-   ry   rI   rt   r†   rˆ   )r   rx   r{   r|   r-   s        r   rI   zStdCaptureFD.doneö   s­   € à Ð ˆ�'Ý�4˜ÑÔð 	&¨¬Ô(8Ô(?ð 	&Ø”h—m’m‘o”oˆGÝ�4˜ÑÔð 	&¨¬Ô(8Ô(?ð 	&Ø”h—m’m‘o”oˆGÝ�4˜ÑÔð 	&Ø”h—m’m‘o”oˆGØð 	Ø�JŠJ‰LŒLˆLØ˜ÐÐr   c                 óÒ   — t          | d¦  «        r |                      | j        j        ¦  «        }nd}t          | d¦  «        r |                      | j        j        ¦  «        }nd}||fS )ú4 return snapshot value of stdout/stderr capturings. rs   rP   rt   )rA   Ú_readsnapshotrs   r-   rt   ©r   rs   rt   s      r   r~   zStdCaptureFD.readouterr  sm   € å�4˜ÑÔð 	Ø×$Ò$ T¤XÔ%5Ñ6Ô6ˆCˆCàˆCÝ�4˜ÑÔð 	Ø×$Ò$ T¤XÔ%5Ñ6Ô6ˆCˆCàˆCØ�Cˆxˆr   c                 ó  — |                      d¦  «         |                     ¦   «         }t          |dd ¦  «        }|r!t          j                             ||d¦  «        }|                     d¦  «         |                      d¦  «         |S )Nr   r'   r   )rG   rz   r   ÚpyÚbuiltinÚ_totextÚtruncate)r   r7   rr   Úencs       r   r•   zStdCaptureFD._readsnapshot  ss   € Ø	�Šˆq‰	Œ	ˆ	Ø�fŠf‰hŒhˆÝ�a˜ TÑ*Ô*ˆØð 	:Ý”*×$Ò$ S¨#¨yÑ9Ô9ˆCØ	�
Š
�1‰ŒˆØ	�Šˆq‰	Œ	ˆ	Øˆ
r   N)TTFTTT©T)r   r   r   rM   r8   rˆ   r‰   r�   rI   r~   r•   r   r   r   rƒ   rƒ   ²   sš   € € € € € ðð ð
 27Ø%)ðð ð ð ð"ð "ð "ðHð ð ðð ð ð ð  ð  ð  ð
ð 
ð 
ðð ð ð ð r   rƒ   c                   ó4   — e Zd ZdZd
d„Zd„ Zdd„Zd„ Zd„ Zd	S )Ú
StdCapturea   This class allows to capture writes to sys.stdout|stderr "in-memory"
        and will raise errors on tries to read from sys.stdin. It only
        modifies sys.stdout|stderr|stdin attributes and does not
        touch underlying File Descriptors (use StdCaptureFD for that).
    TFc                 óP  — t           j        | _        t           j        | _        t           j        | _        |rt          |d¦  «        st          ¦   «         }|| _	        |r#|r|}nt          |d¦  «        st          ¦   «         }|| _
        || _        |r|                      ¦   «          d S d S )NÚfiler   )r1   r    Ú_oldoutr!   Ú_olderrr   Ú_oldinrA   r   rs   rt   r†   r‰   )r   rs   rt   r†   r…   r5   s         r   r8   zStdCapture.__init__   s©   € Ý”zˆŒÝ”zˆŒÝ”yˆŒØð 	•w˜s FÑ+Ô+ð 	Ý‘(”(ˆCØˆŒØð 	Øð Ø��Ý˜S 'Ñ*Ô*ð Ý‘h”h�ØˆŒØˆŒØð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	r   c                 ó¶   — | j         r| j         t          _        | j        r| j        t          _        | j        r!t          ¦   «         xt          _        | _        d S d S r\   )rs   r1   r    rt   r!   r†   rC   r   rH   s    r   r‰   zStdCapture.startall1  sT   € ØŒ8ð 	"Øœ�CŒJØŒ8ð 	"Øœ�CŒJØŒ8ð 	9Ý%6Ñ%8Ô%8Ð8�CŒI˜œ˜˜ð	9ð 	9r   c                 óB  — dx}}| j         r9| j         j        s-| j        t          _        | j         }|                     d¦  «         | j        r9| j        j        s-| j        t          _        | j        }|                     d¦  «         | j	        r| j
        t          _        ||fS )r’   Nr   )rs   ry   r¢   r1   r    rG   rt   r£   r!   r†   r¤   r   )r   rx   r{   r|   s       r   rI   zStdCapture.done9  s’   € à Ð ˆ�'ØŒ8ð 	˜DœHœOð 	Øœ�CŒJØ”hˆGØ�LŠL˜‰OŒOˆOØŒ8ð 	˜DœHœOð 	Øœ�CŒJØ”hˆGØ�LŠL˜‰OŒOˆOØŒ8ð 	$Øœ�CŒIØ˜ÐÐr   c                 ó.   — |                       ¦   «          dS r�   rŽ   rH   s    r   r�   zStdCapture.resumeH  r�   r   c                 ób  — dx}}| j         rM| j                              ¦   «         }| j                              d¦  «         | j                              d¦  «         | j        rM| j                             ¦   «         }| j                             d¦  «         | j                             d¦  «         ||fS )r”   rP   r   )rs   Úgetvaluer›   rG   rt   r–   s      r   r~   zStdCapture.readouterrL  s¢   € àˆˆˆcØŒ8ð 	Ø”(×#Ò#Ñ%Ô%ˆCØŒH×Ò˜aÑ Ô Ð ØŒH�MŠM˜!ÑÔÐØŒ8ð 	Ø”(×#Ò#Ñ%Ô%ˆCØŒH×Ò˜aÑ Ô Ð ØŒH�MŠM˜!ÑÔÐØ�Cˆxˆr   N)TTTFTr�   )	r   r   r   rM   r8   r‰   rI   r�   r~   r   r   r   rŸ   rŸ     ss   € € € € € ðð ð
ð ð ð ð"9ð 9ð 9ð ð  ð  ð  ðð ð ðð ð ð ð r   rŸ   c                   ó6   — e Zd ZdZd„ ZeZeZeZd„ Zd„ Z	d„ Z
dS )rC   a  Temporary stub class.  Ideally when stdin is accessed, the
    capturing should be turned off, with possibly all data captured
    so far sent to the screen.  This should be configurable, though,
    because in automated test runs it is better to crash than
    hang indefinitely.
    c                 ó    — t          d¦  «        ‚)Nz+reading from stdin while output is captured)ÚIOError)r   ro   s     r   rz   zDontReadFromInput.read`  s   € ÝÐCÑDÔDÐDr   c                 ó    — t          d¦  «        ‚)Nz/redirected Stdin is pseudofile, has no fileno())r<   rH   s    r   rD   zDontReadFromInput.filenof  s   € ÝÐJÑKÔKÐKr   c                 ó   — dS )NFr   rH   s    r   ÚisattyzDontReadFromInput.isattyh  s   € Øˆur   c                 ó   — d S r\   r   rH   s    r   r,   zDontReadFromInput.closej  s   € Øˆr   N)r   r   r   rM   rz   ÚreadlineÚ	readlinesÚ__iter__rD   r¯   r,   r   r   r   rC   rC   Y  so   € € € € € ðð ðEð Eð Eà€HØ€IØ€HðLð Lð Lðð ð ðð ð ð ð r   rC   ÚntÚNULz	/dev/null)Nr   FN)r.   r1   r˜   r)   Úior   ÚImportErrorrT   r   r   r2   r%   r+   ÚobjectrV   rj   rƒ   rŸ   rC   Údevnullr>   rS   rg   r   r   r   ú<module>rº      sš  ðØ 	€	€	€	Ø 
€
€
€
Ø 	€	€	€	Ø €€€ð"ØÐÐÐÐÐÐøØð "ð "ð "Ø!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð"øøøð Ô�eÒÐð.ð .ð .ð .ð .�ñ .ô .ð .ð .ð €Fð.ØÐÐÐÐÐÐøØð .ð .ð .ð.ð .ð .ð .ð .�(ñ .ô .ð .ð .ð .ð.øøøð ˜x¨HÐ5Ð5€ð9ð 9ð 9ð 9ð 9ñ 9ô 9ð 9ðxð ð ð ð8+ð +ð +ð +ð +�&ñ +ô +ð +ð*#ð #ð #ð #ð #ˆfñ #ô #ð #ðLeð eð eð eð e�7ñ eô eð eðP=ð =ð =ð =ð =�ñ =ô =ð =ð~ð ð ð ð ñ ô ð ð("Ø”*€K€K€KøØð "ð "ð "Ø	„w�$‚€Øˆˆˆˆà!ˆˆˆˆð	"øøøs6   ’ ™'¦'ÁA ÁA$Á#A$ÃC ÃC(Ã"C(Ã'C(