o
    j                     @  sn   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 d dl	m
Z
mZ dgZdddZedddZdS )    )annotationsN)Iterator)contextmanager)IO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   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/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   9   s$   
r   )r   r   r	   r
   r   r   )r   r   r   r   )
__future__r   r   r$   r!   collections.abcr   
contextlibr   typingr   r   __all__r   r   r   r   r   r   <module>   s    
,