
    
`i7                         d Z ddlZddlmZmZmZ  G d dej                  Zd Z G d dej	                  Z
 G d	 d
          Zd Zd Zd Zd ZdS )z
Python3.5+ specific utilities
    N)utilscommoncompatc                       e Zd ZdZd ZdS )utf8reader_asynczf
    Takes a utf8-encoded string asynchronous reader and asynchronously reads
    bytes out of it
    c                 p   K   | j                             |           d {V }|                    d          S )Nzutf-8)
str_readerreadencode)selfndatas      a/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ijson/utils35.pyr
   zutf8reader_async.read   s?      _))!,,,,,,,,{{7###    N)__name__
__module____qualname____doc__r
    r   r   r   r   	   s-         $ $ $ $ $r   r   c                    K   t          |                     d           d{V           t          k    r| j        S t          j        t          |           j                  S )z@Returns an awaitable read function that reads the requested typer   N)typer
   bytesr   _warn_and_returnr   )fs    r   	_get_readr      sS      !&&))OOOOOO%%v"#3A#6#6#;<<<r   c                   *    e Zd ZdZej        j        ZdS )sendable_dequez/Like utils.sendable_list, but for deque objectsN)r   r   r   r   collectionsdequeappendsendr   r   r   r   r      s        99#DDDr   r   c                   $    e Zd ZdZd Zd Zd ZdS )async_iterablez
    A utility class that implements an async iterator returning values
    dispatched by a coroutine pipeline after *it* has received values coming
    from an async file-like object.
    c                     t                      | _        t          j        | j        g|R  | _        d| _        || _        || _        d | _        d S )NF)	r   eventsr   chaincorocoro_finishedr   buf_sizer
   )r   r   r)   coro_pipelines       r   __init__zasync_iterable.__init__#   sK    $&&K<m<<<	" 			r   c                     | S Nr   )r   s    r   	__aiter__zasync_iterable.__aiter__+   s    r   c                   K   | j         st          | j                   d {V | _         | j        r| j                                        S | j        rt          	 |                      | j                   d {V }	 | j        	                    |           | j        r| j                                        S n># t          $ r1 d| _        | j        r| j                                        cY S t          w xY w)NT)r
   r   r   r%   popleftr(   StopAsyncIterationr)   r'   r!   StopIteration)r   r   s     r   	__anext__zasync_iterable.__anext__.   s     y 	0'////////DI; 	);&&((( 	%$$
	)4=11111111D)	t$$$; 1;..0001  ) ) )%)"; 1;..00000((	)
	)s   99B4 41C/'C/N)r   r   r   r   r+   r.   r3   r   r   r   r#   r#      sK             ) ) ) ) )r   r#   c                      d fd	}|S )N   c                 F    t          | |gt          j        |          R  S r-   )r#   r   _basic_parse_pipeliner   r)   configbackends      r   basic_parse_asyncz2_make_basic_parse_async.<locals>.basic_parse_asyncC   s3    a 
)'6::
 
 
 	
r   r5   r   )r:   r;   s   ` r   _make_basic_parse_asyncr=   B   s)    
 
 
 
 
 
 r   c                      d fd	}|S )Nr5   c                 F    t          | |gt          j        |          R  S r-   )r#   r   _parse_pipeliner8   s      r   parse_asyncz&_make_parse_async.<locals>.parse_asyncJ   s3    a 
#GV44
 
 
 	
r   r<   r   )r:   rA   s   ` r   _make_parse_asyncrB   I   )    
 
 
 
 
 
 r   c                      d fd	}|S )Nr5   c           	      J    t          | |gt          j        |||          R  S r-   )r#   r   _items_pipeliner   prefixmap_typer)   r9   r:   s        r   items_asyncz&_make_items_async.<locals>.items_asyncQ   s7    a 
#GVXvFF
 
 
 	
r   Nr5   r   )r:   rJ   s   ` r   _make_items_asyncrL   P   rC   r   c                      d fd	}|S )Nr5   c           	      J    t          | |gt          j        |||          R  S r-   )r#   r   _kvitems_pipelinerG   s        r   kvitems_asyncz*_make_kvitems_async.<locals>.kvitems_asyncX   s7    a 
%gvxHH
 
 
 	
r   rK   r   )r:   rP   s   ` r   _make_kvitems_asyncrQ   W   s)    
 
 
 
 
 
 r   )r   r   ijsonr   r   r   
utf8readerr   r   r   r   r#   r=   rB   rL   rQ   r   r   r   <module>rT      s        ' ' ' ' ' ' ' ' ' '$ $ $ $ $v( $ $ $= = =$ $ $ $ $[& $ $ $#) #) #) #) #) #) #) #)L          r   