
    sg                         d Z ddl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d Zddedee   d	dfd
Zd Zy)z-
Utilities for working with package versions
    N)Optional)version)<z<===z!=z>=>c                     ||t        d| d| d| d| d	      t        |    t        j                  |      t        j                  |            st	        | d| d| d|       y )NzUnable to compare versions for z: need=z found=z). This is unusual. Consider reinstalling .z@ is required for a normal functioning of this module, but found r   )
ValueErroropsr   parseImportError)opgot_verwant_verrequirementpkghints         N/var/www/html/venv/lib/python3.12/site-packages/transformers/utils/versions.py_compare_versionsr   %   s    (*-k]'(7SZR[ \ E$
 	
 r77==)7==+BCm[\_[``bcjbkklmqlrs
 	
 D    r   r   returnc           	         |d| nd}t        j                  d|       r| dd}}}nt        j                  d|       }|st        d|        |d   \  }}|j	                  d      }i }|D ]k  }	t        j                  d	|	      }|st        d|        |d   \  }}|||<   |t
        vs?t        |  d
t        t
        j                                d|        |dk(  rbdj                  t        j                  dd D 
cg c]  }
t        |
       c}
      }j                         D ]  \  }}t        |||| ||        y	 t        j                  j!                  |      })j                         D ]  \  }}t        |||| ||        yyc c}
w # t        j                  j"                  $ r& t        j                  j#                  d|  d|       w xY w)a/  
    Perform a runtime check of the dependency versions, using the exact same syntax used by pip.

    The installed module version comes from the *site-packages* dir via *importlib.metadata*.

    Args:
        requirement (`str`): pip style definition, e.g.,  "tokenizers==0.9.4", "tqdm>=4.27", "numpy"
        hint (`str`, *optional*): what suggestion to print in case of requirements not being met

    Example:

    ```python
    require_version("pandas>1.1.2")
    require_version("numpy>1.18.5", "this is important to have for whatever reason")
    ```N
 z^[\w_\-\d]+$z^([^!=<>\s]+)([\s!=<>]{1,2}.+)zgrequirement needs to be in the pip package format, .e.g., package_a==1.23, or package_b>=1.23, but got r   ,z^([\s!=<>]{1,2})(.+)z: need one of z
, but got pythonr	      zThe 'zB' distribution was not found and is required by this application. )rematchfindallr
   splitr   listkeysjoinsysversion_infostritemsr   	importlibmetadatar   PackageNotFoundError)r   r   r   r   r   r   	want_full
want_rangewantedwxr   s               r   require_versionr1   1   s   " *Rv;D 
xx-'tR

<kJ#}&  qY__S)
 
	aAJJ6:E   +}.  !8LB!F2J} K=tCHHJ?O>PPZ[]Z^!_``
	a h((C,<,<Ra,@AqCFAB"LLN 	MLBb'8[#tL	M
$$,,S1 "LLN 	MLBb'8[#tL	M  B 22 
  55K= bcgbhi
 	

s   =F F AGc                     d}t        | |      S )zCrequire_version wrapper which emits a core-specific hint on failurez_Try: `pip install transformers -U` or `pip install -e '.[dev]'` if you're working with git main)r1   )r   r   s     r   require_version_corer3   r   s    lD;--r   )N)__doc__importlib.metadatar)   operatorr   r%   typingr   	packagingr   ltleeqnegegtr   r   r'   r1   r3    r   r   <module>r@      s~      	 
   

++
++
++
++		
>M >MHSM >MT >MB.r   