
    dh4m                    v   d Z ddlm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ZddlZddlZddlZddlmZ ddlmZmZmZmZ ddlmZ ddlmZmZmZ ddlmZmZm Z m!Z!m"Z"m#Z#m$Z$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/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZI ddlJmKZK  G d de#      ZL ej                  eN      ZO e"deP      ZQeReQePe$eSePf   f   ZTd0d1dZUd2dZVd3dZWd4dZXd5dZYd6dZZ	 	 	 	 d7dZ[d8d Z\d9d!Z]	 	 	 	 	 	 	 	 	 	 	 	 d:d"Z^d;d#Z_ G d$ d%      Z` G d& d'      Za G d( d)e0      Zbd<d*Zc G d+ d,e*      Zd	 	 	 	 d=	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d>d-Zeej                  d?d.       Zg	 	 	 	 d=	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d@d/Zhy)AzFSupport 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                  4    e Zd ZU ded<   ded<   ded<   d	dZy)
File
RecordPathsrc_record_pathstr	dest_pathboolchangedc                     y N selfs    h/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.pysavez	File.save>   s        NreturnNone)__name__
__module____qualname____annotations__r<   r8   r=   r;   r/   r/   9   s    NMr=   r/   r0   c                    t        | |      \  }}dt        |j                               j                  d      j	                  d      z   }|t        |      fS )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=latin1=)r'   r   digestdecoderstripr2   )path	blocksizehlengthrH   s        r;   rehashrO   H   sM    $	*IAv*188:6==hGNNsSSFCK  r=   c                    | dddS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
     utf-8)modenewlineencodingr8   )rS   s    r;   csv_io_kwargsrV   O   s     RW==r=   c                0   t         j                  j                  |       sJ t        | d      5 }|j	                         }|j                  d      s
	 ddd       yt        j                  j                  t        j                               }d|z   t         j                  j                  d      z   }|j                         }ddd       t        | d      5 }|j                         |j                         ddd       y# 1 sw Y   AxY w# 1 sw Y   yxY w)	zQReplace #!python with #!/path/to/python
    Return True if file was changed.
    rbs   #!pythonNFs   #!asciiwbT)osrK   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rK   script	firstlineexenamerests        r;   
fix_scriptrk   V   s    
 77>>$	dD	 VOO%	##K0  ..''(A(A(CDGObjj&7&7&@@	{{} 
dD	 VYT   s   #D A&D #D D	Dc                H    | j                  dd      j                         dk(  S )NzRoot-Is-PurelibrQ   true)getlower)metadatas    r;   wheel_root_is_purelibrq   j   s"    <<)2.446&@@r=   c                    i }i }| j                         D ]T  }|j                  dk(  r|j                  ||j                  <   ,|j                  dk(  s<|j                  ||j                  <   V ||fS )Nconsole_scriptsgui_scripts)iter_entry_pointsgroupvaluename)distrs   rt   entry_points       r;   get_entrypointsr{   n   sz    OK--/ > 110;0A0AOK,,--/,7,=,=K(()	>
 K''r=   c           	        | syt        j                  t              }| D ]T  }t        j                  j                  |      }t        j                  j                  |      }||   j                  |       V t        j                  j                  dd      j                  t        j                        D cg c][  }t        j                  j                  t        j                  j                  |            j                  t        j                        ] }}|j!                  t        j                  j                  t        j                  j                  t        j                  j                  t"        j$                                           |j'                         D  ci c]F  \  }} t        j                  j                  t        j                  j                  |            |vr|| H }}} |syg }|j'                         D ]l  \  }}	t)        |	      }
t+        |
      dk(  r
d|
d    d}n,dj-                  d	j/                  |
dd
       dz   |
d
   z         }|j!                  d| d| d       n d}t+        |      dk(  r!|j!                  |j-                  d             n |j!                  |j-                  d             t1        d t        j                  j                  dd      j                  t        j                        D              }|rd}|j!                  |       dj/                  |      S c c}w c c} }w )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PATHrQ      zscript r   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  2   K   | ]  }|s|d    dk(    yw)r   ~Nr8   ).0is     r;   	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>   s      Q!s   ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
)collectionsdefaultdictsetr[   rK   dirnamebasenameaddenvironrn   splitpathsepnormcasenormpathrJ   sepappendr`   ra   itemssortedlenformatjoinany)scripts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 4WW__X.
gg&&x0z"&&{34 +11"**= 	))!,-44RVV<M  
))"''//#..*IJK
 $2#7#7#9%J77BGG,,Z89N 	G%H %
  I#+>>#3 

K$*;$7~!#">!#4"5S9J)00		."-.8>";MMJ 	:,oj\9PQ	

	C  9~--.>?@--.ABC  ZZ^^FB7==bjjI N = 	 	*+ 99Yk%s   5A L6 AL;c                &    t        d | D              S )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  @   K   | ]  \  }}}||t        |      f  y wr7   )r2   )r   record_pathhash_sizes       r;   r   z&_normalized_outrows.<locals>.<genexpr>   s&      ,DKeSY's   )r   )outrowss    r;   _normalized_outrowsr      s    *  HO  r=   c                B    t         j                  j                  ||       S r7   )r[   rK   r   )r   lib_dirs     r;   _record_to_fs_pathr      s    77<<--r=   c                p   t         j                  j                  |       d   j                         t         j                  j                  |      d   j                         k(  r t         j                  j	                  | |      } | j                  t         j                  j                  d      } t        d|       S )Nr   /r0   )r[   rK   
splitdrivero   relpathr$   r   r   )rK   r   s     r;   _fs_to_record_pathr      s     
ww$"((*bgg.@.@.I!.L.R.R.TTwwtW-<<S)Dd##r=   c                   g }| D ]  }t        |      dkD  rt        j                  d|       t        d|d         }|j	                  ||      }||v rt        t        ||            \  }	}
n*t        |      dkD  r|d   nd}	t        |      dkD  r|d   nd}
|j                  ||	|
f        |D ]0  }t        ||      }t        |      \  }	}
|j                  ||	|
f       2 ||j                         D cg c]  }|ddf	 c}z   S c c}w )z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
       z,RECORD line has more than three elements: %sr0   r   r~   rQ      )
r   loggerwarningr   poprO   r   r   r   values)old_csv_rows	installedr5   	generatedr   installed_rowsrowold_record_pathnew_record_pathrH   rN   frK   installed_record_paths                 r;   get_csv_rows_for_installedr      s(    -/N 
As8a<NNI3O|SV4#--Ig%#$6$PQNFF"3x!|SVF"3x!|SVF?@
A  6!!W-tVV456 ENEUEUEW,A	B'   s   2Dc                ^   | j                         } g }| j                  dd      }|rdt        j                  vr|j	                  d|z          t        j                  j                  dd      dk7  r(|j	                  dt        j                  d    d|        |j	                  dt                d|        | D cg c]  }t        j                  d	|      s| }}|D ]  }| |=  | j                  d
d      }|rudt        j                  vr|j	                  d|z          |j	                  dt                d|        | D cg c]  }t        j                  d|      s| }}|D ]  }| |=  |j                  t        dj                  | j                                      |S c c}w c c}w )zk
    Given the mapping from entrypoint name to callable, return the relevant
    console script specs.
    pipNENSUREPIP_OPTIONSzpip = rQ   
altinstallr   z = zpip(\d+(\.\d+)?)?$easy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?${} = {})copyr   r[   r   r   rn   r`   version_infor   rematchextendr   r   r   )console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$K1F(J!KK 	A
	!++nd;bjj0&&'8;N'NO""356c:M9NO	

 
"((+G"KA
 
 ! 	A
	 wy'7'7IJ+ L
s   ;F%F%F* F*c                  4    e Zd Z	 	 	 	 	 	 	 	 ddZddZddZy)ZipBackedFilec                <    || _         || _        || _        d| _        y NF)r1   r3   	_zip_filer5   )r:   r1   r3   zip_files       r;   __init__zZipBackedFile.__init__U  s!      /"!r=   c                L    | j                   j                  | j                        S r7   )r   getinfor1   r9   s    r;   _getinfozZipBackedFile._getinfo]  s    ~~%%d&:&:;;r=   c                $   t         j                  j                  | j                        rt        j                  | j                         | j                         }t        | j                  d      5 }|j                  dkD  rQ| j                  j                  |      5 }t        |j                  d      }t        j                  |||       d d d        d d d        t        |      rt        | j                         y y # 1 sw Y   3xY w# 1 sw Y   7xY w)NrZ   r      )r[   rK   existsr3   unlinkr   r]   	file_sizer   minshutilcopyfileobjr,   r+   )r:   zipinfodestr   rL   s        r;   r<   zZipBackedFile.save`  s     77>>$..)IIdnn%--/ $..$' 	;4  1$^^((1 ;Q #G$5$5{ CI&&q$	:;	; "'*>t~~N +	; ;	; 	;s$   /+D.C:D:D	?DDN)r1   r0   r3   r2   r   r   r?   r@   )r?   r   r>   )rA   rB   rC   r   r   r<   r8   r=   r;   r   r   T  s2    )69EL	<Or=   r   c                      e Zd ZddZddZy)
ScriptFilec                    || _         | j                   j                  | _        | j                   j                  | _        d| _        y r   )_filer1   r3   r5   )r:   files     r;   r   zScriptFile.__init__{  s3    
#zz99--r=   c                l    | j                   j                          t        | j                        | _        y r7   )r   r<   rk   r3   r5   r9   s    r;   r<   zScriptFile.save  s     

!$..1r=   N)r   r/   r?   r@   r>   )rA   rB   rC   r   r<   r8   r=   r;   r   r   z  s    2r=   r   c                        e Zd Zd fdZ xZS )MissingCallableSuffixc                ,    t         |   d| d       y )NzInvalid script entry point: z - A callable suffix is required. See https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)superr   )r:   rz   	__class__s     r;   r   zMissingCallableSuffix.__init__  s!    *;- 8 	
r=   )rz   r2   r?   r@   )rA   rB   rC   r   __classcell__r   s   @r;   r   r     s    
 
r=   r   c                `    t        |       }|!|j                  t        t        |            y y r7   )r   suffixr   r2   )specificationentrys     r;   _raise_for_invalid_entrypointr    s2    ]+EU\\1#CJ// 2r=   c                  R     e Zd Z ej                  d      Z	 d	 	 	 	 	 d fdZ xZS )PipScriptMakerz        import sys
        from %(module)s import %(import_name)s
        if __name__ == '__main__':
            if sys.argv[0].endswith('.exe'):
                sys.argv[0] = sys.argv[0][:-4]
            sys.exit(%(func)s())
c                :    t        |       t        | 	  ||      S r7   )r  r   make)r:   r   optionsr   s      r;   r  zPipScriptMaker.make  s     	&m4w|M733r=   r7   )r   r2   r  zdict[str, Any] | Noner?   	list[str])rA   rB   rC   textwrapdedentscript_templater  r   r   s   @r;   r  r    sC     &hoo		O DH4 4+@4	4 4r=   r  c           
       :;<=>?@ t        ||       \  }}	t        |	      r|j                  @n|j                  @i ?t	               ;g }
	 d	 	 	 	 	 	 	 d ;?@fd}d!d}d"fd:	 	 	 	 	 	 d#:fd}	 	 	 	 	 	 d$:fd}d!d}t        t        t           |j                               }t        ||      }t        ||      \  }} ||@      }t        ||      }d!d}t        ||      \  }} |||      }t        ||      }t        ||      }t        t              t        |             }t!        |      \  <>d%<>fd	}t        ||      }t        ||      }t        t"        |      }t        ||      }t	               }|D ]  }t$        j&                  j)                  |j*                        } | |vrt-        |        |j/                  |        |j1                           ||j2                  |j*                  |j4                          d&?@fd
}!d'd}"|r"t7        j8                  t;        j<                  t>        j@                              5 }#tC        jD                         5  tC        jF                  d        |!       D ]  }$tI        jJ                  |$dd      }%|%s |"|$      }&t$        j&                  jM                  |&      sJ t        d|&jO                  t$        j&                  jP                  d            }' ||'|&        	 ddd       ddd       tR        jU                  #jW                                tY        d|jZ                        }(d|(_.        dh|(_/        d|(_0        tc        <      })t        te        djf                  >ji                                     }*|(jk                  |)      }+|
jm                  |+       |
jm                  |(jk                  |*ddi             |r"to        |+      },|,tR        jq                  |,       dts                z  =t6        jt                  d(=fd       }-t$        j&                  jw                  @|      }.t$        j&                  jw                  |.d      }/ |-|/      5 }0|0jy                  d       ddd       |
j{                  |/       |tt$        j&                  jw                  |.t|              }1 |-|1      5 }2|2jy                  |j                         j                  d             ddd       |
j{                  |1       |rGt$        j&                  jw                  |.d      }3t        |3d      5  	 ddd       |
j{                  |3       |j                  d      }4t        t        j                  |4j                                     }5t        |5?;|
@      }6t$        j&                  jw                  |.d      }7 |-|7fi t        d      5 }8t        j                  t        d|8            }9|9j                  t        |6             ddd       y# 1 sw Y   xY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   xY w# 1 sw Y   yxY w))a  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
    r0   c                P    t        |      }|| <   |rj                  |       yy)z6Map archive RECORD paths to installation RECORD paths.N)r   r   )srcfiler   modifiednewpathr5   r   r   s       r;   record_installedz(_install_wheel.<locals>.record_installed  s/     %Xw7$	'KK  r=   c                $    | j                  d      S )Nr   )endswithrK   s    r;   is_dir_pathz#_install_wheel.<locals>.is_dir_path  s    }}S!!r=   c                Z    t        | |      sd}t        |j                  ||             y )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r*   r   r   )dest_dir_pathtarget_pathmessage
wheel_paths      r;   assert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversal  s;    "=+>5  $z;F  ?r=   c                     d fd}|S )Nc                    t         j                  j                  |       }t         j                  j                  |      } |       t	        | |      S r7   )r[   rK   r   r   r   )r   normed_pathr3   r  r   r   s      r;   make_root_scheme_filezM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sD    ''**;7KT;7I$T95 iBBr=   r   r0   r?   r/   r8   )r   r   r  r  s   `` r;   root_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_maker  s    	C %$r=   c                f     t         D ci c]  }|t        ||       c}d fd}|S c c}w )Nc           
        t         j                  j                  |       }	 |j                  t         j                  j                  d      \  }}}	 
|   }t         j                  j                  ||      } 	||       t        | |      S # t
        $ r d d| d}t        |      w xY w# t        $ r5 dj                  t        
            }d d| d| d| d		}t        |      w xY w)
Nr   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 ())r[   rK   r   r   r   
ValueErrorr   KeyErrorr   r   r   )r   r  _
scheme_keydest_subpathr  scheme_pathvalid_scheme_keysr3   r  scheme_pathsr  r   s            r;   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$[)< 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 B- B*->C+r  )r!   getattr)r   schemekeyr,  r+  r  r  s   `   @r;   data_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_maker  s<     >IIcWVS11I	C 	C6 %$; Js   .c                J    | j                  dd      d   j                  d      S )Nr   r~   r   .data)r   r  r  s    r;   is_data_scheme_pathz+_install_wheel.<locals>.is_data_scheme_path  s#    zz#q!!$--g66r=   c                    | j                  dd      }t        |      dkD  xr |d   j                  d      xr |d   dk(  S )Nr   r   r   r2  r~   r   )r   r   r  )rK   partss     r;   is_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path   sB    

3"5zA~V%("3"3G"<VqYAVVr=   c                P   | j                   }t        j                  j                  |      }|j	                         j                  d      r|d d }nL|j	                         j                  d      r|d d }n'|j	                         j                  d      r|d d }n|}|v xs |v S )Nz.exez
-script.pyiz.pya)r3   r[   rK   r   ro   r  )r   rK   rx   	matchnamer   guis       r;   is_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper3  s     ~~ww%::<  (Sb	IZZ\""<0Tc
IZZ\""6*Sb	IIG#7yC'77r=   c               3    K   t        t        j                                     D ]X  } t        j                  j                  |       }t        j                  j                  |      sC|j                  d      sU| Z y w)Nz.py)r   r   r   r[   rK   r   r\   r  )installed_pathfull_installed_pathr   r   s     r;   pyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsV  sk     
 %S)9)9);%<= 	&N"$'',,w"G77>>"56&//6%%	&s   A?Bc                @    t         j                  j                  |       S )z8Return the path the pyc file would have been written to.)	importlibutilcache_from_sourcer  s    r;   pyc_output_pathz'_install_wheel.<locals>.pyc_output_pathc  s    ~~//55r=   ignoreT)forcequietr   NrQ   r   r:  i  c              ;     K   t        | fi |5 }| d d d        t        j                  j                         t	        |j                  |        y # 1 sw Y   @xY wwr7   )r#   r[   chmodrx   r$   )rK   kwargsr   generated_file_modes      r;   _generate_filez&_install_wheel.<locals>._generate_file  sP     t.v. 	!G	
,-	 	s   A A?A AA 	INSTALLERs   pip
rR   	REQUESTEDrZ   RECORD)r   r5   r   r   wzIO[str])F)r  r0   r   r2   r  r4   r?   r@   )rK   r0   r?   r4   )r  r2   r  r2   r?   r@   )r   r   r   r2   r?   Callable[[RecordPath], File])r   r   r.  r"   r?   rQ  )r   r/   r?   r4   )r?   zGenerator[str, None, None])rK   r2   r?   r2   )rK   r2   rJ  r   r?   zGenerator[BinaryIO, None, None])Kr-   rq   purelibplatlibr   r   listr0   namelistr   r(   mapr
   r   r   r   r{   r   r[   rK   r   r3   r&   r   r<   r1   r5   
contextlibredirect_stdoutr%   from_streamr`   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   rf   r   r   to_jsonrb   r]   	read_textcsvreader
splitlinesr   rV   writer	writerowsr   )Arx   	wheel_zipr  r.  	pycompilewarn_script_location
direct_url	requestedinfo_dirrp   r   r  r  r   r0  r3  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr  filesr6  other_scheme_pathsscript_scheme_pathsr,  other_scheme_filesdistributionr;  script_scheme_filesexisting_parentsr   r   r?  rD  rZ  rK   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrL  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filerl  r  r5   r   rK  r:  r   r   sA     `                                                       @@@@@@@r;   _install_wheelr    s    2 %Y5HhX&.... /1I"uGI >C!!'*!6:!	!"	%	%!$	%	%	% % %#) %	% %D7 j!9#5#5#78E[%0J+45H*+U((29gF 57HIEW /80/++ 39fE24FG%+,E *
#$L #<0LGS8  +.2+ &&;=PQj*=>%,-Eu 	M WW__T^^4
--z"  ,		--t~~t||L	M&6
 ''%%cjj1
 	D((* 
D''113 DD(55d$dSG#24#8!ww~~h777*.((*:*:277;;*L+ )(CD
D	D 	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, 	H!!*"4"4"6"="=g"FG	H) m[A.$' 		(((2Kszz+"8"8":;<K%D '',,}h7K		:}S'9	: 4k DK89,T23	4 4s
D 
D	D 	Dx' '	H 	H	 	$4 4s[   X):XA(XX)0X6	/Y?Y:YX&	!X))X36Y YYY&c              #  z   K   	 d  y # t         $ r&}d|  d|j                  d    }t        |      |d }~ww xY ww)Nz	For req: z. r   )r   args)req_descriptioner  s      r;   req_error_contextr    sE     0 0o.b<(a/0s   ;	 ;	8!38;c                    t        |d      5 }t        |      5  t        | |||||||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NT)
allowZip64)rx   rn  r  r.  ro  rp  rq  rr  )r   r  r  )	rx   r  r.  r  ro  rp  rq  rr  zs	            r;   install_wheelr    sg     
	- / 
	%#%9%#	
	 
	 
	 s   A?AA	AA)r   )rK   r2   rL   intr?   ztuple[str, str])rS   r2   r?   zdict[str, Any])rK   r2   r?   r4   )rp   r	   r?   r4   )ry   r   r?   z%tuple[dict[str, str], dict[str, str]])r   zSequence[str]r?   z
str | None)r   zIterable[InstalledCSVRow]r?   zlist[tuple[str, str, str]])r   r0   r   r2   r?   r2   )rK   r2   r   r2   r?   r0   )r   zlist[list[str]]r   zdict[RecordPath, RecordPath]r5   zset[RecordPath]r   r  r   r2   r?   zlist[InstalledCSVRow])r   zdict[str, str]r?   r  )r   r2   r?   r@   )TTNF)rx   r2   rn  r   r  r2   r.  r"   ro  r4   rp  r4   rq  DirectUrl | Nonerr  r4   r?   r@   )r  r2   r?   zGenerator[None, None, None])rx   r2   r  r2   r.  r"   r  r2   ro  r4   rp  r4   rq  r  rr  r4   r?   r@   )i__doc__
__future__r   r   r^  rW  ri  rA  loggingos.pathr[   r   r   r`   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/   	getLoggerrA   r   r2   r0   tupler  InstalledCSVRowrO   rV   rk   rq   r{   r   r   r   r   r   r   r   r   r   r  r  r  rf  r  r  r8   r=   r;   <module>r     s   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[ 44 !%#'^4
^4^4 ^4 	^4
 ^4 ^4 !^4 ^4 
^4B	 0 0 !%#'
  	
   !  
r=   