o
    i                     @   sD   d dl Z d dlZG dd deZdd Zdd Zdd	 Zd
d ZdS )    Nc                   @   s   e Zd ZdS )YAJLImportErrorN)__name__
__module____qualname__ r   r   T/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ijson/backends/__init__.pyr      s    r   c                 C   s<   t | d\}}t |d\}}||krtd||||f dS )zu
    Asserts that the major component of 'version' is equal to 'required'.
    Raises YAJLImportError otherwise.
    '  d   z*YAJL version %s.x required, found %s.%s.%sN)divmodr   )versionrequiredmajorrestminormicror   r   r   require_version   s
   r   c                 C   s*   z|   W S  ty   td Y dS w )Nz/Cannot determine yajl version, assuming <1.0.12r   )yajl_versionAttributeErrorwarningswarn)yajlr   r   r   get_yajl_version   s   

r   c                 C   sl   ddl m}m} tdp|d}|du rtdz||}W n ty,   tdw t	t
||  |S )zh
    Finds and loads yajl shared object of the required major
    version (1, 2, ...) using ctypes.
    r   )utilcdllYAJL_DLLr   NzYAJL shared object not found.Unable to load YAJL.)ctypesr   r   osgetenvfind_libraryr   LoadLibraryOSErrorr   r   )r   r   r   so_namer   r   r   r   find_yajl_ctypes   s   r#   c                 C   sB   z|  tdp	d}W n ty   tdw tt|| |S )zf
    Finds and loads yajl shared object of the required major
    version (1, 2, ...) using cffi.
    r   r   r   )dlopenr   r   r!   r   r   r   )ffir   r   r   r   r   find_yajl_cffi-   s   r&   )r   r   ImportErrorr   r   r   r#   r&   r   r   r   r   <module>   s    
