Ë
    pPêj¾  ã                  ó–   — U d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
mZmZmZ ddlmZ dZd	ed
<   dd„Zdd„Z G d„ de«      Zy)z‰Shared code between dmypy.py and dmypy_server.py.

This should be pretty lightweight and not depend on other mypy code (other than ipc).
é    )ÚannotationsN)ÚIterableÚIterator)ÚTracebackType)ÚAnyÚFinalÚTextIO)ÚIPCBasez.dmypy.jsonr   ÚDEFAULT_STATUS_FILEc                óö   — | j                  «       }|st        d«      ‚	 t        j                  |«      }t        |t        «      st        dt        |«      › d�«      ‚|S # t        $ r}t        d«      |‚d}~ww xY w)zŒReceive single JSON data frame from a connection.

    Raise OSError if the data received is not valid JSON or if it is
    not a dict.
    zNo data receivedzData received is not valid JSONNzData received is not a dict (ú))ÚreadÚOSErrorÚjsonÚloadsÚ	ExceptionÚ
isinstanceÚdictÚtype)Ú
connectionÚbdataÚdataÚes       úT/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/dmypy_util.pyÚreceiver      s   € ð �O‰OÓ€EÙÜÐ(Ó)Ð)ð@Ü�z‰z˜%Ó ˆô �dœDÔ!ÜÐ5´d¸4³j°\ÀÐCÓDÐDØ€Køô	 ò @ÜÐ7Ó8¸aÐ?ûð@ús   ŸA Á	A8Á'A3Á3A8c                óL   — | j                  t        j                  |«      «       y)z®Send data to a connection encoded and framed.

    The data must be JSON-serializable. We assume that a single send call is a
    single frame to be sent on the connect.
    N)Úwriter   Údumps)r   r   s     r   Úsendr   %   s   € ð ×Ñ”T—Z‘Z Ó%Õ&ó    c                  óÊ   — e Zd Z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 d„Zdd„Zdd!d„Zdd"d„Zdd#d„Zdd„Zdd„Zdd$d„Zd%d„Zdd„Zd&d„Zy)'ÚWriteToConnzAHelper class to write to a connection instead of standard output.c                ó.   — || _         || _        || _        y ©N)ÚserverÚ
output_keyÚ_isatty)Úselfr%   r&   Úisattys       r   Ú__init__zWriteToConn.__init__1   s   € ØˆŒØ$ˆŒØˆ�r    c                ó   — | S r$   © ©r(   s    r   Ú	__enter__zWriteToConn.__enter__6   s   € Øˆr    c                 ó   — y r$   r,   )r(   ÚtÚvalueÚ	tracebacks       r   Ú__exit__zWriteToConn.__exit__9   s   € ð 	r    c                ó"   — t         j                  ‚r$   ©ÚioÚUnsupportedOperationr-   s    r   Ú__iter__zWriteToConn.__iter__A   ó   € Ü×%Ñ%Ð%r    c                ó"   — t         j                  ‚r$   r5   r-   s    r   Ú__next__zWriteToConn.__next__D   r9   r    c                 ó   — y r$   r,   r-   s    r   ÚclosezWriteToConn.closeG   ó   € Ør    c                ó   — t         ‚r$   )r   r-   s    r   ÚfilenozWriteToConn.filenoJ   s   € Üˆr    c                 ó   — y r$   r,   r-   s    r   ÚflushzWriteToConn.flushM   r>   r    c                ó   — | j                   S r$   )r'   r-   s    r   r)   zWriteToConn.isattyP   s   € Ø�|‰|Ðr    c                ó"   — t         j                  ‚r$   r5   )r(   Úns     r   r   zWriteToConn.readS   r9   r    c                 ó   — y©NFr,   r-   s    r   ÚreadablezWriteToConn.readableV   ó   € Ør    c                ó"   — t         j                  ‚r$   r5   )r(   Úlimits     r   ÚreadlinezWriteToConn.readlineY   r9   r    c                ó"   — t         j                  ‚r$   r5   )r(   Úhints     r   Ú	readlineszWriteToConn.readlines\   r9   r    c                ó"   — t         j                  ‚r$   r5   )r(   ÚoffsetÚwhences      r   ÚseekzWriteToConn.seek_   r9   r    c                 ó   — yrG   r,   r-   s    r   ÚseekablezWriteToConn.seekableb   rI   r    c                ó"   — t         j                  ‚r$   r5   r-   s    r   ÚtellzWriteToConn.telle   r9   r    c                ó"   — t         j                  ‚r$   r5   )r(   Úsizes     r   ÚtruncatezWriteToConn.truncateh   r9   r    c                ó`   — | j                   |i}t        | j                  |«       t        |«      S r$   )r&   r   r%   Úlen)r(   ÚoutputÚresps      r   r   zWriteToConn.writek   s(   € Ø $§¡°Ð8ˆÜˆT�[‰[˜$ÔÜ�6‹{Ðr    c                 ó   — y)NTr,   r-   s    r   ÚwritablezWriteToConn.writablep   s   € Ør    c                ó4   — |D ]  }| j                  |«       Œ y r$   )r   )r(   ÚlinesÚss      r   Ú
writelineszWriteToConn.writeliness   s   € Øò 	ˆAØ�J‰J�q�Mñ	r    N)r%   r
   r&   Ústrr)   ÚboolÚreturnÚNone)rg   r	   )r0   ztype[BaseException] | Noner1   zBaseException | Noner2   zTracebackType | Nonerg   rh   )rg   zIterator[str])rg   re   )rg   rh   )rg   Úint)rg   rf   )r   )rE   ri   rg   re   )rK   ri   rg   re   )rN   ri   rg   z	list[str])rQ   ri   rR   ri   rg   ri   )rY   z
int | Nonerg   ri   )r]   re   rg   ri   )rb   zIterable[str]rg   rh   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   r.   r3   r8   r;   r=   r@   rB   r)   r   rH   rL   rO   rS   rU   rW   rZ   r   r`   rd   r,   r    r   r"   r"   .   s�   „ ÙKóó
ðà%ðð $ðð (ð	ð
 
óó&ó&óóóóô&óô&ô&ô&óó&ô&óó
ôr    r"   )r   r
   rg   r   )r   r
   r   r   rg   rh   )rm   Ú
__future__r   r6   r   Úcollections.abcr   r   Útypesr   Útypingr   r   r	   Úmypy.ipcr
   r   Ú__annotations__r   r   r"   r,   r    r   ú<module>rt      sG   ðòõ
 #ã 	Û ß .Ý ß %Ñ %å à*Ð �UÓ *óó$'ôG�&õ Gr    