o
    V۷i                     @   s   d dl mZ z
d dlmZmZ W n ey&   e Zdd ZefddZY nw defdd	Z	G d
d dZ
G dd dZdd ZdS )    )compat)aiteranextc                 C   s   |   S N)	__aiter__)obj r   D/home/ubuntu/vllm_env/lib/python3.10/site-packages/ijson/adapters.pyr      s   r   c                    s4   z|   I d H W S  ty   |tu r | Y S w r   )	__anext__StopAsyncIteration_MISSING)aitdefaultr   r   r	   r      s   r   warnedc                 C   sD   t | tr	| |fS t | tr|std  d}| d|fS td)NTzutf-8z-from_iter expects an iterable of bytes or str)
isinstancebytesstrr   _warn_and_returnencode	TypeError)chunkr   r   r   r	   	_to_bytes   s   


r   c                   @   *   e Zd ZdZdd ZdedefddZdS )	
IterReaderz+File-like object backed by a byte iterator.c                 C      || _ d| _d S NF)_iter_warned)self	byte_iterr   r   r	   __init__"      
zIterReader.__init__nreturnc                 C   s*   |dkrdS t t| jd| j\}| _|S Nr       )r   nextr   r   r   r"   r   r   r   r	   read&   s   zIterReader.readN__name__
__module____qualname____doc__r    intr   r(   r   r   r   r	   r          r   c                   @   r   )	AiterReaderz8Async file-like object backed by an async byte iterator.c                 C   r   r   )_aiterr   )r   
byte_aiterr   r   r	   r    0   r!   zAiterReader.__init__r"   r#   c                    s2   |dkrdS t t| jdI d H | j\}| _|S r$   )r   r   r1   r   r'   r   r   r	   r(   4   s
    zAiterReader.readNr)   r   r   r   r	   r0   -   r/   r0   c                 C   s"   t | drtt| S tt| S )z>Convert a byte iterable (sync or async) to a file-like object.r   )hasattrr0   r   r   iter)r   r   r   r	   	from_iter;   s   
r5   N)ijsonr   builtinsr   r   ImportErrorobjectr   boolr   r   r0   r5   r   r   r   r	   <module>   s    