§
    ÈtºfÐ  ã                  ó  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ  e¦   «         Z eej        ¦  «         G d„ d	¦  «        ¦   «         Z eej        ej        ej        ej        ¦  «         G d
„ d¦  «        ¦   «         ZdS )zÚStandard input/out/err support.

Future Plans::

    support for stderr, perhaps
    Rewrite to use the reactor instead of an ad-hoc mechanism for connecting
        protocols to transport.

Maintainer: James Y Knight
é    )Úannotations)Úimplementer)Ú
interfacesÚprocess)Ú	IProtocolÚIReactorFDSet)ÚLogger)ÚFailurec                  ó   — e Zd ZdS )ÚPipeAddressN)Ú__name__Ú
__module__Ú__qualname__© ó    ú[/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/_posixstdio.pyr   r      s   € € € € € à€Dr   r   c                  ó®   — e Zd ZdZdZdZdZ	 	 	 d)d*d„Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd+d„Zd,d„Zd„ Zd-d„Zd-d„Zd „ Zd!„ Zd"„ Zd#„ Zd$„ Zd%„ Zd&„ Zd'„ Zd(„ ZdS ).Ú
StandardIONFr   é   Úprotor   ÚstdinÚintÚstdoutÚreactorúIReactorFDSet | Nonec                óú   — |€ddl m} || _        t          j        || d|¦  «        | _        t          j        || d|¦  «        | _        | j                             ¦   «          | j         	                    | ¦  «         d S )Nr   )r   ÚwriteÚread)
Útwisted.internetr   Úprotocolr   ÚProcessWriterÚ_writerÚProcessReaderÚ_readerÚstartReadingÚmakeConnection)Úselfr   r   r   r   s        r   Ú__init__zStandardIO.__init__*   s‚   € ð ˆ?Ø0Ð0Ð0Ð0Ð0Ð0Ø#(ˆŒåÔ,¨W°d¸GÀVÑLÔLˆŒÝÔ,¨W°d¸FÀEÑJÔJˆŒØŒ×!Ò!Ñ#Ô#Ð#ØŒ×$Ò$ TÑ*Ô*Ð*Ð*Ð*r   c                óJ   — | j         �| j                              ¦   «          d S d S ©N)r"   ÚloseConnection©r'   s    r   ÚloseWriteConnectionzStandardIO.loseWriteConnection=   ó,   € ØŒ<Ð#ØŒL×'Ò'Ñ)Ô)Ð)Ð)Ð)ð $Ð#r   c                óL   — | j         �| j                              |¦  «         d S d S r*   )r"   r   ©r'   Údatas     r   r   zStandardIO.writeA   s.   € ØŒ<Ð#ØŒL×Ò˜tÑ$Ô$Ð$Ð$Ð$ð $Ð#r   c                óL   — | j         �| j                              |¦  «         d S d S r*   )r"   ÚwriteSequencer0   s     r   r3   zStandardIO.writeSequenceE   s.   € ØŒ<Ð#ØŒL×&Ò& tÑ,Ô,Ð,Ð,Ð,ð $Ð#r   c                ó˜   — d| _         | j        �| j                             ¦   «          | j        �| j                             ¦   «          d S d S )NT)Údisconnectingr"   r+   r$   ÚstopReadingr,   s    r   r+   zStandardIO.loseConnectionI   sP   € Ø!ˆÔàŒ<Ð#ØŒL×'Ò'Ñ)Ô)Ð)ØŒ<Ð#àŒL×$Ò$Ñ&Ô&Ð&Ð&Ð&ð $Ð#r   c                ó   — t          ¦   «         S r*   ©r   r,   s    r   ÚgetPeerzStandardIO.getPeerR   ó   € Ý‰}Œ}Ðr   c                ó   — t          ¦   «         S r*   r8   r,   s    r   ÚgetHostzStandardIO.getHostU   r:   r   ÚfdÚstrr1   ÚbytesÚreturnÚNonec                ó:   — | j                              |¦  «         d S r*   )r    ÚdataReceived)r'   r=   r1   s      r   ÚchildDataReceivedzStandardIO.childDataReceivedY   s   € ØŒ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(r   Úreasonr
   c                ó|   — | j         rd S |dk    r|                      |¦  «         d S |                      |¦  «         d S )Nr   )ÚdisconnectedÚ_readConnectionLostÚ_writeConnectionLost)r'   r=   rE   s      r   ÚchildConnectionLostzStandardIO.childConnectionLost\   sO   € ØÔð 	ØˆFØ�Š<ˆ<Ø×$Ò$ VÑ,Ô,Ð,Ð,Ð,à×%Ò% fÑ-Ô-Ð-Ð-Ð-r   c                óp  — d| _         | j        }| j        }| j        }d x| _        | _        d | _        |�|j         s|                     |¦  «         |�|j         s|                     |¦  «         t
                               d¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTz#while calling stdio connectionLost:)rG   r$   r"   r    ÚconnectionLostÚ_logÚfailuresHandled)r'   rE   r$   r"   r    s        r   rL   zStandardIO.connectionLostd   s  € Ø ˆÔð ”,ˆØ”,ˆØ”=ˆØ&*Ð*ˆŒ�t”|ØˆŒàÐ wÔ';ÐØ×"Ò" 6Ñ*Ô*Ð*àÐ wÔ';ÐØ×"Ò" 6Ñ*Ô*Ð*å×!Ò!Ð"GÑHÔHð 	,ð 	,Ø×#Ò# FÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ÂB+Â+B/Â2B/c                ó^  — d | _         | j        r|                      |¦  «         d S t          j        | j        d ¦  «        }|rit                               d¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j	        r|                      |j
        ¦  «         d S d S d S )Nz(while calling stdio writeConnectionLost:)r"   r5   rL   r   ÚIHalfCloseableProtocolr    rM   rN   ÚwriteConnectionLostÚfailedÚfailure)r'   rE   ÚpÚwcls       r   rI   zStandardIO._writeConnectionLostw   s  € ØˆŒØÔð 	Ø×Ò Ñ'Ô'Ð'ØˆFåÔ-¨d¬m¸TÑBÔBˆØð 	1Ý×%Ò%Ø:ñô ð (àØ×%Ò%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð Œzð 1Ø×#Ò# C¤KÑ0Ô0Ð0Ð0Ð0ð	1ð 	1ð
1ð 1s   ÁA=Á=BÂBc                óL  — d | _         t          j        | j        d ¦  «        }|rkt                               d¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        r|                      |j	        ¦  «         d S d S |                      |¦  «         d S )Nz'while calling stdio readConnectionLost:)
r$   r   rP   r    rM   rN   ÚreadConnectionLostrR   rL   rS   )r'   rE   rT   Úrcls       r   rH   zStandardIO._readConnectionLost†   së   € ØˆŒÝÔ-¨d¬m¸TÑBÔBˆØð 	(Ý×%Ò%Ð&OÑPÔPð 'ÐTWØ×$Ò$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'àŒzð 1Ø×#Ò# C¤KÑ0Ô0Ð0Ð0Ð0ð1ð 1ð ×Ò Ñ'Ô'Ð'Ð'Ð's   ¾AÁA#Á&A#c                óv   — | j         €|                     ¦   «          d S | j                              ||¦  «         d S r*   )r"   ÚstopProducingÚregisterProducer)r'   ÚproducerÚ	streamings      r   r[   zStandardIO.registerProducer’   s@   € ØŒ<ÐØ×"Ò"Ñ$Ô$Ð$Ð$Ð$àŒL×)Ò)¨(°IÑ>Ô>Ð>Ð>Ð>r   c                óJ   — | j         �| j                              ¦   «          d S d S r*   )r"   ÚunregisterProducerr,   s    r   r_   zStandardIO.unregisterProducer˜   s,   € ØŒ<Ð#ØŒL×+Ò+Ñ-Ô-Ð-Ð-Ð-ð $Ð#r   c                ó.   — |                       ¦   «          d S r*   )r+   r,   s    r   rZ   zStandardIO.stopProducing�   s   € Ø×ÒÑÔÐÐÐr   c                óJ   — | j         �| j                              ¦   «          d S d S r*   )r$   ÚpauseProducingr,   s    r   rb   zStandardIO.pauseProducing    r.   r   c                óJ   — | j         �| j                              ¦   «          d S d S r*   )r$   ÚresumeProducingr,   s    r   rd   zStandardIO.resumeProducing¤   s,   € ØŒ<Ð#ØŒL×(Ò(Ñ*Ô*Ð*Ð*Ð*ð $Ð#r   c                ó.   — |                       ¦   «          dS )z3Compatibility only, don't use. Call pauseProducing.N)rb   r,   s    r   r6   zStandardIO.stopReading¨   s   € à×ÒÑÔÐÐÐr   c                ó.   — |                       ¦   «          dS )z4Compatibility only, don't use. Call resumeProducing.N)rd   r,   s    r   r%   zStandardIO.startReading¬   s   € à×ÒÑÔÐÐÐr   c                ó   — t          ¦   «         ‚r*   ©ÚNotImplementedError©r'   rE   s     r   rW   zStandardIO.readConnectionLost°   ó   € å!Ñ#Ô#Ð#r   c                ó   — t          ¦   «         ‚r*   rh   rj   s     r   rQ   zStandardIO.writeConnectionLost´   rk   r   )r   r   N)r   r   r   r   r   r   r   r   )r=   r>   r1   r?   r@   rA   )r=   r>   rE   r
   r@   rA   )rE   r
   r@   rA   )r   r   r   r$   r"   rG   r5   r(   r-   r   r3   r+   r9   r<   rD   rJ   rL   rI   rH   r[   r_   rZ   rb   rd   r6   r%   rW   rQ   r   r   r   r   r      sŽ  € € € € € ð €GØ€GØ€LØ€Mð
 ØØ(,ð+ð +ð +ð +ð +ð&*ð *ð *ð%ð %ð %ð-ð -ð -ð'ð 'ð 'ðð ð ðð ð ð)ð )ð )ð )ð.ð .ð .ð .ð,ð ,ð ,ð&1ð 1ð 1ð 1ð	(ð 	(ð 	(ð 	(ð?ð ?ð ?ð.ð .ð .ð
ð ð ð*ð *ð *ð+ð +ð +ðð ð ðð ð ð$ð $ð $ð$ð $ð $ð $ð $r   r   N)Ú__doc__Ú
__future__r   Úzope.interfacer   r   r   r   Útwisted.internet.interfacesr   r   Útwisted.loggerr	   Útwisted.python.failurer
   rM   ÚIAddressr   Ú
ITransportÚ	IProducerÚ	IConsumerÚIHalfCloseableDescriptorr   r   r   r   ú<module>rx      sE  ðð	ð 	ð #Ð "Ð "Ð "Ð "Ð "à &Ð &Ð &Ð &Ð &Ð &à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø !Ð !Ð !Ð !Ð !Ð !Ø *Ð *Ð *Ð *Ð *Ð *à€v�x„x€ð €ˆZÔ Ñ!Ô!ð	ð 	ð 	ð 	ð 	ñ 	ô 	ñ "Ô!ð	ð €ØÔØÔØÔØÔ'ñ	ô ðR$ð R$ð R$ð R$ð R$ñ R$ô R$ñô ðR$ð R$ð R$r   