+
    Îim                    V   R t ^ RIH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t^ RIHt ^ RIHtHtHt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% ^ RI&H't'H(t( ^ R	I)H*t* ^ R
I+H,t, ^ RI-H.t. ^ RI/H0t0 ^ RI1H2t2 ^ RI3H4t4H5t5H6t6 ^ RI7H8t8H9t9 ^ RI:H;t;H<t< ^ RI=H>t>H?t? ^ RI@HAtAHBtBHCtCHDtD ^ RIEHFtFHGtGHHtHHItI ^ RIJHKtK  ! R R]#4      tL]P                  ! ]N4      tO]"! R]P4      tQ]R]Q]P]$]S]P3,          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` ! R0 R14      ta ! R2 R3]04      tbR4 R5 ltc ! R6 R7]*4      tdR?R8 R9 llte]P                  R: R; l4       tgR?R< R= llthR# )@zFSupport for installing and building the "wheel" binary package format.)annotationsN)urlsafe_b64encode)	GeneratorIterableIteratorSequence)Message)chainfilterfalsestarmap)IOAnyBinaryIOCallableNewTypeProtocol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                  B    ] tR t^9t$ R]R&   R]R&   R]R&   R R ltR	tR
# )File
RecordPathsrc_record_pathstr	dest_pathboolchangedc                   V ^8  d   QhRR/#    returnNone )formats   "u/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/install/wheel.py__annotate__File.__annotate__>   s      d     c                	    R # Nr:   selfs   &r<   save	File.save>   s    r?   r:   N)__name__
__module____qualname____firstlineno____annotations__rD   __static_attributes__r:   r?   r<   r.   r.   9   s    NM r?   r.   r/   c               $    V ^8  d   QhRRRRRR/# )r7   pathr1   	blocksizeintr8   ztuple[str, str]r:   )r;   s   "r<   r=   r=   H   s!     ! ! ! !? !r?   c                    \        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=latin1=)r&   r   digestdecoderstripr1   )rM   rN   hlengthrS   s   &&   r<   rehashrX   H   sI    $*IA*188:6==hGNNsSSFCK  r?   c                    V ^8  d   QhRRRR/# )r7   moder1   r8   zdict[str, Any]r:   )r;   s   "r<   r=   r=   O   s     > > > >r?   c                    RV RRRR/# )zHReturn keyword arguments to properly open a CSV file
in the given mode.
rZ   newline encodingutf-8r:   )rZ   s   &r<   csv_io_kwargsr`   O   s     D)RW==r?   c                    V ^8  d   QhRRRR/# )r7   rM   r1   r8   r3   r:   )r;   s   "r<   r=   r=   V   s      S T r?   c                   \         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.
rbs   #!pythonNFs   #!asciiwbT)osrM   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rM   script	firstlineexenamerests   &    r<   
fix_scriptrv   V   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                    V ^8  d   QhRRRR/# )r7   metadatar   r8   r3   r:   )r;   s   "r<   r=   r=   j   s     A AG A Ar?   c                H    V P                  R R4      P                  4       R8H  # )zRoot-Is-Purelibr]   true)getlower)rx   s   &r<   wheel_root_is_purelibr}   j   s"    <<)2.446&@@r?   c                    V ^8  d   QhRRRR/# )r7   distr   r8   z%tuple[dict[str, str], dict[str, str]]r:   )r;   s   "r<   r=   r=   n   s     ( (* (/T (r?   c                    / 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)iter_entry_pointsgroupvaluename)r   r   r   entry_points   &   r<   get_entrypointsr   n   so    OK--/ 110;0A0AO,,--/,7,=,=K(()	 0
 ''r?   c                    V ^8  d   QhRRRR/# )r7   scriptszSequence[str]r8   z
str | Noner:   )r;   s   "r<   r=   r=   y   s     E  E } E  E r?   c           	        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.
N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  L   "   T F  q'       g   K  V^ ,          R8H  x  K  	  R# 5i)    ~Nr:   ).0is   & r<   	<genexpr>4message_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.
)collectionsdefaultdictsetrf   rM   dirnamebasenameaddenvironr{   splitpathsepnormcasenormpathrU   sepappendrk   rl   itemssortedlenr;   joinany)r   grouped_by_dirdestfile
parent_dirscript_namer   not_warn_dirswarn_for	msg_linesdir_scriptssorted_scripts
start_textlast_line_fmtwarn_for_tildetilde_warning_msgs   &              r<   !message_about_scripts_not_on_PATHr   y   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                    V ^8  d   QhRRRR/# )r7   outrowszIterable[InstalledCSVRow]r8   zlist[tuple[str, str, str]]r:   )r;   s   "r<   r=   r=      s      &r?   c                &    \        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  B   "   T F  w  rq1V\        V4      3x  K  	  R # 5irA   )r1   )r   record_pathhash_sizes   &   r<   r   &_normalized_outrows.<locals>.<genexpr>   s!      HO,DKeSY's   )r   )r   s   &r<   _normalized_outrowsr      s    *  HO  r?   c               $    V ^8  d   QhRRRRRR/# )r7   r   r/   lib_dirr1   r8   r:   )r;   s   "r<   r=   r=      s!     . .J . . .r?   c                @    \         P                  P                  W4      # rA   )rf   rM   r   )r   r   s   &&r<   _record_to_fs_pathr      s    77<<--r?   c               $    V ^8  d   QhRRRRRR/# )r7   rM   r1   r   r8   r/   r:   )r;   s   "r<   r=   r=      s!     $ $S $3 $: $r?   c                   \         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      # )r   /r/   )rf   rM   
splitdriver|   relpathr#   r   r   )rM   r   s   &&r<   _fs_to_record_pathr      s}     
ww$"((*bgg.@.@.I!.L.R.R.TTwwt-<<S)Dd##r?   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r7   old_csv_rowszlist[list[str]]	installedzdict[RecordPath, RecordPath]r4   zset[RecordPath]	generated	list[str]r   r1   r8   zlist[InstalledCSVRow]r:   )r;   s   "r<   r=   r=      sD      !+  	
  r?   c                <   . 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: %sr/   r]   )
r   loggerwarningr   poprX   r   r   r   values)r   r   r4   r   r   installed_rowsrowold_record_pathnew_record_pathrS   rW   frM   installed_record_paths   &&&&&         r<   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                    V ^8  d   QhRRRR/# )r7   consolezdict[str, str]r8   r   r:   )r;   s   "r<   r=   r=   	  s     H Hn H Hr?   c                   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.
pipNENSUREPIP_OPTIONSzpip = r]   
altinstallz = zpip(\d+(\.\d+)?)?$easy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?${} = {})copyr   rf   r   r   r{   rk   version_infor   rematchextendr   r;   r   )r   scripts_to_generate
pip_scriptkpip_epeasy_install_scripteasy_install_eps   &      r<   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                  :    ] tR tRtR R ltR R ltR R ltRtR	# )
ZipBackedFileiT  c               (    V ^8  d   QhRRRRRRRR/# )	r7   r0   r/   r2   r1   zip_filer   r8   r9   r:   )r;   s   "r<   r=   ZipBackedFile.__annotate__U  s,      )69EL	r?   c                	8    Wn         W n        W0n        R V n        R# FN)r0   r2   	_zip_filer4   )rC   r0   r2   r   s   &&&&r<   __init__ZipBackedFile.__init__U  s      /"!r?   c                   V ^8  d   QhRR/# )r7   r8   r   r:   )r;   s   "r<   r=   r   ]  s     < <' <r?   c                	L    V P                   P                  V P                  4      # rA   )r   getinfor0   rB   s   &r<   _getinfoZipBackedFile._getinfo]  s    ~~%%d&:&:;;r?   c                   V ^8  d   QhRR/# r6   r:   )r;   s   "r<   r=   r   `  s     O Od Or?   c           	     	   \         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)re   N   )rf   rM   existsr2   unlinkr   rh   	file_sizer   minshutilcopyfileobjr+   r*   )rC   zipinfodestr   rN   s   &    r<   rD   ZipBackedFile.save`  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   r4   r2   r0   N)rF   rG   rH   rI   r   r   rD   rK   r:   r?   r<   r   r   T  s    <O Or?   r   c                  .    ] tR tRtR R ltR R ltRtR# )
ScriptFileiz  c                    V ^8  d   QhRRRR/# )r7   filer.   r8   r9   r:   )r;   s   "r<   r=   ScriptFile.__annotate__{  s      T d r?   c                	    Wn         V P                   P                  V n        V P                   P                  V n        R V n        R# r   )_filer0   r2   r4   )rC   r  s   &&r<   r   ScriptFile.__init__{  s1    
#zz99--r?   c                   V ^8  d   QhRR/# r6   r:   )r;   s   "r<   r=   r    s     2 2d 2r?   c                	n    V P                   P                  4        \        V P                  4      V n        R # rA   )r  rD   rv   r2   r4   rB   s   &r<   rD   ScriptFile.save  s     

!$..1r?   )r  r4   r2   r0   N)rF   rG   rH   rI   r   rD   rK   r:   r?   r<   r  r  z  s    2 2r?   r  c                  .   a  ] tR tRtR V 3R lltRtV ;t# )MissingCallableSuffixi  c                    V ^8  d   QhRRRR/# )r7   r   r1   r8   r9   r:   )r;   s   "r<   r=   "MissingCallableSuffix.__annotate__  s     
 
C 
D 
r?   c                	.   < \         SV `  R V R24       R# )zInvalid script entry point: z - A callable suffix is required. See https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.N)superr   )rC   r   	__class__s   &&r<   r   MissingCallableSuffix.__init__  s!    *;- 8 	
r?   r:   )rF   rG   rH   rI   r   rK   __classcell__r  s   @r<   r  r    s    
 
r?   r  c                    V ^8  d   QhRRRR/# )r7   specificationr1   r8   r9   r:   )r;   s   "r<   r=   r=     s     0 0 0 0r?   c                l    \        V 4      pVe%   VP                  f   \        \        V4      4      hR # R # rA   )r   suffixr  r1   )r   entrys   & r<   _raise_for_invalid_entrypointr$    s2    ]+EU\\1#CJ// 2r?   c                  V   a  ] tR tRt]P
                  ! R4      tRR V 3R llltRtV ;t	# )PipScriptMakeri  z        import sys
        from %(module)s import %(import_name)s
        if __name__ == '__main__':
            sys.argv[0] = sys.argv[0].removesuffix('.exe')
            sys.exit(%(func)s())
c               $    V ^8  d   QhRRRRRR/# )r7   r   r1   optionszdict[str, Any] | Noner8   r   r:   )r;   s   "r<   r=   PipScriptMaker.__annotate__  s$     4 4 4+@4	4r?   c                	8   < \        V4       \        SV `	  W4      # rA   )r$  r  make)rC   r   r(  r  s   &&&r<   r+  PipScriptMaker.make  s     	&m4w|M33r?   r:   rA   )
rF   rG   rH   rI   textwrapdedentscript_templater+  rK   r  r  s   @r<   r&  r&    s'     oo	O4 4 4r?   r&  c               <    V ^8  d   QhRRRRRRRRRR	R
R	RRRR	RR/	# )r7   r   r1   	wheel_zipr   
wheel_pathschemer!   	pycompiler3   warn_script_location
direct_urlDirectUrl | None	requestedr8   r9   r:   )r;   s   "r<   r=   r=     sm     ^4 ^4
^4^4 ^4 	^4
 ^4 ^4 !^4 ^4 
^4r?   c                  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        RPf                  S>Pi                  4       4      4      p*V(Pk                  V)4      p+V
Pm                  V+4       V
Pm                  V(Pk                  V*RR/4      4       V'       d%   \o        V+4      p,V,e   \R        Pq                  V,4       R\s        4       ( ,          o=\6        Pt                  R V=3R  ll4       p-\$        P&                  Pw                  S@V4      p.\$        P&                  Pw                  V.R!4      p/V-! V/4      ;_uu_ 4       p0V0Py                  R"4       RRR4       V
P{                  V/4       Ve}   \$        P&                  Pw                  V.\|        4      p1V-! V14      ;_uu_ 4       p2V2Py                  VP                  4       P                  R#4      4       RRR4       V
P{                  V14       V'       dP   \$        P&                  Pw                  V.R$4      p3\        V3R%4      ;_uu_ 4         RRR4       V
P{                  V34       VP                  R&4      p4\        \        P                  ! V4P                  4       4      4      p5\        V5S?S;V
S@R'7      p6\$        P&                  Pw                  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               (    V ^8  d   QhRRRRRRRR/# )	r7   srcfiler/   r   r1   modifiedr3   r8   r9   r:   )r;   s   "r<   r=   $_install_wheel.<locals>.__annotate__  s,     ! !!'*!6:!	!r?   c                `   < \        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<  newpathr4   r   r   s   &&& r<   record_installed(_install_wheel.<locals>.record_installed  s/     %Xw7$	'KK  r?   c                    V ^8  d   QhRRRR/# r7   rM   r/   r8   r3   r:   )r;   s   "r<   r=   r=    s     " "* " "r?   c                $    V P                  R 4      # )r   )endswithrM   s   &r<   is_dir_path#_install_wheel.<locals>.is_dir_path  s    }}S!!r?   c               $    V ^8  d   QhRRRRRR/# )r7   dest_dir_pathr1   target_pathr8   r9   r:   )r;   s   "r<   r=   r=    s!       # $ r?   c                d   < \        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   r;   )rJ  rK  messager2  s   && r<   assert_no_path_traversal0_install_wheel.<locals>.assert_no_path_traversal  s:    "=>>5  $z;F  ?r?   c               $    V ^8  d   QhRRRRRR/# )r7   r   r   r  r1   r8   Callable[[RecordPath], File]r:   )r;   s   "r<   r=   r=    s$     	% 	%	%!$	%	%	%r?   c                "   <a a R  VVV 3R llpV# )c                    V ^8  d   QhRRRR/# r7   r   r/   r8   r.   r:   )r;   s   "r<   r=   D_install_wheel.<locals>.root_scheme_file_maker.<locals>.__annotate__  s     	C 	Cz 	Cd 	Cr?   c                   < \         P                  P                  V 4      p\         P                  P                  SV4      pS! SV4       \	        WS4      # rA   )rf   rM   r   r   r   )r   normed_pathr2   rN  r  r   s   &  r<   make_root_scheme_fileM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sB    ''**;7KT;7I$T95 BBr?   r:   )r   r  rX  rN  s   ff r<   root_scheme_file_maker._install_wheel.<locals>.root_scheme_file_maker  s    	C 	C %$r?   c               $    V ^8  d   QhRRRRRR/# )r7   r   r   r3  r!   r8   rQ  r:   )r;   s   "r<   r=   r=    s$      %  % %#) %	% %r?   c                l   <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                    V ^8  d   QhRRRR/# rT  r:   )r;   s   "r<   r=   D_install_wheel.<locals>.data_scheme_file_maker.<locals>.__annotate__  s     	C 	Cz 	Cd 	Cr?   c           
       < \         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)	r7   zUnexpected file in z: zG. .data directory contents should be named like: '<scheme key>/<path>'.r   zUnknown scheme key used in z (for file zW). .data directory contents should be in subdirectories named with a valid scheme key ())rf   rM   r   r   r   
ValueErrorr   KeyErrorr   r   r   )r   rW  _
scheme_keydest_subpathrM  scheme_pathvalid_scheme_keysr2   rN  scheme_pathsr2  r   s   &        r<   make_data_scheme_fileM_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    getattr)r   r3  keyrj  ri  rN  r2  s   f&  @r<   data_scheme_file_maker._install_wheel.<locals>.data_scheme_file_maker  s<     >II[cWV11[I	C 	C6 %$; Js   1c                    V ^8  d   QhRRRR/# rC  r:   )r;   s   "r<   r=   r=    s     7 7* 7 7r?   c                R    V P                  R ^4      ^ ,          P                  R4      # )r   .data)r   rE  rF  s   &r<   is_data_scheme_path+_install_wheel.<locals>.is_data_scheme_path  s#    zz#q!!$--g66r?   c                    V ^8  d   QhRRRR/# rC  r:   )r;   s   "r<   r=   r=    s     W WJ W4 Wr?   c                    V P                  R ^4      p\        V4      ^8  ;'       d-    V^ ,          P                  R4      ;'       d    V^,          R8H  # )r   rr  r   )r   r   rE  )rM   partss   & r<   is_script_scheme_path-_install_wheel.<locals>.is_script_scheme_path  sH    

3"5zA~VV%("3"3G"<VVqYAVVr?   c                    V ^8  d   QhRRRR/# )r7   r  r.   r8   r3   r:   )r;   s   "r<   r=   r=  2  s     8 8D 8T 8r?   c                  < 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.pyai)r2   rf   rM   r   r|   rE  )r  rM   r   	matchnamer   guis   &   r<   is_entrypoint_wrapper-_install_wheel.<locals>.is_entrypoint_wrapper2  s     ~~ww%::<  ((Sb	IZZ\""<00Tc
IZZ\""6**Sb	IIG#77yC'77r?   c                   V ^8  d   QhRR/# )r7   r8   zGenerator[str, None, None]r:   )r;   s   "r<   r=   r=  U  s     & &#= &r?   c               3  *  <"   \        \        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   rf   rM   r   rg   rE  )installed_pathfull_installed_pathr   r   s     r<   pyc_source_file_paths-_install_wheel.<locals>.pyc_source_file_pathsU  sk     
 %S)9)9);%<=N"$'',,w"G77>>"566&//66%% >s   BBBc                    V ^8  d   QhRRRR/# )r7   rM   r1   r8   r:   )r;   s   "r<   r=   r=  b  s     6 6c 6c 6r?   c                @    \         P                  P                  V 4      # )z8Return the path the pyc file would have been written to.)	importlibutilcache_from_sourcerF  s   &r<   pyc_output_path'_install_wheel.<locals>.pyc_output_pathb  s    ~~//55r?   ignoreT)forcequietr/   r   Nr]   r   r~  i  c               $    V ^8  d   QhRRRRRR/# )r7   rM   r1   kwargsr   r8   zGenerator[BinaryIO, None, None]r:   )r;   s   "r<   r=   r=    s"      S C 4S r?   c              ;     <"   \        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rA   )r"   rf   chmodr   r#   )rM   r  r   generated_file_modes   &, r<   _generate_file&_install_wheel.<locals>._generate_file  sK     t.v..!G /
,- /.s   A1AAA1A.	)A1	INSTALLERs   pip
r_   	REQUESTEDre   RECORD)r   r4   r   r   wzIO[str])F)Kr,   r}   purelibplatlibr   r   listr/   namelistr
   r'   mapr	   r   r   r   r   r  rf   rM   r   r2   r%   r   rD   r0   r4   
contextlibredirect_stdoutr$   from_streamrk   stdoutwarningscatch_warningsfilterwarnings
compileallcompile_filer  r#   r   r   debuggetvaluer&  r   clobbervariantsset_moder   r   r;   r   make_multipler   r   r   r(   contextmanagerr   rq   r   r   to_jsonrm   rh   	read_textcsvreader
splitlinesr   r`   writer	writerowsr   )Ar   r1  r2  r3  r4  r5  r6  r8  info_dirrx   r   r@  rG  rZ  rn  rs  paths
file_pathsroot_scheme_pathsdata_scheme_pathsrX  filesrx  other_scheme_pathsscript_scheme_pathsrj  other_scheme_filesdistributionr  script_scheme_filesexisting_parentsr  r   r  r  r  rM   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgr  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filer  rN  r4   r   r  r~  r   r   sA   &&f&&&&&                                                  @@@@@@@r<   _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                    V ^8  d   QhRRRR/# )r7   req_descriptionr1   r8   zGenerator[None, None, None]r:   )r;   s   "r<   r=   r=     s     0 0s 0/J 0r?   c              #     "    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   args)r  erM  s   &  r<   req_error_contextr    sD     0 0o.b<(a/0s   A
 A?%:?Ac               <    V ^8  d   QhRRRRRRRRRRR	RR
RRRRR/	# )r7   r   r1   r2  r3  r!   r  r4  r3   r5  r6  r7  r8  r8   r9   r:   )r;   s   "r<   r=   r=     sb      
  	
   !  
r?   c                    \        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)
allowZip64)r   r1  r2  r3  r4  r5  r6  r8  N)r   r  r  )	r   r2  r3  r  r4  r5  r6  r8  zs	   &&&&&&&& r<   install_wheelr    s^     
	-	-//%#%9%#	 0 
.	-// 
.	-	-s!   A#A	A#A A##A4	)r   )TTNF)i__doc__
__future__r   r   r  r  r  r  loggingos.pathrf   r   r  rk   r-  r  base64r   collections.abcr   r   r   r   email.messager   	itertoolsr	   r
   r   typingr   r   r   r   r   r   r   r   zipfiler   r   pip._vendor.distlib.scriptsr   pip._vendor.distlib.utilr   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   pip._internal.locationsr   pip._internal.metadatar   r   r   pip._internal.models.direct_urlr   r   pip._internal.models.schemer    r!   pip._internal.utils.filesystemr"   r#   pip._internal.utils.miscr$   r%   r&   r'   pip._internal.utils.unpackingr(   r)   r*   r+   pip._internal.utils.wheelr,   r.   	getLoggerrF   r   r1   r/   tuplerO   InstalledCSVRowrX   r`   rv   r}   r   r   r   r   r   r   r   r   r  r  r$  r&  r  r  r  r  r:   r?   r<   <module>r     so   L "    
    	  
   $ C C ! 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?   