
     i"                         d dl Zd dlZd dlZd dl mZ d dlmZmZ  G d de      Z	 G d de      Z
deeef   d	ed
dfdZy)    N)PackageNotFoundError)InvalidVersionVersionc                   4     e Zd ZdZdedededdf fdZ xZS )MissingDependencyz7Exception raised when a required dependency is missing.what
dependencyrequiredreturnNc                 R    t         |   | d| d| d       || _        || _        y )N
 requires  ~ zQ but it is not installed. Use PYANNOTE_SKIP_DEPENDENCY_CHECK=1 to proceed anyway.)super__init__r	   r
   )selfr   r	   r
   	__class__s       v/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pyannote/audio/utils/dependencies.pyr   zMissingDependency.__init__#   s=    fJzl#hZ 8F F	
 %     __name__
__module____qualname____doc__strr   r   __classcell__r   s   @r   r   r       s,    A!S !c !W ! ! !r   r   c            
       8     e Zd ZdZdededededdf
 fdZ xZS )	WrongDependencyVersionzCException raised when a required dependency has an invalid version.r   r	   r
   	availabler   Nc           
      f    t         |   | d| d| d| d       || _        || _        || _        y )Nr   r    but zF is installed. Use PYANNOTE_SKIP_DEPENDENCY_CHECK=1 to proceed anyway.)r   r   r	   r
   r   )r   r   r	   r
   r   r   s        r   r   zWrongDependencyVersion.__init__/   sM     	fJzl#hZuYK HF F	
 % "r   r   r   s   @r   r   r   ,   s8    M	#	#%(	#4;	#HO	#		# 	#r   r   dependenciesr   r   c                    t        j                  dd      dv }| j                         D ]  \  }}t        |      }	 t        j
                  j                  |      }t        j
                  j                  |      }	 t        |      }|j                  |j                  k7  sv|dk(  r|j                  d	k  r|r't        j                  | d| d| d
| dt               t        ||||       y# t        $ r6 |r$t        j                  | d| d| dt               nt        |||      Y w xY w# t        $ r) |s#t        j                  | d| d| dt               Y 7w xY w)zCheck if required dependencies are installed

    Raises
    ------
    MissingDependency
        If a required dependency is not found.
    WrongDependencyVersion
        If a required dependency has an incompatible version.
    PYANNOTE_SKIP_DEPENDENCY_CHECKF)T1trueTrueyesYesr   r   z, but it is not installed. Proceeding anyway.z but we could not figure out which version is installed. Proceeding anyway. Use PYANNOTE_SKIP_DEPENDENCY_CHECK=1 to remove this warning.zpyannote.audio   r!   z! is installed. Proceeding anyway.N)osgetenvitemsr   	importlibmetadataversionr   warningswarnUserWarningr   r   majorr   )r"   r   skip_dependency_checkr	   r0   r
   _versionr   s           r   check_dependenciesr7   ;   s    #%))(%#
	#  ,113
G#G,	D ))11*=H %%--j9	!(!2I ??hnn, --(..12D )MM&
:,c(5 T- -# 1z8YWW_  4 $ 	D$fJzl#hZ @) ) (j(CC	D  		 )fJzl#hZ @f f
 		s#   C-:D/-<D,+D,/.E! E!)importlib.metadatar.   r+   r1   r   packaging.versionr   r   	Exceptionr   r   dictr   r7    r   r   <module>r=      sX   0  	  3 5	!	 	!#Y #EXT#s(^ EX3 EX4 EXr   