
    !2i4m                    <   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jM        eN          ZO e"deP          ZQeReQePe$eSePf         f         ZTdcddd ZUded#ZVdfd%ZWdgd(ZXdhd,ZYdid0ZZdjd4Z[dkd7Z\dld8Z]dmdBZ^dndEZ_ G dF dG          Z` G dH dI          Za G dJ dKe0          ZbdodNZc G dO dPe*          Zd	 	 	 	 dpdqd^Zeejf        drda            Zg	 	 	 	 dpdsdbZhdS )tzFSupport 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                  6    e Zd ZU ded<   ded<   ded<   dd	Zd
S )File
RecordPathsrc_record_pathstr	dest_pathboolchangedreturnNonec                    d S N selfs    e/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.pysavez	File.save>   s        Nr6   r7   )__name__
__module____qualname____annotations__r>   r:   r?   r=   r/   r/   9   sH         NNNMMM     r?   r/   r0      pathr2   	blocksizeintr6   tuple[str, str]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rstripr2   )rF   rG   hlengthrM   s        r=   rehashrR   H   s]    $	**IAv*188::66==hGGNNsSSSFCKK  r?   modedict[str, Any]c                    | dddS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
     utf-8)rS   newlineencodingr:   )rS   s    r=   csv_io_kwargsrZ   O   s     RW===r?   r4   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)osrF   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rF   script	firstlineexenamerests        r=   
fix_scriptro   V   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metadatar	   c                Z    |                      dd                                          dk    S )NzRoot-Is-PurelibrV   true)getlower)rp   s    r=   wheel_root_is_purelibru   j   s(    <<)2..4466&@@r?   distr   %tuple[dict[str, str], dict[str, str]]c                    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   ry   rz   entry_points       r=   get_entrypointsr   n   ss    OK--// > > 1110;0AOK,---//,7,=K()K''r?   scriptsSequence[str]
str | Nonec           	        | 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_   rF   normcasenormpathrO   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_   rF   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_   rF   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   y   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?   outrowsIterable[InstalledCSVRow]list[tuple[str, str, str]]c                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 r9   )r2   )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 r9   )r_   rF   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   /r0   )r_   rF   
splitdrivert   relpathr$   r   r   )rF   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list[list[str]]	installeddict[RecordPath, RecordPath]r5   set[RecordPath]	generated	list[str]list[InstalledCSVRow]c                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: %sr0   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   poprR   r   r   r   values)r   r   r5   r   r   installed_rowsrowold_record_pathnew_record_pathrM   rQ   frF   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?   consoledict[str, str]c                (   |                                  } 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><  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>H  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d	ZddZddZdS )ZipBackedFiler1   r0   r3   r2   zip_filer   r6   r7   c                >    || _         || _        || _        d| _        d S NF)r1   r3   	_zip_filer5   )r<   r1   r3   r   s       r=   __init__zZipBackedFile.__init__U  s%      /"!r?   r   c                @    | j                             | j                  S r9   )r   getinfor1   r;   s    r=   _getinfozZipBackedFile._getinfo]  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   rE   )r_   rF   existsr3   unlinkr   ra   	file_sizer   minshutilcopyfileobjr,   r+   )r<   zipinfodestr   rG   s        r=   r>   zZipBackedFile.save`  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 N)r1   r0   r3   r2   r   r   r6   r7   )r6   r   r@   )rA   rB   rC   r   r   r>   r:   r?   r=   r   r   T  sV           < < < <O O O O O Or?   r   c                      e Zd ZddZd	dZdS )

ScriptFilefiler/   r6   r7   c                f    || _         | j         j        | _        | j         j        | _        d| _        d S r   )_filer1   r3   r5   )r<   r
  s     r=   r   zScriptFile.__init__{  s-    
#z9-r?   c                j    | j                                          t          | j                  | _        d S r9   )r  r>   ro   r3   r5   r;   s    r=   r>   zScriptFile.save  s)    
!$.11r?   N)r
  r/   r6   r7   r@   )rA   rB   rC   r   r>   r:   r?   r=   r	  r	  z  s<           2 2 2 2 2 2r?   r	  c                        e Zd Zd fdZ xZS )MissingCallableSuffixr   r2   r6   r7   c                R    t                                          d| d           d S )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<   r   	__class__s     r=   r   zMissingCallableSuffix.__init__  s?    ;   	
 	
 	
 	
 	
r?   )r   r2   r6   r7   )rA   rB   rC   r   __classcell__r  s   @r=   r  r    s=        
 
 
 
 
 
 
 
 
 
r?   r  specificationr7   c                r    t          |           }|#|j        t          t          |                    d S d S r9   )r   suffixr  r2   )r  entrys     r=   _raise_for_invalid_entrypointr    s>    ]++EU\1#CJJ/// 11r?   c                  D     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())
Nr  r2   optionsdict[str, Any] | Noner6   r   c                f    t          |           t                                          ||          S r9   )r  r  make)r<   r  r  r  s      r=   r  zPipScriptMaker.make  s+     	&m444ww||M7333r?   r9   )r  r2   r  r  r6   r   )rA   rB   rC   textwrapdedentscript_templater  r  r  s   @r=   r  r    sc         &ho		 	O DH4 4 4 4 4 4 4 4 4 4 4r?   r  TFr~   	wheel_zipr   
wheel_pathschemer"   	pycompilewarn_script_location
direct_urlDirectUrl | None	requestedc           
     @  :;<=>?@ t          ||           \  }}	t          |	          r|j        @n|j        @i ?t	                      ;g }
	 d6d7;?@fd
}d8d}d9fd:d::fd}d;:fd}d8d}t          t          t                   |                                          }t          ||          }t          ||          \  }} ||@          }t          ||          }d8d}t          ||          \  }} |||          }t          ||          }t          ||          }t          t                    t          |                     }t!          |          \  <>d<<>fd}t          ||          }t          ||          }t          t"          |          }t          ||          }t	                      }|D ]~}t$          j                            |j                  } | |vr$t-          |            |                    |            |                                  ||j        |j        |j                   d=?@fd}!d>d}"|rEt7          j        t;          j        t>          j                             5 }#tC          j"                    5  tC          j#        d             |!            D ]}$tI          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   tR          *                    |#+                                           tY          d$|j-                  }(d!|(_.        d%h|(_/        d!|(_0        tc          <          })t          te          d&j3        >4                                                    }*|(5                    |)          }+|
6                    |+           |
6                    |(5                    |*d'd!i                     |r+to          |+          },|,tR          8                    |,           d(ts                       z  =t6          j:        d?=fd,            }-t$          j        ;                    @|          }.t$          j        ;                    |.d-          }/ |-|/          5 }0|0<                    d.           d$d$d$           n# 1 swxY w Y   |
=                    |/           |t$          j        ;                    |.t|                    }1 |-|1          5 }2|2<                    |?                                @                    d/                     d$d$d$           n# 1 swxY w Y   |
=                    |1           |r^t$          j        ;                    |.d0          }3t          |3d1          5  	 d$d$d$           n# 1 swxY w Y   |
=                    |3           |B                    d2          }4t          t          jD        |4E                                                    }5t          |5?;|
@3          }6t$          j        ;                    |.d2          }7 |-|7fi t          d4          5 }8t          jH        t          d5|8                    }9|9I                    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srcfiler0   r   r2   modifiedr4   r6   r7   c                d    t          |          }|| <   |r                    |           dS dS )z6Map archive RECORD paths to installation RECORD paths.N)r   r   )r,  r   r-  newpathr5   r   r   s       r=   record_installedz(_install_wheel.<locals>.record_installed  sH     %Xw77$	' 	!KK     	! 	!r?   rF   c                ,    |                      d          S )Nr   )endswithrF   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   )r5  r6  messager$  s      r=   assert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversal  sP    "=+>> 	5  $z;FF  	 	r?   r   r   r  Callable[[RecordPath], File]c                     d fd}|S )Nr   r0   r6   r/   c                    t           j                            |           }t           j                            |          } |           t	          | |          S r9   )r_   rF   r   r   r   )r   normed_pathr3   r9  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?   r   r0   r6   r/   r:   )r   r  r>  r9  s   `` r=   root_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_maker  s=    	C 	C 	C 	C 	C 	C 	C 	C %$r?   r%  r"   c                F     fdt           D             d 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   r0   r6   r/   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_   rF   r   r   r   
ValueErrorr   KeyErrorr   r   r   )r   r=  _
scheme_keydest_subpathr8  scheme_pathvalid_scheme_keysr3   r9  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?  )r!   )r   r%  rO  rN  r9  r$  s   `` @r=   data_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_maker  s`     JIII[III	C 	C 	C 	C 	C 	C 	C 	C 	C6 %$r?   c                `    |                      dd          d                             d          S )Nr   r   r   .data)r   r2  r3  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   rR  r   r   )r   r   r2  )rF   partss     r=   is_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path   sJ    

3""5zzA~V%("3"3G"<"<VqYAVVr?   r
  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)r3   r_   rF   r   rt   r2  )r
  rF   r~   	matchnamer   guis       r=   is_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper3  s     ~w%%::<<  (( 	SbS	IIZZ\\""<00 	TcT
IIZZ\\""6** 	SbS	IIIG#7yC'77r?   Generator[str, None, None]c               3  "  K   t          t                                                              D ]\} t          j                            |           }t          j                            |          sB|                    d          sX|V  ]d S )Nz.py)r   r   r   r_   rF   r   r`   r2  )installed_pathfull_installed_pathr   r   s     r=   pyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsV  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_sourcer3  s    r=   pyc_output_pathz'_install_wheel.<locals>.pyc_output_pathc  s    ~//555r?   ignoreT)forcequietr   NrV   r   rZ  i  kwargsr   Generator[BinaryIO, None, None]c              ;     K   t          | fi |5 }|V  d d d            n# 1 swxY w Y   t          j        |j                   t	          |j        |            d S r9   )r#   r_   chmodr~   r$   )rF   ri  r   generated_file_modes      r=   _generate_filez&_install_wheel.<locals>._generate_file  s      t..v.. 	!GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
,---s   "&&	INSTALLERs   pip
rW   	REQUESTEDr^   RECORD)r   r5   r   r   wzIO[str])F)r,  r0   r   r2   r-  r4   r6   r7   )rF   r0   r6   r4   )r5  r2   r6  r2   r6   r7   )r   r   r  r2   r6   r:  )r   r   r%  r"   r6   r:  )r
  r/   r6   r4   )r6   r\  )rF   r2   r6   r2   )rF   r2   ri  r   r6   rj  )Kr-   ru   purelibplatlibr   r   listr0   namelistr   r(   mapr
   r   r   r   r   r	  r_   rF   r   r3   r&   r   r>   r1   r5   
contextlibredirect_stdoutr%   from_streamrd   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   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   r0  r4  r@  rP  rS  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr>  filesrV  other_scheme_pathsscript_scheme_pathsrO  other_scheme_filesdistributionr[  script_scheme_filesexisting_parentsr
  r   r`  re  r{  rF   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrn  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filer  r9  r5   r   rm  rZ  r   r   sA     `                                                       @@@@@@@r=   _install_wheelr    s	   2 %Y55HhX&& !.. /1I"uuGI >C! ! ! ! ! ! ! ! !" " " "     	% 	% 	% 	% 	% 	% %  %  %  %  %  %  %D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 W W W /80/ /++ 329fEE24FGG%+,,E *
##$ L #<00LGS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& & & & & & &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      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   :MB&M5MM	MM		MMM4TTT(;V//V36V3XXXA\\\req_descriptionGenerator[None, None, None]c              #  ~   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  er8  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")rE   )rF   r2   rG   rH   r6   rI   )rS   r2   r6   rT   )rF   r2   r6   r4   )rp   r	   r6   r4   )rv   r   r6   rw   )r   r   r6   r   )r   r   r6   r   )r   r0   r   r2   r6   r2   )rF   r2   r   r2   r6   r0   )r   r   r   r   r5   r   r   r   r   r2   r6   r   )r   r   r6   r   )r  r2   r6   r7   )TTNF)r~   r2   r#  r   r$  r2   r%  r"   r&  r4   r'  r4   r(  r)  r*  r4   r6   r7   )r  r2   r6   r  )r~   r2   r$  r2   r%  r"   r  r2   r&  r4   r'  r4   r(  r)  r*  r4   r6   r7   )i__doc__
__future__r   r   r  rx  r  rb  loggingos.pathr_   r   r  rd   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   tuplerH   InstalledCSVRowrR   rZ   ro   ru   r   r   r   r   r   r   r   r   r	  r  r  r  r  r  r  r  r:   r?   r=   <module>r     s`   L L " " " " " "             



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



   $ $ $ $ $ $ C C C C C C C C C C C C ! ! ! ! ! ! 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! ! ! ! !> > > >   (A A A A( ( ( (E  E  E  E P   4. . . .$ $ $ $   @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4 4 4 4 4[ 4 4 44 !%#'^4 ^4 ^4 ^4 ^4B	 0 0 0 0 !%#'      r?   