o
    հi                      @   s   d Z ddlZddlmZmZmZ ddlmZmZ ddlm	Z	 e	
dZG dd deZej				dd
dZeje d	d	d	eejdkd dS )z)
Wrapper for YAJL C library version 1.x.
    N)	Structurec_uintbyref)commonutils)_yajl2_ctypes_common   c                   @   s   e Zd ZdefdefgZdS )ConfigallowComments	checkUTF8N)__name__
__module____qualname__r   _fields_ r   r   G/home/ubuntu/.local/lib/python3.10/site-packages/ijson/backends/yajl.pyr	      s    r	   Fc              	   c   s    |rt dt| j|d\}}t|d}tt|t|dd}zJ	 zdV }W n ty4   d}Y nw |rAt	||t
|}	nt|}	|	tjkrWtt||}
t|
|sd|	tjkrctdnq$W t| dS t| w )a2  
    Iterator yielding unprefixed events.

    Parameters:

    - f: a readable file-like object with JSON input
    - allow_comments: tells parser to allow comments in JSON input
    - check_utf8: if True, parser will cause an error if input is invalid utf-8
    - buf_size: a size of an input buffer
    z,yajl backend doesn't support multiple_valuesr   TN    zIncomplete JSON data)
ValueErrorr   make_callbakssendr	   yajl
yajl_allocr   GeneratorExit
yajl_parselenyajl_parse_complete
YAJL_ERRORyajl_get_errorr   	JSONErrorYAJL_INSUFFICIENT_DATAIncompleteJSONError	yajl_free)targetallow_commentsmultiple_values	use_float	callbacks
_keepaliveconfighandlebufferresulterrorr   r   r   basic_parse_basecoro   s4   






r-   )r$   invalid_leading_zeros_detection incomplete_json_tokens_detectionint64)FFF)__doc__ctypesr   r   r   ijsonr   r   ijson.backendsr   get_yajlr   r	   	coroutiner-   enrich_backendglobalssizeofc_longr   r   r   r   <module>   s$    
&
