
    Php                    
   d dl mZ d dlZd dlZd dlZd dlmZ d dl	m
Z
 ej                  ej                  ej                  ej                  ej                  ej                   dZej$                  j'                  d      duZdZer	 ej,                  j                  d      Zexr ej$                  j'                  d	      duZdZer	 ej,                  j                  d
      Zej$                  j'                  d      duZej$                  j'                  d      duZ	 	 	 	 	 	 	 	 ddZddZddZddZddZ ddZ!ddZ"dZ#y# ej,                  j.                  $ r dZY w xY w# ej,                  j.                  $ r dZY w xY w)    )annotationsN)Union)version)>z>=z==z!=z<=<optimumzN/AFzoptimum.intelzoptimum-intelintel_extension_for_pytorchopenvinoc                6   |t         vr.dt        t         j                                d| }t        |      t	        | t
              r2t        j                  t        j                  j                  |             } t        |   | t        j                  |            S )a  Compare a library version to some requirement using a given operation.

    Arguments:
        library_or_version (`str` or `packaging.version.Version`):
            A library name or a version to check.
        operation (`str`):
            A string representation of an operator, such as `">"` or `"<="`.
        requirement_version (`str`):
            The version to compare the library version against

    z`operation` must be one of z, received )
STR_OPERATION_TO_FUNClistkeys
ValueError
isinstancestrr   parse	importlibmetadata)library_or_version	operationrequirement_versionmsgs       b/var/www/html/saasai/venv/lib/python3.12/site-packages/langchain_huggingface/utils/import_utils.pycompare_versionsr   .   s      --)$/D/I/I/K*L)M)& 	 o$c*$]]&&'9:
 !+GMM*=>     c                     t         S N)_optimum_available r   r   is_optimum_availabler    M   s    r   c                     t         S r   )_optimum_intel_availabler   r   r   is_optimum_intel_availabler#   Q   s    ##r   c                     t         S r   )_ipex_availabler   r   r   is_ipex_availabler&   U   s    r   c                     t         S r   )_openvino_availabler   r   r   is_openvino_availabler)   Y   s    r   c                X    t         syt        t        j                  t               | |      S )zKCompare the current Optimum version to a given reference with an operation.F)_optimum_versionr   r   r   r   reference_versions     r   is_optimum_versionr.   ]   s'    &'4E r   c                X    t         syt        t        j                  t               | |      S )zMCompare current Optimum Intel version to a given reference with an operation.F)_optimum_intel_versionr   r   r   r,   s     r   is_optimum_intel_versionr1   f   s'    !,-y:K r   z
requires the {0} library but it was not found in your environment.
You can install it with pip: `pip install {0}`.
Please note that you may need to restart your runtime after installation.
)r   zUnion[str, version.Version]r   r   r   r   returnbool)r2   r3   )r   r   r-   r   r2   r3   )$
__future__r   importlib.metadatar   importlib.utiloperatoroptypingr   	packagingr   gtgeeqneleltr   util	find_specr   r+   r   PackageNotFoundErrorr"   r0   r%   r(   r   r    r#   r&   r)   r.   r1   IMPORT_ERRORr   r   r   <module>rE      s   "      

%%
%%
%%
%%	  ^^--i8D  #$--55i@ P9>>33ODDP   )!*!3!3!;!;O!L
 ..**+HIQUUnn..z:$F 3  
	>$m 22 #"# 22 )#( )s$   E E$ E! E!$FF