o
    i                      @   sb   d Z ddlmZ ddlmZmZ ddlmZ edZ	dZ
dZej		dd	d
Zee  dS )z)
Wrapper for YAJL C library version 2.x.
    )byref)commonutils)_yajl2_ctypes_common         Fc              	   c   s    t | j|d\}}tt|dd}|rt|td |r&t|td zJ	 zdV }W n t	y8   d}Y nw |rEt
||t|}nt|}|t jkret t||}	|t jkr^tjntj}
|
|	|shnq(W t| dS t| w )a*  
    Iterator yielding unprefixed events.

    Parameters:

    - f: a readable file-like object with JSON input
    - allow_comments: tells parser to allow comments in JSON input
    - buf_size: a size of an input buffer
    - multiple_values: allows the parser to parse multiple JSON objects
    r   Nr   T    )r   make_callbakssendyajl
yajl_allocr   yajl_configYAJL_ALLOW_COMMENTSYAJL_MULTIPLE_VALUESGeneratorExit
yajl_parselenyajl_complete_parseYAJL_OKyajl_get_errorYAJL_INSUFFICIENT_DATAr   IncompleteJSONError	JSONError	yajl_free)targetallow_commentsmultiple_values	use_float	callbacks
_keepalivehandlebufferresulterror	exception r&   Q/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ijson/backends/yajl2.pybasic_parse_basecoro   s4   


r(   N)FFF)__doc__ctypesr   ijsonr   r   ijson.backendsr   get_yajlr   r   r   	coroutiner(   enrich_backendglobalsr&   r&   r&   r'   <module>   s    
&