o
    ˷e                     @   sz   d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	 dgZ
dededdfddZed	ee ded fd
dZdS )    N)contextmanager)IOIteratorTextIOcastflush_stdoutstdoutdatareturnc              
   C   s   t | do	t | d}z2t| # |r | j|| jpdd n| | |   W d    W d S 1 s5w   Y  W d S  tyn } z&|jrP|jd t	j
krPn|jr[|jd dkr[n W Y d }~d S W Y d }~d S d }~ww )Nencodingbufferzutf-8replacer   )hasattr_blocking_ior   writeencoder   flushOSErrorargserrnoEINTR)r   r	   has_binary_ioe r   Y/var/www/ideatree/venv/lib/python3.10/site-packages/prompt_toolkit/output/flush_stdout.pyr   
   s$   


&ioc              
   c   s    t jdkrdV  dS z|  }t|}W n   d}Y z|s&t|d dV  W |s4t|| dS dS |s?t|| w w )zA
    Ensure that the FD for `io` is set to blocking in here.
    win32NT)sysplatformfilenoosget_blockingset_blocking)r   fdblockingr   r   r   r   7   s$   
r   )r   r    r   
contextlibr   typingr   r   r   r   __all__strr   r   r   r   r   r   <module>   s    - 