
    \j                         d dl mZ 	 d dlmZmZ defdZ	 G d d      Z
 G d	 d
      Zd Zy# e$ r  e       Zd ZefdZY 4w xY w)    )compat)aiteranextc                 "    | j                         S N)	__aiter__)objs    8/root/env/lib/python3.12/site-packages/ijson/adapters.pyr   r      s    }}    c                 t   K   	 | j                          d {   S 7 # t        $ r |t        u r |cY S w xY wwr   )	__anext__StopAsyncIteration_MISSING)aitdefaults     r
   r   r      s;     	(((! 	("N	s(   8  8 5858warnedc                     t        | t              r| |fS t        | t              r,|st        j                  d        d}| j                  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   s     r
   	_to_bytesr      sV    %f}%##D)F||G$f,,
C
DDr   c                   &    e Zd ZdZd ZdedefdZy)
IterReaderz+File-like object backed by a byte iterator.c                      || _         d| _        y NF)_iter_warned)self	byte_iters     r
   __init__zIterReader.__init__"   s    
r   nreturnc                 v    |dk(  ryt        t        | j                  d      | j                        \  }| _        |S Nr   r   )r   nextr    r!   r"   r%   r   s      r
   readzIterReader.read&   s3    6'TZZ(=t||Lt|r   N__name__
__module____qualname____doc__r$   intr   r+    r   r
   r   r      s    5c e r   r   c                   &    e Zd ZdZd ZdedefdZy)AiterReaderz8Async file-like object backed by an async byte iterator.c                      || _         d| _        y r   )_aiterr!   )r"   
byte_aiters     r
   r$   zAiterReader.__init__0   s     r   r%   r&   c                    K   |dk(  ryt        t        | j                  d       d {   | j                        \  }| _        |S 7 wr(   )r   r   r6   r!   r*   s      r
   r+   zAiterReader.read4   s@     6'eDKK.E(Et||Tt| )Fs   %AAANr,   r2   r   r
   r4   r4   -   s    BC E r   r4   c                 j    t        | d      rt        t        |             S t        t	        |             S )z>Convert a byte iterable (sync or async) to a file-like object.r   )hasattrr4   r   r   iter)r#   s    r
   	from_iterr<   ;   s+    y+&5+,,d9o&&r   N)ijsonr   builtinsr   r   ImportErrorobjectr   boolr   r   r4   r<   r2   r   r
   <module>rB      s_    % ET E  'm  xH "* s   . AA