
    ~pi<%                        d Z ddlZddlZddlZddl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 ddlmZ ddlmZ ddlmZ ddlZddlmZ dd	lmZmZ d
dlmZ d
dlmZ d
dlmZ ddl m!Z!  ejD                  dejF                        jH                  Z%dZ&ejN                  d        Z(ddZ)ejT                  de
d   fd       Z+ G d d      Z,y)zWheels support.    N)Iterator)Requirement)sys_tags)canonicalize_name)Version)_unpack_zipfile_obj)_egg_basenamewrite_requirements   )extras_from_deps)metadata)_read_utf8_with_fallback)get_platformz^(?P<project_name>.+?)-(?P<version>\d.*?)
    ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
    )\.whl$z8__import__('pkg_resources').declare_namespace(__name__)
c                  ~    t               D  ch c]%  } | j                  | j                  | j                  f' c} S c c} w N)r   interpreterabiplatform)ts    R/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/setuptools/wheel.py_get_supported_tagsr   &   s.    
 9A
C1Q]]AEE1::.CCCs   *:returnc                    t        j                  |       D ]$  \  }}}t         j                  j                  ||       }|D ]Y  }t         j                  j	                  ||      }t         j                  j	                  |||      }t        j
                  ||       [ t        t        t        |                  D ]  \  }	}
t         j                  j	                  ||
      }t         j                  j	                  |||
      }t         j                  j                  |      rgt        j
                  ||       ||	=  ' t        j                  | d      D ]  \  }}}|rJ t        j                  |       ! y)zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)topdownN)oswalkpathrelpathjoinrenamesreversedlist	enumerateexistsrmdir)src_dirdst_dirdirpathdirnames	filenamessubdirfsrcdstnds              r   unpackr1   .   s(   (*(8  $9'2 	!A'',,w*C'',,w2CJJsC 	! T)H"567 	 DAq'',,w*C'',,w2C77>>#& 

3$QK	   )+(F $9}
    c               #      K   ddl m}  | j                  | j                        }	 d | j                  |       y# | j                  |       w xY ww)z*
    Temporarily disable info traces.
    r   )logN)	distutilsr4   set_thresholdWARN)r4   saveds     r   disable_info_tracesr9   D   sC     
 chh'E!% % s   "A; AAAc                   z    e Zd ZddZd Zd Zd Zd ZddZd Z	e
d	        Ze
d
        Ze
d        Ze
d        Zy)WheelNc                     t        t        j                  j                  |            }|t	        d|      || _        |j                         j                         D ]  \  }}t        | ||        y )Nzinvalid wheel name: )	
WHEEL_NAMEr   r   basename
ValueErrorfilename	groupdictitemssetattr)selfr@   matchkvs        r   __init__zWheel.__init__S   si    277++H56=3H<@AA OO%++- 	 DAqD!Q	 r2   c                     t        j                  | j                  j                  d      | j                  j                  d      | j
                  j                  d            S )z>List tags (py_version, abi, platform) supported by this wheel..)	itertoolsproduct
py_versionsplitr   r   rD   s    r   tagsz
Wheel.tags[   sI      OO!!#&HHNN3MM$
 	
r2   c                 D    t        d | j                         D        d      S )z2Is the wheel compatible with the current platform?c              3   :   K   | ]  }|t               v sd   yw)TN)r   ).0r   s     r   	<genexpr>z&Wheel.is_compatible.<locals>.<genexpr>e   s     Ma!7J7L2LTMs   F)nextrP   rO   s    r   is_compatiblezWheel.is_compatiblec   s    M499;MuUUr2   c                 ~    t        | j                  | j                  | j                  dk(  rd n	t	                     dz   S )Nany)r   z.egg)r	   project_nameversionr   r   rO   s    r   egg_namezWheel.egg_nameg   s;    !!"&--5"8$ln
 	
r2   c                     |j                         D ]Z  }t        j                  |      }|j                  d      s*t	        |      j                  t	        | j                              sX|c S  t        d      )Nz
.dist-infoz.unsupported wheel format. .dist-info not found)namelist	posixpathdirnameendswithr   
startswithrY   r?   )rD   zfmemberr_   s       r   get_dist_infozWheel.get_dist_infoq   sk    kkm 	F''/G-2CG2L2W2W!$"3"343 	 IJJr2   c                     t        j                  | j                        5 }| j                  ||       ddd       y# 1 sw Y   yxY w)z"Install wheel as an egg directory.N)zipfileZipFiler@   _install_as_egg)rD   destination_eggdirrb   s      r   install_as_eggzWheel.install_as_egg{   s:    __T]]+ 	9r  !3R8	9 	9 	9s	   <Ac                    | j                    d| j                   }| j                  |      }| d}t        j                  j                  |d      }| j                  ||||       | j                  ||       | j                  ||       y )N-z.dataEGG-INFO)	rY   rZ   rd   r   r   r   _convert_metadata_move_data_entries_fix_namespace_packages)rD   ri   rb   dist_basename	dist_info	dist_dataegg_infos          r   rh   zWheel._install_as_egg   s    ,,-Qt||n=&&r*	$oU+	77<< 2J?r#5y(K 2I>$$X/ABr2   c           	      
     fd} |d      }t        |j                  d            }t        d      |cxk  xr t        d      k  nc }|st        d|       t         |       t        j
                  j                  |      t        j                  |      \  }}	t	        j                  |       t	        j                  t        j
                  j                  |d      t        j
                  j                  |d             t        j                  t        ||		      
      }
t               5  t        |
j                  d      d t        j
                  j                  |d             d d d        y # 1 sw Y   y xY w)Nc                    j                  t        j                  |             5 }|j                         j	                  d      }t
        j                  j                         j                  |      cd d d        S # 1 sw Y   y xY w)Nutf-8)	openr^   r   readdecodeemailparserParserparsestr)namefpvaluerr   rb   s      r   get_metadataz-Wheel._convert_metadata.<locals>.get_metadata   sb    	489 =R	((1||**,55e<= = =s   AA==BWHEELzWheel-Versionz1.0z2.0dev0z"unsupported wheel format version: METADATAzPKG-INFO)install_requiresextras_require)attrsrt   zrequires.txt)parse_versiongetr?   r   r   r   r   r;   _convert_requiresrename
setuptoolsDistributiondictr9   r
   get_command_obj)rb   ri   rr   rt   r   wheel_metadatawheel_versionwheel_v1r   r   
setup_dists   ` `        r   rn   zWheel._convert_metadata   s;   	=
 &g.%n&8&8&IJ '=S=;SSA-QRRB 23GGLL!3Y?	+0+B+B	,
(. 			)X&
		GGLL:.GGLL:.	
  ,,!1-

 !" 	**:6X~6	 	 	s   5;E99Fc                   
 t         j                  j                  |      j                   }|j                  d      xs g }t	        t        t        |            }t        |      }d }d 
d t	        t        |t        
t        j                  |                        }|D ci c]#  t	        t        |
fd|D                    % }	}||	fS c c}w )NzRequires-Distc                 N    t        t        |             } d | _        t        |       S r   )r   strmarker)reqs    r   raw_reqz(Wheel._convert_requires.<locals>.raw_req   s     c#h'CCJs8Or2   c                 V    | j                    xs | j                   j                  |      S r   )r   evaluate)r   envs     r   evalz%Wheel._convert_requires.<locals>.eval   s"    zz>=SZZ%8%8%==r2   c                 v    	 | j                   j                  }t        d |D              S # t        $ r d}Y w xY w)N c              3   ~   K   | ]5  }t        |t              r#|d    j                  dk(  r|d   j                   7 yw)r   extra   N)
isinstancetupler   )rS   r   s     r   rT   z=Wheel._convert_requires.<locals>.for_extra.<locals>.<genexpr>   s9      fe,G1K q	s   ;=)r   _markersAttributeErrorset)r   markerss     r   	for_extraz*Wheel._convert_requires.<locals>.for_extra   sH    **--  %   " s   * 88c              3   J   K   | ]  } |      s |       s|  yw))r   Nr   )rS   r   r   r   r   s     r   rT   z*Wheel._convert_requires.<locals>.<genexpr>   s      VSIcNtCu?USVs   #
##)r   r   atget_allr"   mapr   r   filterrK   filterfalse)ri   rr   mddepsreqsextrasr   r   r   r   r   r   s           ` @@r   r   zWheel._convert_requires   s    ""%%i099zz/*0bCT*+!$'
	
	>		  i&;&;It&LMN
  
  4VDV 
 
  //
s   '(Cc                    t         j                  j                  |       t         j                  j                  d      }t         j                  j                  |      rt         j                  j                  | dd      }t        j                  |       t        j
                  |      D ]  }|j                  d      r4t        j                  t         j                  j                  ||             Ht        j                  t         j                  j                  ||      t         j                  j                  ||              t        j                  |       t        t         j                  j                  fddD              D ]  }t        ||         t         j                  j                        rt        j                         yy)z,Move data entries to their correct location.scriptsrm   z.pycc              3   ^   K   | ]$  }t         j                  j                  |       & y wr   )r   r   r   )rS   r0   rs   s     r   rT   z+Wheel._move_data_entries.<locals>.<genexpr>   s(       Y*s   *-)dataheaderspurelibplatlibN)r   r   r   r$   mkdirlistdirr`   unlinkr   r%   r   r1   )ri   rs   dist_data_scriptsegg_info_scriptsentryr+   s    `    r   ro   zWheel._move_data_entries   sE    GGLL!3Y?	GGLLI>77>>+,!ww||,>
IVHH%&$56 	 >>&)IIbggll+<eDEII%6>%5u=	 HH&'GGNNB
 	/F 6-.	/ 77>>)$HHY %r2   c                 z   t         j                  j                  | d      }t         j                  j                  |      rt	        |      j                         }|D ]  }t        j                  j                  |g|j                  d       }t         j                  j                  |d      }t         j                  j                  |      st        j                  |       t         j                  j                  |      rt        |dd      5 }|j                  t               d d d         y y # 1 sw Y   xY w)Nznamespace_packages.txtrJ   z__init__.pywrw   )encoding)
r   r   r   r$   r   rN   r   rx   writeNAMESPACE_PACKAGE_INIT)rt   ri   namespace_packagesmodmod_dirmod_initr   s          r   rp   zWheel._fix_namespace_packages   s    WW\\(4LM77>>,-!9:L!M!S!S!U) 9'',,'9KCIIcNK77<<?ww~~g.HHW%ww~~h/hg> 9"!789 99 .9 9s   D11D:	r   N)__name__
__module____qualname__rH   rP   rV   r[   rd   rj   rh   staticmethodrn   r   ro   rp   r   r2   r   r;   r;   R   sz     
V
K9
C " "H )0 )0V    : 9 9r2   r;   r   )-__doc__
contextlibr{   	functoolsrK   r   r^   rerf   collections.abcr   packaging.requirementsr   packaging.tagsr   packaging.utilsr   packaging.versionr   r   r   setuptools.archive_utilr   setuptools.command.egg_infor	   r
   
_discoveryr   
_importlibr   unicode_utilsr   distutils.utilr   compileVERBOSErE   r=   r   cacher   r1   contextmanagerr9   r;   r   r2   r   <module>r      s         	  	  $ . # - 6  7 I (   3 'RZZ JJ	
 %  U  D D, 
!Xd^ 
! 
!t9 t9r2   