
     hk                        d Z ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl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mZ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l0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZE ddlFmGZGmHZHmIZImJZJ ddlKmLZL  G d de!          ZM ejN        eO          ZP edeQ          ZRe$eReQe%eSeQf         f         ZTdKdeQdeSde$eQeQf         fdZUdeQdeeQef         fdZVdeQdeWfdZXdedeWfd ZYd!e5de$eeQeQf         eeQeQf         f         fd"ZZd#e"eQ         de eQ         fd$Z[d%eeT         dee$eQeQeQf                  fd&Z\d'eRd(eQdeQfd)Z]deQd(eQdeRfd*Z^d+eeeQ                  d,eeReRf         d-e#eR         d.eeQ         d(eQdeeT         fd/Z_d0eeQeQf         deeQ         fd1Z` G d2 d3          Za G d4 d5          Zb G d6 d7e1          Zcd8eQddfd9Zd G d: d;e+          Ze	 	 	 	 dLd>eQd?e(d@eQdAe=dBeWdCeWdDe e:         dEeWddfdFZfejg        dGeQdedH         fdI            Zh	 	 	 	 dLd>eQd@eQdAe=dGeQdBeWdCeWdDe e:         dEeWddfdJZidS )MzFSupport 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                   6    e Zd ZU ded<   eed<   eed<   ddZdS )	File
RecordPathsrc_record_path	dest_pathchangedreturnNc                     d S N selfs    e/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.pysavez	File.saveC   s        r8   N)__name__
__module____qualname____annotations__strboolr?   r;   r@   r>   r3   r3   >   sH         !!!!NNNMMM     r@   r3   r4      path	blocksizer8   c                     t          | |          \  }}dt          |                                                              d                              d          z   }|t          |          fS )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=latin1=)r+   r   digestdecoderstriprF   )rI   rJ   hlengthrN   s        r>   rehashrS   M   s]    $	**IAv*188::66==hGGNNsSSSFCKK  r@   modec                     | dddS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
     utf-8)rT   newlineencodingr;   )rT   s    r>   csv_io_kwargsrZ   T   s     RW===r@   c                 |   t           j                            |           sJ t          | d          5 }|                                }|                    d          s	 ddd           dS t          j                            t          j	                              }d|z   t           j
                            d          z   }|                                }ddd           n# 1 swxY w Y   t          | d          5 }|                    |           |                    |           ddd           n# 1 swxY w Y   dS )	zQReplace #!python with #!/path/to/python
    Return True if file was changed.
    rbs   #!pythonNFs   #!asciiwbT)osrI   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rI   script	firstlineexenamerests        r>   
fix_scriptro   [   s   
 7>>$	dD		 VOO%%	##K00 	        .''(A(C(CDDGObj&7&7&@&@@	{{}}               
dD		 VYT               4s*   +C*A)CC#&C#:+D11D58D5metadatac                 Z    |                      dd                                          dk    S )NzRoot-Is-PurelibrV   true)getlower)rp   s    r>   wheel_root_is_purelibru   o   s(    <<)2..4466&@@r@   distc                     i }i }|                                  D ]7}|j        dk    r|j        ||j        <   |j        dk    r|j        ||j        <   8||fS )Nconsole_scriptsgui_scripts)iter_entry_pointsgroupvaluename)rv   rx   ry   entry_points       r>   get_entrypointsr   s   ss    OK--// > > 1110;0AOK,---//,7,=K()K''r@   scriptsc           	         | sdS t          j        t                    }| D ][}t          j                            |          }t          j                            |          }||                             |           \d t          j        	                    dd          
                    t          j                  D                                 t          j                            t          j                            t          j                            t          j                                                 fd|                                D             }|sdS g }|                                D ]\  }}t%          |          }t'          |          dk    rd|d          d	}	n<d
                    d                    |dd                   dz   |d         z             }	|                    d|	 d| d           d}
t'          |          dk    r)|                    |
                    d                     n(|                    |
                    d                     t-          d t          j        	                    dd          
                    t          j                  D                       }|rd}|                    |           d                    |          S )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.
    Nc                     g | ][}t           j                            t           j                            |                                        t           j                  \S r;   )r_   rI   normcasenormpathrP   sep.0is     r>   
<listcomp>z5message_about_scripts_not_on_PATH.<locals>.<listcomp>   sX        	))!,,--44RV<<  r@   PATHrV   c                     i | ]F\  }}t           j                            t           j                            |                    vC||GS r;   )r_   rI   r   r   )r   
parent_dirr   not_warn_dirss      r>   
<dictcomp>z5message_about_scripts_not_on_PATH.<locals>.<dictcomp>   sT     % % %J7BG,,Z8899NN 	GNNNr@      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   | ]}||d          dk    V  dS )r   ~Nr;   r   s     r>   	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>   sC        Q	!     r@   ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
)collectionsdefaultdictsetr_   rI   dirnamebasenameaddenvironrs   splitpathsepappendr   r   rd   re   itemssortedlenformatjoinany)r   grouped_by_dirdestfiler   script_namewarn_for	msg_linesdir_scriptssorted_scripts
start_textlast_line_fmtwarn_for_tildetilde_warning_msgr   s                @r>   !message_about_scripts_not_on_PATHr   ~   s   
  t +6*A#*F*FN 4 4W__X..
g&&x00z"&&{3333 ++11"*==  M 
))"'//#.*I*IJJKK  % % % %#1#7#7#9#9% % %H
  t I#+>>#3#3 
 

K$*;$7$7~!##9>!#4999JJ)00		."-..8>";MM J 	Q:QQjQQQ	
 	
 	
 	

	C  9~~--.>??@@@@--.ABBCCC   Z^^FB77==bjII    N  ,= 	 	*+++ 99Yr@   outrowsc                 4    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   B   K   | ]\  }}}||t          |          fV  d S r:   )rF   )r   record_pathhash_sizes       r>   r   z&_normalized_outrows.<locals>.<genexpr>   sF        ,DKeSYY'     r@   )r   )r   s    r>   _normalized_outrowsr      s2    *   HO     r@   r   lib_dirc                 B    t           j                            ||           S r:   )r_   rI   r   )r   r   s     r>   _record_to_fs_pathr      s    7<<---r@   c                    t           j                            |           d                                         t           j                            |          d                                         k    r t           j                            | |          } |                     t           j        j        d          } t          d|           S )Nr   /r4   )r_   rI   
splitdrivert   relpathr(   r   r   )rI   r   s     r>   _fs_to_record_pathr      s     
w$"((**bg.@.@.I.I!.L.R.R.T.TTTwtW--<<S))Dd###r@   old_csv_rows	installedr7   	generatedc                 r   g }| D ]}t          |          dk    rt                              d|           t          d|d                   }|                    ||          }||v r!t          t          ||                    \  }	}
n:t          |          dk    r|d         nd}	t          |          dk    r|d         nd}
|                    ||	|
f           |D ]<}t          ||          }t          |          \  }	}
|                    ||	|
f           =|d |	                                D             z   S )	z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
       z,RECORD line has more than three elements: %sr4   r   r   rV      c                     g | ]}|d d fS )rV   r;   )r   installed_record_paths     r>   r   z.get_csv_rows_for_installed.<locals>.<listcomp>	  s-       ,A	B'  r@   )
r   loggerwarningr   poprS   r   r   r   values)r   r   r7   r   r   installed_rowsrowold_record_pathnew_record_pathrN   rR   frI   s                r>   get_csv_rows_for_installedr      sa    -/N 
A 
As88a<<NNI3OOO|SV44#--IIg%%#$6$P$PQQNFFF"3xx!||SVVF"3xx!||SVVF?@@@@ 6 6!!W--tVV45555  ENEUEUEWEW    r@   consolec                 (   |                                  } g }|                     dd          }|rdt          j        vr|                    d|z              t          j                            dd          dk    r+|                    dt          j        d          d|            |                    dt                       d|            d	 | D             }|D ]}| |= |                     d
d          }|radt          j        vr|                    d|z              |                    dt                       d|            d | D             }|D ]}| |= |	                    t          dj        |                                                      |S )zk
    Given the mapping from entrypoint name to callable, return the relevant
    console script specs.
    pipNENSUREPIP_OPTIONSzpip = rV   
altinstallr   z = c                 <    g | ]}t          j        d |          |S )zpip(\d+(\.\d+)?)?$rematchr   ks     r>   r   z,get_console_script_specs.<locals>.<listcomp>A  s*    KKK1F(J(JK!KKKr@   easy_installzeasy_install = zeasy_install-c                 <    g | ]}t          j        d |          |S )zeasy_install(-\d+\.\d+)?$r   r   s     r>   r   z,get_console_script_specs.<locals>.<listcomp>M  s:     
 
 
"(+G"K"K

 
 
r@   {} = {})copyr   r_   r   r   rs   rd   version_infor   extendr   r   r   )r   scripts_to_generate
pip_scriptpip_epr   easy_install_scripteasy_install_eps          r>   get_console_script_specsr     s    llnnGB UD))J bj00&&x*'<===:>>-r22lBB&&'QS-=a-@'Q'QZ'Q'QRRR""#S)@)B)B#S#Sz#S#STTTKKWKKK 	 	A

!++nd;; bj00&&'8;N'NOOO""O355OO:MOO	
 	
 	

 

 
 
 ! 	 	A

 wy'7IIJJJr@   c                   :    e Zd ZdedededdfdZdefdZd	dZ	dS )
ZipBackedFiler5   r6   zip_filer8   Nc                 >    || _         || _        || _        d| _        d S NF)r5   r6   	_zip_filer7   )r=   r5   r6   r   s       r>   __init__zZipBackedFile.__init__Z  s%      /"!r@   c                 @    | j                             | j                  S r:   )r   getinfor5   r<   s    r>   _getinfozZipBackedFile._getinfob  s    ~%%d&:;;;r@   c                    t           j                            | j                  rt          j        | j                   |                                 }t          | j        d          5 }|j        dk    r]| j                            |          5 }t          |j        d          }t          j        |||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |          rt          | j                   d S d S )Nr^   r   rH   )r_   rI   existsr6   unlinkr   ra   	file_sizer   minshutilcopyfileobjr0   r/   )r=   zipinfodestr   rJ   s        r>   r?   zZipBackedFile.savee  ss    7>>$.)) 	&Idn%%%--// $.$'' 	;4 1$$^((11 ;Q #G$5{ C CI&q$	:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; "'** 	O>t~NNNNN	O 	Os6   '&C,C9CC			CC		CC #C rA   )
rB   rC   rD   r4   rF   r   r   r   r   r?   r;   r@   r>   r   r   Y  s}        )69EL	   <' < < < <O O O O O Or@   r   c                       e Zd ZddZddZdS )	
ScriptFilefiler3   r8   Nc                 f    || _         | j         j        | _        | j         j        | _        d| _        d S r   )_filer5   r6   r7   )r=   r   s     r>   r   zScriptFile.__init__  s-    
#z9-r@   c                 j    | j                                          t          | j                  | _        d S r:   )r  r?   ro   r6   r7   r<   s    r>   r?   zScriptFile.save  s)    
!$.11r@   )r   r3   r8   NrA   )rB   rC   rD   r   r?   r;   r@   r>   r   r     s<           2 2 2 2 2 2r@   r   c                   (     e Zd Zdeddf fdZ xZS )MissingCallableSuffixr~   r8   Nc                 R    t                                          d| d           d S )NzInvalid script entry point: z - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)superr   )r=   r~   	__class__s     r>   r   zMissingCallableSuffix.__init__  s?    ;   	
 	
 	
 	
 	
r@   )rB   rC   rD   rF   r   __classcell__r  s   @r>   r  r    sK        
C 
D 
 
 
 
 
 
 
 
 
 
r@   r  specificationc                 r    t          |           }|#|j        t          t          |                    d S d S r:   )r   suffixr  rF   )r
  entrys     r>   _raise_for_invalid_entrypointr    s>    ]++EU\1#CJJ/// 11r@   c                   X     e Zd Z	 ddedeeeef                  dee         f fdZ xZ	S )PipScriptMakerNr
  optionsr8   c                 f    t          |           t                                          ||          S r:   )r  r  make)r=   r
  r  r  s      r>   r  zPipScriptMaker.make  s+     	&m444ww||M7333r@   r:   )
rB   rC   rD   rF   r   r   r	   r   r  r  r	  s   @r>   r  r    sn        FJ4 4 4+3DcN+C4	c4 4 4 4 4 4 4 4 4 4r@   r  TFr}   	wheel_zip
wheel_pathscheme	pycompilewarn_script_location
direct_url	requestedc           
        :;<=>?@ t          ||           \  }}	t          |	          r|j        @n|j        @i ?t	                      ;g }
	 d-dt
          dt          dt          ddf;?@fd}dt
          dt          fd	}d
t          dt          ddffd:dt          dt          dt          t
          gdf         f:fd}dt          dt          dt          t
          gdf         f:fd}dt
          dt          fd}t          t          t
                   |                                          }t          ||          }t          ||          \  }} ||@          }t!          ||          }dt
          dt          fd}t          ||          \  }} |||          }t!          ||          }t#          ||          }t%          t'                    t)          |                     }t+          |          \  <>dddt          f<>fd}t!          ||          }t          ||          }t!          t,          |          }t#          ||          }t	                      }|D ]~}t.          j                            |j                  } | |vr$t7          |            |                    |            |                                  ||j        |j        |j                   dt@          t          ddf         f?@fd}!dt          dt          fd}"|rEtC          j"        tG          j$        tJ          j&                            5 }#tO          j(                    5  tO          j)        d            |!            D ]}$tU          j+        |$dd          }%|%rk |"|$          }&t.          j        ,                    |&          sJ t          d|&-                    t.          j        j.        d                    }' ||'|&           	 ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   t^          0                    |#1                                           te          d|j3                  }(d|(_4        dh|(_5        d|(_6        to          <          })tq          ts          dj:        >;                                                    }*|(<                    |)          }+|
=                    |+           |
=                    |(<                    |*d di                     |r+t}          |+          },|,t^          ?                    |,           d!t                       z  =tB          jA        dt          d"t          dt@          t          ddf         f=fd#            }-t.          j        D                    @|          }.t.          j        D                    |.d$          }/ |-|/          5 }0|0E                    d%           ddd           n# 1 swxY w Y   |
F                    |/           |t.          j        D                    |.t                    }1 |-|1          5 }2|2E                    |H                                I                    d&                     ddd           n# 1 swxY w Y   |
F                    |1           |r^t.          j        D                    |.d'          }3t          |3d(          5  	 ddd           n# 1 swxY w Y   |
F                    |3           |K                    d)          }4tq          t          jM        |4N                                                    }5t          |5?;|
@*          }6t.          j        D                    |.d)          }7 |-|7fi t          d+          5 }8t          jQ        t          d,|8                    }9|9R                    t          |6                     ddd           dS # 1 swxY w Y   dS ).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
    Fsrcfiler   modifiedr8   Nc                 d    t          |          }|| <   |r                    |           dS dS )z6Map archive RECORD paths to installation RECORD paths.N)r   r   )r  r   r  newpathr7   r   r   s       r>   record_installedz(_install_wheel.<locals>.record_installed  sH     %Xw77$	' 	!KK     	! 	!r@   rI   c                 ,    |                      d          S )Nr   )endswithrI   s    r>   is_dir_pathz#_install_wheel.<locals>.is_dir_path  s    }}S!!!r@   dest_dir_pathtarget_pathc                 t    t          | |          s&d}t          |                    ||                     d S )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r.   r   r   )r%  r&  messager  s      r>   assert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversal  sP    "=+>> 	5  $z;FF  	 	r@   r   r   r3   c                 .     dt           ddf fd}|S )Nr   r8   r3   c                     t           j                            |           }t           j                            |          } |           t	          | |          S r:   )r_   rI   r   r   r   )r   normed_pathr6   r)  r   r   s      r>   make_root_scheme_filezM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sR    '**;77KT;77I$$T9555 iBBBr@   )r4   )r   r   r-  r)  s   `` r>   root_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_maker  sM    	Cz 	Cf 	C 	C 	C 	C 	C 	C 	C 	C %$r@   r  c                 X     fdt           D             dt          ddf fd}|S )Nc                 2    i | ]}|t          |          S r;   )getattr)r   keyr  s     r>   r   zB_install_wheel.<locals>.data_scheme_file_maker.<locals>.<dictcomp>  s%    IIIcWVS11IIIr@   r   r8   r3   c           
         t           j                            |           }	 |                    t           j        j        d          \  }}}n&# t
          $ r d d| d}t          |          w xY w	 
|         }nN# t          $ rA d                    t          
                    }d d| d| d| d		}t          |          w xY wt           j                            ||          } 	||           t          | |          S )
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_   rI   r   r   r   
ValueErrorr   KeyErrorr   r   r   )r   r,  _
scheme_keydest_subpathr(  scheme_pathvalid_scheme_keysr6   r)  scheme_pathsr  r   s            r>   make_data_scheme_filezM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file  sl   '**;77K1.9.?.?Q.O.O+:|| 1 1 1M* M M M M M  (0001
1*:6 1 1 1$(IIf\.B.B$C$C!1* 1 1
 1 1!,1 1 .1 1 1  (0001 [,??I$$[)<<< iBBBs   )A #A/3A< <AC)r%   r4   )r   r  r=  r<  r)  r  s   `` @r>   data_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_maker  sp     JIII[III	Cz 	Cf 	C 	C 	C 	C 	C 	C 	C 	C 	C6 %$r@   c                 `    |                      dd          d                             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66r@   c                     |                      dd          }t          |          dk    o&|d                             d          o|d         dk    S )Nr   r   r   r@  r   r   )r   r   r"  )rI   partss     r>   is_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path  sJ    

3""5zzA~V%("3"3G"<"<VqYAVVr@   r   c                    | j         }t          j                            |          }|                                                    d          r|d d         }nf|                                                    d          r|d d         }n4|                                                    d          r|d d         }n|}|v p|v S )Nz.exez
-script.pyiz.pya)r6   r_   rI   r   rt   r"  )r   rI   r}   	matchnamer   guis       r>   is_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper+  s     ~w%%::<<  (( 	SbS	IIZZ\\""<00 	TcT
IIZZ\\""6** 	SbS	IIIG#7yC'77r@   c               3   "  K   t          t                                                              D ]\} t          j                            |           }t          j                            |          sB|                    d          sX|V  ]d S )Nz.py)r   r   r   r_   rI   r   r`   r"  )installed_pathfull_installed_pathr   r   s     r>   pyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsN  s      
 %S)9)9););%<%<== 	& 	&N"$',,w"G"G7>>"566 &//66 %%%%%	& 	&r@   c                 @    t           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_path[  s    ~//555r@   ignoreT)forcequietr4   r   rV   r   rH  i  kwargsc              ;      K   t          | fi |5 }|V  d d d            n# 1 swxY w Y   t          j        |j                   t	          |j        |            d S r:   )r'   r_   chmodr}   r(   )rI   rV  r   generated_file_modes      r>   _generate_filez&_install_wheel.<locals>._generate_file  s      t..v.. 	!GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
,---s   "&&	INSTALLERs   pip
rW   	REQUESTEDr^   RECORD)r   r7   r   r   wzIO[str])F)Tr1   ru   purelibplatlibr   r4   rF   rG   r   r   r&   r   r   namelistr   r,   mapr   r"   r!   r   r   r   r_   rI   r   r6   r*   r   r?   r5   r7   r   
contextlibredirect_stdoutr)   from_streamrd   stdoutwarningscatch_warningsfilterwarnings
compileallcompile_filer   r(   r   r   debuggetvaluer  r   clobbervariantsset_moder   listr   r   r   make_multipler   r   r   r-   contextmanagerr	   r
   r   rj   r   r#   to_jsonrf   ra   	read_textcsvreader
splitlinesr   rZ   writer	writerowsr   )Ar}   r  r  r  r  r  r  r  info_dirrp   r   r   r$  r.  r>  rA  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr-  filesrD  other_scheme_pathsscript_scheme_pathsr=  other_scheme_filesdistributionrI  script_scheme_filesexisting_parentsr   r   rM  rR  rf  rI   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrZ  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filery  r)  r7   r   rY  rH  r   r   sA     `                                                       @@@@@@@r>   _install_wheelr    s
   2 %Y55HhX&& !.. /1I"uuGI >C! !!'*!6:!	! ! ! ! ! ! ! !"* " " " " " # $      	%	%!$	%	:,&	'	% 	% 	% 	% 	% 	% % %#) %	:,&	' %  %  %  %  %  %  %D7* 7 7 7 7 7 j!9#5#5#7#788E[%00J+45H*+U+U((229gFF 57HIIEWJ W4 W W W W /80/ /++ 329fEE24FGG%+,,E *
##$ L #<00LGS8F 8t 8 8 8 8 8 8 8  +.2+ + &&;=PQQj*=>>%,--Euu 	M 	M W__T^44
---z"""  ,,,		-t~t|LLLL&9S$_#= & & & & & & &6c 6c 6 6 6 6
  ('%cj11
 
 	D(** 
D 
D'1111133 D DD(5d$dSSSG D#2?4#8#8!w~~h77777*.((*:*:27;*L*L+ + )((CCCD
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	V__&&'''400E EM
 TEN
 EN 37;;"79+;SYY[[#I#IJJ % 3 34G H H.///U(()@5$-PPQQQ  /0IJJ?NN3=??"22S C Ihd>R4S       GLL(33M W\\-==N		'	' '>X&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '^$$$ ',,}6NOO^O,, 	H!!*"4"4"6"6"="=g"F"FGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H)))  )m[AA.$'' 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	(((((22Ksz+"8"8":":;;<<K%  D ',,}h77K		:	:}S'9'9	:	: 4k DK8899,T22333	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   =PB&P8PP	PP	PP"PW<<X X ;ZZZ'[55[9<[9'A_99_= _=req_description)NNNc              #   ~   K   	 d V  d S # t           $ r(}d|  d|j        d          }t          |          |d }~ww xY w)Nz	For req: z. r   )r   args)r  er(  s      r>   req_error_contextr    sb      0 0 0 0<o<<<<((a/0s   
 
<#7<c                     t          |d          5 }t          |          5  t          | |||||||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NT)
allowZip64)r}   r  r  r  r  r  r  r  )r   r  r  )	r}   r  r  r  r  r  r  r  zs	            r>   install_wheelr    s
    
	-	-	- // 
	 
	%#%9%#	 	 	 	
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	                 s3   AAAA
	
AA
	AA"%A")rH   )TTNF)j__doc__r   rj  rc  rv  rO  loggingos.pathr_   r   r   rd   rg  base64r   email.messager   	itertoolsr   r   r   typingr   r	   r
   r   r   r   r   r   r   r   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/   r0   pip._internal.utils.wheelr1   r3   	getLoggerrB   r   rF   r4   intInstalledCSVRowrS   rZ   rG   ro   ru   r   r   r   r   r   r   r   r   r   r  r  r  r  rs  r  r  r;   r@   r>   <module>r     s   L L             



       				  



  $ $ $ $ $ $ ! ! ! ! ! ! 1 1 1 1 1 1 1 1 1 1                                     & % $ $ $ $ $ $ $ 3 3 3 3 3 3 5 5 5 5 5 5 9 9 9 9 9 9 6 6 6 6 6 6 ; ; ; ; ; ;         
 P O O O O O O O ; ; ; ; ; ; ; ; E E E E E E E E T T T T T T T T T T T T            2 1 1 1 1 1    8    
	8	$	$W\3''

CsCx89! ! ! !5c? ! ! ! !> >S#X > > > >S T    (AG A A A A A(* (uT#s(^T#s(^5S/T ( ( ( (E x} E # E  E  E  E Po&	%S#
   4.J . . . . . .$S $3 $: $ $ $ $tCy/J
*+ _ Cy	
  
/   @Hd38n Hc H H H HV#O #O #O #O #O #O #O #OL	2 	2 	2 	2 	2 	2 	2 	2
 
 
 
 
- 
 
 
0 0 0 0 0 04 4 4 4 4[ 4 4 4 !%&*^4 ^4
^4^4 ^4 	^4
 ^4 ^4 #^4 ^4 
^4 ^4 ^4 ^4B	 0s 0y9I/J 0 0 0 0 !%&* 
  	
   #  
     r@   