
    鴀jq                    >   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mZ ddlmZ ddlmZmZmZ ddlmZ dd	l 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          ZReSeReQeTeQz  f         ZUdfdgd!ZVdhd$ZWdid&ZXdjd)ZYdkd-ZZdld1Z[dmd5Z\dnd8Z]dod9Z^dpdCZ_dqdFZ` G dG dH          Za G dI dJ          Zb G dK dLe1          ZcdrdPZd G dQ dRe+          Ze	 	 	 	 	 dsdtdaZfejg        dudd            Zh	 	 	 	 	 dsdvdeZidS )wzFSupport for installing and building the "wheel" binary package format.    )annotationsN)urlsafe_b64encode)Callable	GeneratorIterableIteratorSequence)Message)chainfilterfalsestarmap)Path)IOAnyBinaryIONewTypeProtocol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    p/workspace/show-city-briefing-agent/.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/   8   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   G   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   N   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   U   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   i   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   m   ss    OK--// > > 1110;0AOK,---//,7,=K()K''r?   scriptsSequence[str]
str | Nonec                N   | sdS t          j        t                    }| D ]L}t          |          }|j                                        }|j        }||                             |           Md t          j	        
                    dd                              t          j                  D                                 t          t          j                  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                P    g | ]#}t          |                                          $S r:   )r   resolve.0is     r=   
<listcomp>z5message_about_scripts_not_on_PATH.<locals>.<listcomp>   s5       Q  r?   PATHrV   c                $    i | ]\  }}|v	||S r:   r:   )r   
parent_dirr   not_warn_dirss      r=   
<dictcomp>z5message_about_scripts_not_on_PATH.<locals>.<dictcomp>   s4     & & &J]** 	G***r?      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   parentr   r~   addr_   environrs   splitpathsepappendrd   re   itemssortedlenformatjoinany)r   grouped_by_dirdestfiler3   r   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   x   s   
  t ,7+B3+G+GN 4 4NN	%--//
nz"&&{3333 #%:>>&"#=#=#C#CBJ#O#O  M
 cn--4<<>>???& & & &#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$   sepr   )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>9  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>E  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__R  s%      /"!r?   r   c                @    | j                             | j                  S r9   )r   getinfor1   r;   s    r=   _getinfozZipBackedFile._getinfoZ  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   Q  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__x  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  w  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  specificationscripts_dirr7   c                   t          |           }|d S |j        t          t          |                    t          j                            ||j                  }t          j                            |          t          j                            |          k    }|st          ||          st          d|j        d| d          d S )Nz Invalid script entry point name z?: the script would be installed outside the scripts directory (z).)r   suffixr  r2   r_   rF   r   r~   abspathr*   r   )r  r  entryr  resolves_to_scripts_dirs        r=   _raise_for_invalid_entrypointr    s    ]++E}|#CJJ///
 7<<UZ00D good33rw{7S7SS 
&9+t&L&L 
Quz Q QALQ Q Q
 
 	

 
r?   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__':
            sys.argv[0] = sys.argv[0].removesuffix('.exe')
            sys.exit(%(func)s())
Nr  r2   optionsdict[str, Any] | Noner6   r   c                r    t          || j                   t                                          ||          S r9   )r  
target_dirr  make)r<   r  r  r  s      r=   r!  zPipScriptMaker.make  s/     	&mT_EEE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	requestedscript_executablec	           
     R  ;<=>?@A t          ||           \  }	}
t          |
          r|j        An|j        Ai @t	                      <g }	 d6d7<@Afd
}d8d}d9fd;d:;fd}d;;fd}d8d}t          t          t                   |                                          }t          ||          }t          ||          \  }} ||A          }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=@Af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|)_0        d!|)_1        te          =          }*t          tg          d&j4        ?5                                                    }+|)6                    |*          },|7                    |,           |7                    |)6                    |+d'd!i                     |r+tq          |,          }-|-tR          9                    |-           d(tu                       z  >t6          j;        d?>fd,            }.t$          j        <                    A|	          }/t$          j        <                    |/d-          }0 |.|0          5 }1|1=                    d.           d$d$d$           n# 1 swxY w Y   |>                    |0           |t$          j        <                    |/t~                    }2 |.|2          5 }3|3=                    |@                                A                    d/                     d$d$d$           n# 1 swxY w Y   |>                    |2           |r^t$          j        <                    |/d0          }4t          |4d1          5  	 d$d$d$           n# 1 swxY w Y   |>                    |4           |C                    d2          }5t          t          jE        |5F                                                    }6t          |6@<|A3          }7t$          j        <                    |/d2          }8 |.|8fi t          d4          5 }9t          jI        t          d5|9                    }:|:J                    t          |7                     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
    :param script_executable: Python executable to use for console scripts
    :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   r0  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   )r8  r9  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   normpathr   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  sR    '**;77KT;77I$$T9555 iBBBr?   r   r0   r6   r/   r:   )r   r  rB  r<  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   rA  _
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  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rC  )r!   )r   r'  rS  rR  r<  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   r5  r6  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   rV  r   r   )r   r   r5  )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   basenamert   r5  )r  rF   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?   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`   r5  )installed_pathfull_installed_pathr   r   s     r=   pyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_paths`  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_sourcer6  s    r=   pyc_output_pathz'_install_wheel.<locals>.pyc_output_pathm  s    ~//555r?   ignoreT)forcequietr   NrV   r   r_  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   rn  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   r0  r4   r6   r7   )rF   r0   r6   r4   )r8  r2   r9  r2   r6   r7   )r   r   r  r2   r6   r=  )r   r   r'  r"   r6   r=  )r  r/   r6   r4   )r6   ra  )rF   r2   r6   r2   )rF   r2   rn  r   r6   ro  )Lr-   ru   purelibplatlibr   r   listr0   namelistr   r(   mapr   r   r   r   r   r  r_   rF   dirnamer3   r&   r   r>   r1   r5   
contextlibredirect_stdoutr%   from_streamrd   stdoutwarningscatch_warningsfilterwarnings
compileallcompile_filer   r$   r   r   debuggetvaluer  r   re   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   )Br~   r%  r&  r'  r(  r)  r*  r,  r-  info_dirrp   r   r3  r7  rD  rT  rW  paths
file_pathsroot_scheme_pathsdata_scheme_pathsrB  filesrZ  other_scheme_pathsscript_scheme_pathsrS  other_scheme_filesdistributionr`  script_scheme_filesexisting_parentsr  r   re  rj  r  rF   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrs  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filer  r<  r5   r   rr  r_  r   r   sB     `                                                        @@@@@@@r=   _install_wheelr    s	   6 %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=TT#&T#1;V88V<?V<
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  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*  r,  r-  zs
             r=   install_wheelr    s    
	-	-	- // 	 	%#%9%#"3
 
 
 
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 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   r  r2   r6   r7   )TTNFN)r~   r2   r%  r   r&  r2   r'  r"   r(  r4   r)  r4   r*  r+  r,  r4   r-  r   r6   r7   )r  r2   r6   r  )r~   r2   r&  r2   r'  r"   r  r2   r(  r4   r)  r4   r*  r+  r,  r4   r-  r   r6   r7   )j__doc__
__future__r   r   r  r~  r  rg  loggingos.pathr_   r   r  rd   r"  r  base64r   collections.abcr   r   r   r   r	   email.messager
   	itertoolsr   r   r   pathlibr   typingr   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     sf   L L " " " " " "             



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



   $ $ $ $ $ $ M M M M M M M M M M M M M M ! ! ! ! ! ! 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s23! ! ! ! !> > > >   (A A A A( ( ( (C  C  C  C L   4. . . .$ $ $ $   @H H H HV#O #O #O #O #O #O #O #OL	2 	2 	2 	2 	2 	2 	2 	2
 
 
 
 
- 
 
 

 
 
 
(4 4 4 4 4[ 4 4 4. !%#'$(f4 f4 f4 f4 f4R	 0 0 0 0 !%#'$(      r?   