+
     hk  c                   sN   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t& ^ RI'H(t(H)t) ^ RI*H+t+ ^ RI,H-t- ^ R	I.H/t/ ^ R
I0H1t1 ^ RI2H3t3 ^ RI4H5t5H6t6H7t7 ^ RI8H9t9H:t: ^ RI;H<t<H=t= ^ RI>H?t?H@t@ ^ RIAHBtBHCtCHDtDHEtE ^ RIFHGtGHHtHHItIHJtJ ^ RIKHLtL  ! R R]!4      tM]P                  ! ]O4      tP]! R]Q4      tR]$]R]Q]%]S]Q3,          3,          tTR<R R lltUR R ltVR R ltWR R ltXR R ltYR  R! ltZR" R# lt[R$ R% lt\R& R' lt]R( R) lt^R* R+ lt_ ! R, R-4      t` ! R. R/4      ta ! R0 R1]14      tbR2 R3 ltc ! R4 R5]+4      tdR=R6 R7 llte]P                  R8 R9 l4       tgR=R: R; llthR# )>zFSupport for installing and building the "wheel" binary package format.N)urlsafe_b64encode)Message)chainfilterfalsestarmap)IOAnyBinaryIOCallableDict	GeneratorIterableIteratorListNewTypeOptionalProtocolSequenceSetTupleUnioncast)ZipFileZipInfo)ScriptMaker)get_export_entry)canonicalize_name)InstallationError)get_major_minor_version)BaseDistributionFilesystemWheelget_wheel_distribution)DIRECT_URL_METADATA_NAME	DirectUrl)SCHEME_KEYSScheme)adjacent_tmp_filereplace)StreamWrapper
ensure_dir	hash_file	partition)current_umaskis_within_directory2set_extracted_file_to_default_mode_plus_executablezip_item_is_executable)parse_wheelc                   s>   a  ] tR t^>t o V 3R lR ltV 3R ltRtV tR# )Filec                   < V ^8  d   QhRR/#    returnN format__classdict__   "K/usr/lib/python3.14/site-packages/pip/_internal/operations/install/wheel.py__annotate__File.__annotate__C   s      d     c                s    R # Nr4   self   &r9   saveZ	File.saveC   s    r<   c                s<   < V ^8  d   Qh/ R;R&   S[ ;R&   S[;R&   # )r2   
RecordPathsrc_record_path	dest_pathchangedstrboolr5   r8   r9   r:   r;   >   s&     !! N  M r<   r4   N)__name__
__module____qualname____firstlineno__rA   Z__annotate_func____static_attributes____classdictcell__r7      @r9   r/   r/   >   s     
   r<   r/   rB   c                s^    V ^8  d   QhR\         R\        R\        \         \         3,          /# )r2   path	blocksizer3   )rG   intr   r6      "r9   r:   r:   M   s)     ! ! ! !5c? !r<   c                s    \        W4      w  r#R\        VP                  4       4      P                  R4      P	                  R4      ,           pV\        V4      3# )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=Zlatin1Z=)r(   r    digestZdecoderstriprG   )rQ   rR   ZhlengthrV   s   &&   r9   rehashrY   M   sI    $*IA*188:6==hGNNsSSFCK  r<   c                sR    V ^8  d   QhR\         R\        \         \        3,          /# )r2   moder3   )rG   r	   r   rT   rU   r9   r:   r:   T   s"     > > >S#X >r<   c                s    RV RRRR/# )zHReturn keyword arguments to properly open a CSV file
in the given mode.
rZ   Znewline Zencodingutf-8r4   )rZ   r@   r9   csv_io_kwargsr]   T   s     D)RW==r<   c                0    V ^8  d   QhR\         R\        /# r2   rQ   r3   rF   rT   rU   r9   r:   r:   [   s      S T r<   c                s   \         P                  P                  V 4      '       g   Q h\        V R4      ;_uu_ 4       pVP	                  4       pVP                  R4      '       g    RRR4       R# \        P                  P                  \        P                  ! 4       4      pRV,           \         P                  P                  R4      ,           pVP                  4       pRRR4       \        V R4      ;_uu_ 4       pVP                  X4       VP                  X4       RRR4       R#   + '       g   i     LQ; i  + '       g   i     R# ; i)	zIReplace #!python with #!/path/to/python
Return True if file was changed.
Zrbs   #!pythonNFs   #!ZasciiwbT)osrQ   isfileopenZreadlineZ
startswithsys
executableencodeZgetfilesystemencodingZlinesepZreadwrite)rQ   ZscriptZ	firstlineZexenameZrest   &    r9   
fix_scriptri   [   s    
 77>>$	dD		VOO%	##K00 
	 ..''(A(A(CDGObjj&7&7&@@	{{} 
 
dD		VYT 
  
	 
	 s   )D'/A/D':#D:'D7	:E	c                r^   )r2   metadatar3   )r   rH   rT   rU   r9   r:   r:   o   s     A AG A Ar<   c                 sH    V P                  R R4      P                  4       R8H  # )zRoot-Is-Purelibr[   Ztrue)getlower)rj   r@   r9   wheel_root_is_purelibrm   o   s"    <<)2.446&@@r<   c                s    V ^8  d   QhR\         R\        \        \        \        3,          \        \        \        3,          3,          /# )r2   distr3   )r   r   r	   rG   rT   rU   r9   r:   r:   s   s5     ( (* (uT#s(^T#s(^5S/T (r<   c                 s    / p/ pV P                  4        FY  pVP                  R 8X  d   VP                  WP                  &   K.  VP                  R8X  g   KA  VP                  W#P                  &   K[  	  W3# )console_scriptsgui_scripts)Ziter_entry_pointsZgroupZvaluename)rn   ro   rp   entry_point   &   r9   get_entrypointsrt   s   so    OK--/ 110;0A0AO,,--/,7,=,=K(()	 0
 ''r<   c                s\    V ^8  d   QhR\         \        ,          R\        \        ,          /# )r2   scriptsr3   )r   rG   r   rT   rU   r9   r:   r:   ~   s&     E  E x} E # E r<   c           	     s   V '       g   R# \         P                  ! \        4      pV  FX  p\        P                  P                  V4      p\        P                  P                  V4      pW,          P                  V4       KZ  	  \        P                  P                  RR4      P                  \        P                  4       Uu. uF\  p\        P                  P                  \        P                  P                  V4      4      P                  \        P                  4      NK^  	  ppVP!                  \        P                  P                  \        P                  P                  \        P                  P                  \"        P$                  4      4      4      4       VP'                  4        UU u/ uFJ  w  r0\        P                  P                  \        P                  P                  V4      4      V9  g   KH  W0bKL  	  ppp V'       g   R# . pVP'                  4        F~  w  r9\)        V	4      p
\+        V
4      ^8X  d   RV
^ ,           R2pM8RP-                  RP/                  V
RR 4      R,           V
R,          ,           4      pVP!                  R	V R
V R24       K  	  Rp\+        V4      ^8X  d"   VP!                  VP-                  R4      4       M VP!                  VP-                  R4      4       \0        ;QJ dW    R \        P                  P                  RR4      P                  \        P                  4       4       F  '       g   K   RML	  RMH! R \        P                  P                  RR4      P                  \        P                  4       4       4      pV'       d   RpVP!                  V4       RP/                  V4      # u upi u up pi )zDetermine if any scripts are not on PATH and format a warning.
Returns a warning message if one or more scripts are not on PATH,
otherwise None.
NZPATHr[   zscript z iszscripts {} are, z and zThe z installed in 'z' which is not on PATH.zeConsider adding {} to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.zthis directoryzthese directoriesc              3   sL   "   T F  q'       g   K  V^ ,          R8H  x  K  	  R# 5i)    Z~Nr4   ).0i   & r9   	<genexpr>Z4message_about_scripts_not_on_PATH.<locals>.<genexpr>   s       IQ!Is   	$$TFziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.Z
i)collectionsZdefaultdictsetra   rQ   dirnamebasenameaddenvironrk   splitZpathsepZnormcasenormpathrW   sepappendrd   re   itemssortedlenr6   joinZany)ru   Zgrouped_by_dirdestfile
parent_dirZscript_namery   Znot_warn_dirsZwarn_forZ	msg_linesZdir_scriptsZsorted_scriptsZ
start_textZlast_line_fmtZwarn_for_tildeZtilde_warning_msgs   &              r9   !message_about_scripts_not_on_PATHr   ~   s   
  +6*A*A#*FNWW__X.
gg&&x0"&&{3  +11"**==A 	))!,-44RVV<=   
))"''//#..*IJK
 $2#7#7#9%#9J77BGG,,Z89N 	
#9  %
  I#+>>#3
$*;$7~!#">!#4"5S9J)00		."-.8>";MMJ 	:,oj\9PQ	
 $4	C  9~--.>?@--.ABC S ZZ^^FB7==bjjISSS ZZ^^FB7==bjjI N = 	 	*+ 99Yk%s   A"O	/AO9Oc                s    V ^8  d   QhR\         \        ,          R\        \        \        \        \        3,          ,          /# )r2   outrowsr3   )r   InstalledCSVRowr   r   rG   rT   rU   r9   r:   r:      s1      o&	%S#
r<   c                s&    \        R V  4       4      # )a  Normalize the given rows of a RECORD file.

Items in each row are converted into str. Rows are then sorted to make
the value more predictable for tests.

Each row is a 3-tuple (path, hash, size) and corresponds to a record of
a RECORD file (see PEP 376 and PEP 427 for details).  For the rows
passed to this function, the size can be an integer as an int or string,
or the empty string.
c              3   sB   "   T F  w  rq1V\        V4      3x  K  	  R # 5ir=   rG   )rx   record_pathZhash_Zsizers   r9   r{   Z&_normalized_outrows.<locals>.<genexpr>   s!      HO,DKeSY's   )r   )r   r@   r9   _normalized_outrowsr      s    *  HO  r<   c                s<    V ^8  d   QhR\         R\        R\        /# )r2   r   lib_dirr3   )rB   rG   rT   rU   r9   r:   r:      s!     . .J . . .r<   c                 s@    \         P                  P                  W4      # r=   )ra   rQ   r   )r   r      &&r9   _record_to_fs_pathr      s    77<<--r<   c                s<    V ^8  d   QhR\         R\         R\        /# )r2   rQ   r   r3   )rG   rB   rT   rU   r9   r:   r:      s!     $ $S $3 $: $r<   c                 s   \         P                  P                  V 4      ^ ,          P                  4       \         P                  P                  V4      ^ ,          P                  4       8X  d    \         P                  P	                  W4      p V P                  \         P                  P                  R4      p \        RV 4      # )rw   /rB   )ra   rQ   Z
splitdriverl   Zrelpathr%   r   r   )rQ   r   r   r9   _fs_to_record_pathr      s}     
ww$"((*bgg.@.@.I!.L.R.R.TTwwt-<<S)Dd##r<   c                s    V ^8  d   QhR\         \         \        ,          ,          R\        \        \        3,          R\        \        ,          R\         \        ,          R\        R\         \
        ,          /# )r2   old_csv_rows	installedrE   	generatedr   r3   )r   rG   r	   rB   r   r   rT   rU   r9   r:   r:      sc      tCy/J
*+ _ Cy	
  
/r<   c                s<   . pV  F  p\        V4      ^8  d   \        P                  RV4       \        RV^ ,          4      pVP	                  Ww4      pW9   d   \        \        W4      4      w  rM6\        V4      ^8  d
   V^,          MRp	\        V4      ^8  d
   V^,          MRp
VP                  WV
34       K  	  V F.  p\        W4      p\        V4      w  rVP                  WV
34       K0  	  TVP                  4        Uu. uF  qRR3NK	  	  up,           # u upi )zS
:param installed: A map from archive RECORD path to installation RECORD
    path.
z,RECORD line has more than three elements: %srB   r[   )
r   loggerwarningr   poprY   r   r   r   values)r   r   rE   r   r   Zinstalled_rowsZrowZold_record_pathZnew_record_pathrV   rX   frQ   Zinstalled_record_paths   &&&&&         r9   get_csv_rows_for_installedr      s    -/Ns8a<NNI3O|SV4#--I%#$6$PQNFF"3x!|SVF"3x!|SVF?@  !!-tV45  ENEUEUEWEW,AB'EW   s   Dc                sh    V ^8  d   QhR\         \        \        3,          R\        \        ,          /# )r2   consoler3   )r	   rG   r   rT   rU   r9   r:   r:     s*     H Hd38n Hc Hr<   c                s   V P                  4       p . pV P                  RR4      pV'       d   R\        P                  9  d   VP	                  RV,           4       \        P                  P                  RR4      R8w  d-   VP	                  R\        P                  ^ ,           RV 24       VP	                  R\        4        RV 24       V  Uu. uF$  p\        P                  ! RV4      '       g   K"  VNK&  	  ppV F  pW K  	  V P                  R	R4      pV'       d   R\        P                  9  d   VP	                  R
V,           4       VP	                  R\        4        RV 24       V  Uu. uF$  p\        P                  ! RV4      '       g   K"  VNK&  	  ppV F  pW K  	  VP                  \        RP                  V P                  4       4      4       V# u upi u upi )z_
Given the mapping from entrypoint name to callable, return the relevant
console script specs.
ZpipNZENSUREPIP_OPTIONSzpip = r[   Z
altinstallz = zpip(\d+(\.\d+)?)?$Zeasy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?${} = {})Zcopyr   ra   r   r   rk   rd   Zversion_infor   reZmatchextendr   r6   r   )r   scripts_to_generateZ
pip_scriptZkZpip_epZeasy_install_scriptZeasy_install_eps   &      r9   get_console_script_specsr     s    llnGB UD)Jbjj0&&x*'<=::>>-r2lB&&S-=-=a-@,AZL'QR""S)@)B(C3zl#ST$KW1F(J!!WKA
 !++nd;bjj0&&'8;N'NO""356c:M9NO	

 
!"((+G"KAAw 	 
 !A
 ! wy'7'7IJ+ L
s   G2G/G G c                   sV   a  ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR	# )
ZipBackedFileiY  c                s0   < V ^8  d   QhRS[ RS[RS[RR/# )r2   rC   rD   zip_filer3   N)rB   rG   r   r5   r8   r9   r:   ZipBackedFile.__annotate__Z  s-      )69EL	r<   c                s8    Wn         W n        W0n        R V n        R# FN)rC   rD   	_zip_filerE   )r?   rC   rD   r   s   &&&&r9   __init__ZZipBackedFile.__init__Z  s      /"!r<   c                s    < V ^8  d   QhRS[ /# )r2   r3   )r   r5   r8   r9   r:   r   b  s     < <' <r<   c                sL    V P                   P                  V P                  4      # r=   )r   ZgetinforC   r>   r@   r9   _getinfoZZipBackedFile._getinfob  s    ~~%%d&:&:;;r<   c                r0   r1   r4   r5   r8   r9   r:   r   e  s     O Od Or<   c           	     s   \         P                  P                  V P                  4      '       d!   \         P                  ! V P                  4       V P                  4       p\        V P                  R 4      ;_uu_ 4       pVP                  ^ 8  dZ   V P                  P                  V4      ;_uu_ 4       p\        VP                  R4      p\        P                  ! W2V4       RRR4       RRR4       \        V4      '       d   \        V P                  4       R# R#   + '       g   i     LB; i  + '       g   i     LM; i)r`   N   )ra   rQ   existsrD   Zunlinkr   rc   Z	file_sizer   ZminshutilZcopyfileobjr-   r,   )r?   Zzipinfodestr   rR   rh   r9   rA   ZZipBackedFile.savee  s     77>>$..))IIdnn%--/ $..$''4  1$^^((11Q #G$5$5{ CI&&q	: 2 ( "'**>t~~N +	 21 ('s$   >5D.3.D	!D.D+&D..D>	)r   rE   rD   rC   N)	rI   rJ   rK   rL   r   r   rA   rM   rN   rO   rP   r9   r   r   Y  s%      < <O Or<   r   c                   sD   a  ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )
ScriptFilei  c                s"   < V ^8  d   QhRRRR/# )r2   filer/   r3   Nr4   r5   r8   r9   r:   ScriptFile.__annotate__  s      V  r<   c                s    Wn         V P                   P                  V n        V P                   P                  V n        R V n        R# r   )_filerC   rD   rE   )r?   r   r   r9   r   ZScriptFile.__init__  s1    
#zz99--r<   c                r0   r1   r4   r5   r8   r9   r:   r     s     2 2d 2r<   c                sn    V P                   P                  4        \        V P                  4      V n        R # r=   )r   rA   ri   rD   rE   r>   r@   r9   rA   ZScriptFile.save  s     

!$..1r<   )r   rE   rD   rC   N)rI   rJ   rK   rL   r   rA   rM   rN   rO   rP   r9   r   r     s      2 2r<   r   c                   s>   a a ] tR tRt oV3R lV 3R lltRtVtV ;t# )MissingCallableSuffixi  c                s$   < V ^8  d   QhRS[ RR/# )r2   rr   r3   Nr   r5   r8   r9   r:   Z"MissingCallableSuffix.__annotate__  s     
 
C 
D 
r<   c                s.   < \         SV `  R V R24       R# )zInvalid script entry point: z - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.N)superr   )r?   rr   	__class__s   &&r9   r   ZMissingCallableSuffix.__init__  s!    *;- 8 	
r<   r4   )rI   rJ   rK   rL   r   rM   rN   __classcell__r   r7      @@r9   r   r     s     
 
 
r<   r   c                (    V ^8  d   QhR\         RR/# )r2   specificationr3   Nr   rT   rU   r9   r:   r:     s     0 0 0 0r<   c                 sl    \        V 4      pVe%   VP                  f   \        \        V4      4      hR # R # r=   )r   Zsuffixr   rG   )r   Zentryrz   r9   _raise_for_invalid_entrypointr     s2    ]+EU\\1#CJ// 2r<   c                   sB   a a ] tR tRt oRV3R lV 3R llltRtVtV ;t# )PipScriptMakeri  c                sb   < V ^8  d   QhRS[ RS[S[S[ S[3,          ,          RS[S[ ,          /# )r2   r   optionsr3   )rG   r   r	   r   r   r5   r8   r9   r:   ZPipScriptMaker.__annotate__  s6     4 4 4+3DcN+C4	c4r<   c                s8   < \        V4       \        SV `	  W4      # r=   )r   r   make)r?   r   r   r   s   &&&r9   r   ZPipScriptMaker.make  s     	&m4w|M33r<   r4   r=   )rI   rJ   rK   rL   r   rM   rN   r   r   r   r9   r   r     s     4 4 4r<   r   c                s    V ^8  d   QhR\         R\        R\         R\        R\        R\        R\        \
        ,          R\        R	R
/	# )r2   rq   	wheel_zip
wheel_pathscheme	pycompilewarn_script_location
direct_url	requestedr3   N)rG   r   r#   rH   r   r!   rT   rU   r9   r:   r:     sr     ^4 ^4
^4^4 ^4 	^4
 ^4 ^4 #^4 ^4 
^4r<   c                s  aa:a;a<a=a>a?a@ \        W4      w  r\        V	4      '       d   VP                  o@MVP                  o@/ o?\	        4       o;. p
R*R V;V?V@3R lllpR R lpR V3R llo:R V:3R llpR	 V:V3R
 llpR R lp\        \        \        ,          VP                  4       4      p\        VV4      p\        VV4      w  ppV! VS@4      p\        VV4      pR R lp\        VV4      w  ppV! W4      p\        VV4      p\        VV4      p\        \        S4      \        V 4      4      p\!        V4      w  o<o>R V<V>3R llp\        VV4      p\        VV4      p\        \"        V4      p\        VV4      p\	        4       pV F  p\$        P&                  P)                  VP*                  4      p V V9  d   \-        V 4       VP/                  V 4       VP1                  4        V! VP2                  VP*                  VP4                  4       K  	  R V?V@3R llp!R R lp"V'       EdF   \6        P8                  ! \:        P<                  ! \>        P@                  4      4      ;_uu_ 4       p#\B        PD                  ! 4       ;_uu_ 4        \B        PF                  ! R4       V!! 4        F  p$\H        PJ                  ! V$RRR7      p%V%'       g   K&  V"! V$4      p&\$        P&                  PM                  V&4      '       g   Q h\        RV&PO                  \$        P&                  PP                  R4      4      p'V! V'V&4       K  	  RRR4       RRR4       \R        PU                  X#PW                  4       4       \Y        RVPZ                  4      p(RV(n.        R0V(n/        RV(n0        \c        S<4      p)\e        \g        RPh                  S>Pk                  4       4      4      p*V(Pm                  V)4      p+V
Po                  V+4       V
Po                  V(Pm                  V*RR/4      4       V'       d%   \q        V+4      p,V,e   \R        Ps                  V,4       R\u        4       ( ,          o=\6        Pv                  R V=3R  ll4       p-\$        P&                  Py                  S@V4      p.\$        P&                  Py                  V.R!4      p/V-! V/4      ;_uu_ 4       p0V0P{                  R"4       RRR4       V
P}                  V/4       Ve}   \$        P&                  Py                  V.\~        4      p1V-! V14      ;_uu_ 4       p2V2P{                  VP                  4       P                  R#4      4       RRR4       V
P}                  V14       V'       dP   \$        P&                  Py                  V.R$4      p3\        V3R%4      ;_uu_ 4         RRR4       V
P}                  V34       VP                  R&4      p4\e        \        P                  ! V4P                  4       4      4      p5\        V5S?S;V
S@R'7      p6\$        P&                  Py                  V.R&4      p7V-! V73/ \        R(4      B ;_uu_ 4       p8\        P                  ! \        R)V84      4      p9V9P                  \        V64      4       RRR4       R#   + '       g   i     EL^; i  + '       g   i     ELj; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL?; i  + '       g   i     R# ; i)+aY  Install a wheel.

:param name: Name of the project to install
:param wheel_zip: open ZipFile for wheel being installed
:param scheme: Distutils scheme dictating the install directories
:param req_description: String used in place of the requirement, for
    logging
:param pycompile: Whether to byte-compile installed Python files
:param warn_script_location: Whether to check that scripts are installed
    into a directory on PATH
:raises UnsupportedWheel:
    * when the directory holds an unpacked wheel with incompatible
      Wheel-Version
    * when the .dist-info dir does not match the wheel
c                s@    V ^8  d   QhR\         R\        R\        RR/# )r2   srcfiler   modifiedr3   N)rB   rG   rH   rT   rU   r9   r:   $_install_wheel.<locals>.__annotate__  s,     ! !!'*!6:!	!r<   c                s`   < \        VS4      pVSV &   V'       d   SP                  V4       R# R# )z6Map archive RECORD paths to installation RECORD paths.N)r   r   )r   r   r   ZnewpathrE   r   r   s   &&& r9   record_installedZ(_install_wheel.<locals>.record_installed  s/     %Xw7$	'KK  r<   c                r^   r_   rB   rH   rT   rU   r9   r:   r     s     " "* " "r<   c                 s$    V P                  R 4      # )r   )endswithrQ   r@   r9   is_dir_pathZ#_install_wheel.<locals>.is_dir_path  s    }}S!!r<   c                s4    V ^8  d   QhR\         R\         RR/# )r2   dest_dir_pathtarget_pathr3   Nr   rT   rU   r9   r:   r     s!       # $ r<   c                 sd   < \        W4      '       g   R p\        VP                  SW4      4      hR# )zRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r}N)r+   r   r6   )r   r   messager   s   && r9   assert_no_path_traversalZ0_install_wheel.<locals>.assert_no_path_traversal  s:    "=>>5  $z;F  ?r<   c                X    V ^8  d   QhR\         R\        R\        \        .R3,          /# )r2   r   r   r3   r/   )r   rG   r   rB   rT   rU   r9   r:   r     s0     	% 	%	%!$	%	:,&	'	%r<   c                 s"   <a a R  VVV 3R llpV# )c                r   r2   r   r3   r/   rB   rT   rU   r9   r:   ZD_install_wheel.<locals>.root_scheme_file_maker.<locals>.__annotate__  s     	C 	Cz 	Cf 	Cr<   c                 s   < \         P                  P                  V 4      p\         P                  P                  SV4      pS! SV4       \	        WS4      # r=   )ra   rQ   r   r   r   )r   normed_pathrD   r   r   r   s   &  r9   make_root_scheme_fileZM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sB    ''**;7KT;7I$T95 BBr<   r4   )r   r   r   r   s   ff r9   root_scheme_file_makerZ._install_wheel.<locals>.root_scheme_file_maker  s    	C 	C %$r<   c                r   )r2   r   r   r3   r/   )r   r#   r   rB   rT   rU   r9   r:   r     s0      %  % %#) %	:,&	' %r<   c                 sl   <a a \          Uu/ uF  q"\        W4      bK  	  upoR  VVVV 3R llpV# u upi )c                r   r   r   rT   rU   r9   r:   ZD_install_wheel.<locals>.data_scheme_file_maker.<locals>.__annotate__  s     	C 	Cz 	Cf 	Cr<   c           
      s  < \         P                  P                  V 4      p VP                  \         P                  P                  ^4      w  r#p S
T,          p\         P                  P                  Yd4      pS	! Yh4       \        YS4      #   \
         d    RS RT : R2p\        T4      hi ; i  \         d7    RP                  \        S
4      4      pRS RT RT : RT R2	p\        T4      hi ; i)	r2   zUnexpected file in z: zG. .data directory contents should be named like: '<scheme key>/<path>'.rv   zUnknown scheme key used in z (for file zW). .data directory contents should be in subdirectories named with a valid scheme key (Z))ra   rQ   r   r   r   Z
ValueErrorr   ZKeyErrorr   r   r   )r   r   Z_Z
scheme_keyZdest_subpathr   Zscheme_pathZvalid_scheme_keysrD   r   scheme_pathsr   r   s   &        r9   make_data_scheme_fileZM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file  s   ''**;7K1.9.?.?Q.O+|
1*:6 [?I$[< BB+  1)*R GM M  (001  1$(IIf\.B$C!1*R
| L!!, 0-.a1  (001s   -B 	B0 !B-0AC1)r"   Zgetattr)r   r   Zkeyr   r   r   r   s   f&  @r9   data_scheme_file_makerZ._install_wheel.<locals>.data_scheme_file_maker  s<     >II[cWV11[I	C 	C6 %$; Js   1c                r^   r_   r   rT   rU   r9   r:   r     s     7 7* 7 7r<   c                 sR    V P                  R ^4      ^ ,          P                  R4      # )r   .data)r   r   r   r@   r9   is_data_scheme_pathZ+_install_wheel.<locals>.is_data_scheme_path  s#    zz#q!!$--g66r<   c                r^   r_   r   rT   rU   r9   r:   r     s     W WJ W4 Wr<   c                 s    V P                  R ^4      p\        V4      ^8  ;'       d-    V^ ,          P                  R4      ;'       d    V^,          R8H  # )r   r   ru   )r   r   r   )rQ   Zpartsrz   r9   is_script_scheme_pathZ-_install_wheel.<locals>.is_script_scheme_path  sH    

3"5zA~VV%("3"3G"<VVqYAVVr<   c                s(    V ^8  d   QhRRR\         /# )r2   r   r/   r3   )rH   rT   rU   r9   r:   r   +  s     8 8F 8t 8r<   c                 s  < V P                   p\        P                  P                  V4      pVP	                  4       P                  R 4      '       d   VRR pMXVP	                  4       P                  R4      '       d   VRR pM-VP	                  4       P                  R4      '       d   VRR pMTpVS9   ;'       g    VS9   # )z.exeNz
-script.pyz.pyaii)rD   ra   rQ   r   rl   r   )r   rQ   rq   Z	matchnamer   guis   &   r9   is_entrypoint_wrapperZ-_install_wheel.<locals>.is_entrypoint_wrapper+  s     ~~ww%::<  ((Sb	IZZ\""<00Tc
IZZ\""6**Sb	IIG#77yC'77r<   c                s@    V ^8  d   QhR\         \        RR3,          /# r1   )r
   rG   rT   rU   r9   r:   r   N  s     & &9S$_#= &r<   c               3   s*  <"   \        \        SP                  4       4      4       Fg  p \        P                  P                  SV 4      p\        P                  P                  V4      '       g   KJ  VP                  R 4      '       g   Kc  Vx  Ki  	  R# 5i)z.pyN)r   r}   r   ra   rQ   r   rb   r   )Zinstalled_pathZfull_installed_pathr   r   s     r9   pyc_source_file_pathsZ-_install_wheel.<locals>.pyc_source_file_pathsN  sk     
 %S)9)9);%<=N"$'',,w"G77>>"566&//66%% >s   BBBc                s0    V ^8  d   QhR\         R\         /# r_   r   rT   rU   r9   r:   r   [  s     6 6c 6c 6r<   c                s@    \         P                  P                  V 4      # )z8Return the path the pyc file would have been written to.)	importlibZutilZcache_from_sourcer   r@   r9   pyc_output_pathZ'_install_wheel.<locals>.pyc_output_path[  s    ~~//55r<   ZignoreT)ZforceZquietrB   r   Nr[   r   r   i  c          	      sX    V ^8  d   QhR\         R\        R\        \        RR3,          /# )r2   rQ   kwargsr3   N)rG   r   r
   r   rT   rU   r9   r:   r     s-      S C Ihd>R4S r<   c              ;   s   <"   \        V 3/ VB ;_uu_ 4       pVx  R R R 4       \        P                  ! XP                  S4       \	        VP                  V 4       R #   + '       g   i     LI; i5ir=   )r$   ra   Zchmodrq   r%   )rQ   r   r   generated_file_modes   &, r9   _generate_fileZ&_install_wheel.<locals>._generate_file  sK     t.v..!G /
,- /.s   A1AAA1A.	)A1Z	INSTALLERs   pip
r\   Z	REQUESTEDr`   ZRECORD)r   rE   r   r   ZwzIO[str])F)Lr.   rm   ZpurelibZplatlibr}   r   r   rB   Znamelistr   r)   Zmapr   r   r   r   rt   r   ra   rQ   r~   rD   r'   r   rA   rC   rE   
contextlibZredirect_stdoutr&   Zfrom_streamrd   stdoutwarningsZcatch_warningsZfilterwarnings
compileallZcompile_filer   r%   r   r   ZdebugZgetvaluer   ru   ZclobberZvariantsZset_moder   Zlistr   r6   r   Zmake_multipler   r   r   r*   contextmanagerr   rg   r   r    Zto_jsonrf   rc   Z	read_textcsvZreaderZ
splitlinesr   r]   writerZ	writerowsr   )Arq   r   r   r   r   r   r   r   Zinfo_dirrj   r   r   r   r   r   r   ZpathsZ
file_pathsZroot_scheme_pathsZdata_scheme_pathsr   Zfilesr   Zother_scheme_pathsZscript_scheme_pathsr   Zother_scheme_filesZdistributionr   Zscript_scheme_filesZexisting_parentsr   r   r   r   r   rQ   ZsuccessZpyc_pathZpyc_record_pathZmakerr   Zgui_scripts_to_generateZgenerated_console_scriptsZmsgr   Zdest_info_dirZinstaller_pathZinstaller_fileZdirect_url_pathZdirect_url_fileZrequested_pathZrecord_textZrecord_rowsZrowsr   Zrecord_filer   r   rE   r   r   r   r   r   sA   &&f&&&&&                                                  @@@@@@@r9   _install_wheelr     s   2 %Y5HX&&.... /1I"uGI! !" 	% 	% %  %D7 j!9#5#5#78E[%0J+45H*+U((29gF 57HIEW /80/++ 39E24FG%+,E *
#$L #<0LGS8 8  +.2+ &&;=PQj*=>%,-Eu WW__T^^4
--z"  ,		--t~~t||L & &6
 y''%%cjj1
 
((**''113D(55d$dSGw#24#8!ww~~h7777*.((*:*:277;;*L+ )(C 4 +
 	V__&'40E EM
 TEN
 EN 37;"79+;+;SYY[#IJ % 3 34G H./U(()@5$-PQ/0IJ?NN3=?"22  GGLL(3M WW\\-=N		'	'>X& 
(^$ '',,}6NOO,,!!*"4"4"6"="=g"FG -) m[A.$'' ((((2Kszz+"8"8":;<K%D '',,}h7K		:}S'9	:	:k DK89,T23	 
;	:s +**
 
 
x 
(	'	' -,, (''$ 
;	:	:sa   +Z&	?Z	,Z	:AZ	=Z&Z:&/[*[";[6Z#	Z&&Z7	:[	[	"[3	6\	c                s>    V ^8  d   QhR\         R\        R,          /# )r2   req_descriptionr3   )NNN)rG   r
   rT   rU   r9   r:   r:     s      0 0s 0y9I/J 0r<   c              #   s   "    R x  R #   \          d+   pRT  RTP                  ^ ,           2p\        T4      ThR p?ii ; i5i)Nz	For req: z. )r   Zargs)r   Zer   s   &  r9   req_error_contextr     sD     0 0o.b<(a/0s   A
 A?%:?Ac                s    V ^8  d   QhR\         R\         R\        R\         R\        R\        R\        \        ,          R\        R	R
/	# )r2   rq   r   r   r   r   r   r   r   r3   N)rG   r#   rH   r   r!   rT   rU   r9   r:   r:     sg      
  	
   #  
r<   c                 s    \        VR R7      ;_uu_ 4       p\        V4      ;_uu_ 4        \        V VVVVVVVR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)T)Z
allowZip64)rq   r   r   r   r   r   r   r   N)r   r   r   )	rq   r   r   r   r   r   r   r   Zzs	   &&&&&&&& r9   install_wheelr     s^     
	-	-//%#%9%#	 0 
.	-// 
.	-	-s!   A#A	A#A A##A4	)r   )TTNF)iZ__doc__r|   r   r   r   r   ZloggingZos.pathra   r   r   rd   r   Zbase64r    Zemail.messager   Z	itertoolsr   r   r   Ztypingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Zzipfiler   r   Zpip._vendor.distlib.scriptsr   Zpip._vendor.distlib.utilr   Zpip._vendor.packaging.utilsr   Zpip._internal.exceptionsr   Zpip._internal.locationsr   Zpip._internal.metadatar   r   r   Zpip._internal.models.direct_urlr    r!   Zpip._internal.models.schemer"   r#   Zpip._internal.utils.filesystemr$   r%   Zpip._internal.utils.miscr&   r'   r(   r)   Zpip._internal.utils.unpackingr*   r+   r,   r-   Zpip._internal.utils.wheelr.   r/   Z	getLoggerrI   r   rG   rB   rS   r   rY   r]   ri   rm   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   r<   r9   <module>r      sm   L    
    	  
  $ ! 1 1    & % 3 5 9 6 ; 
 P ; E T T  28  
		8	$\3'

CsCx89!>(A(E P4.$@HV#O #OL	2 	2
- 
04[ 4^4B	 0 0 r<   