o
    f                     @  sf   d dl mZ 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
 dgZdddZedddZdS )    )annotationsN)contextmanager)IOIteratorTextIOflush_stdoutstdoutr   datastrreturnNonec              
   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   U/var/www/html/venv/lib/python3.10/site-packages/prompt_toolkit/output/flush_stdout.pyr      s$   


&ioIO[str]Iterator[None]c              
   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   8   s$   
r   )r   r   r	   r
   r   r   )r   r   r   r   )
__future__r   r   r$   r!   
contextlibr   typingr   r   r   __all__r   r   r   r   r   r   <module>   s    
,