o
    VÛ·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   úM/home/ubuntu/vllm_env/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    
