£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

Rec           @@  s
  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 m	 Z	 d  d l
 m Z d  d l m Z 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 m Z m Z m Z d  d	 l m  Z  m! Z! d  d
 l" m# Z# e# ryd  d l$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- d  d l. m/ Z/ n  e j0 e1  Z2 d   Z3 d   Z4 e4 d    Z5 d   Z6 d   Z7 d   Z8 d e9 f d     YZ: d e9 f d     YZ; d e9 f d     YZ< d S(   i    (   t   absolute_importN(   t   pkg_resources(   t   UninstallationError(   t   bin_pyt   bin_user(   t   WINDOWSt   cache_from_sourcet   uses_pycache(   t
   indent_log(	   t   FakeFilet   askt   dist_in_usersitet   dist_is_localt   egg_link_patht   is_localt   normalize_patht   renamest   rmtree(   t   AdjacentTempDirectoryt   TempDirectory(   t   MYPY_CHECK_RUNNING(	   t   Anyt   Callablet   Dictt   Iterablet   Iteratort   Listt   Optionalt   Sett   Tuple(   t   Distributionc         C@  s   t  |   r t } n t } t j j | |  } | g } t r | j | d  | j | d  | r{ | j | d  q | j | d  n  | S(   s   Create the fully qualified name of the files created by
    {console,gui}_scripts for the given ``dist``.
    Returns the list of file names
    s   .exes   .exe.manifests   -script.pyws
   -script.py(   R   R   R   t   ost   patht   joinR   t   append(   t   distt   script_namet   is_guit   bin_dirt   exe_namet   paths_to_remove(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   _script_names'   s    		c         @  s"   t  j      f d    } | S(   Nc          ?@  sH   t    } x8   |  |   D]' } | | k r | j |  | Vq q Wd  S(   N(   t   sett   add(   t   argst   kwt   seent   item(   t   fn(    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   unique?   s
    	(   t	   functoolst   wraps(   R0   R1   (    (   R0   s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   _unique=   s    c         c@  s   t  j t |  j d    } x | D] } t j j |  j | d  } | V| j d  r% t j j	 |  \ } } | d  } t j j | | d  } | Vt j j | | d  } | Vq% q% Wd S(   s  
    Yield all the uninstallation paths for dist based on RECORD-without-.py[co]

    Yield paths to all the files in RECORD. For each .py file in RECORD, add
    the .pyc and .pyo in the same directory.

    UninstallPathSet.add() takes care of the __pycache__ .py[co].
    t   RECORDi    s   .pyis   .pycs   .pyoN(
   t   csvt   readerR	   t   get_metadata_linesR   R    R!   t   locationt   endswitht   split(   R#   t   rt   rowR    t   dnR0   t   base(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   uninstallation_pathsJ   s    
c         @  sk   t  j j  t   } xO t |  d t D];   t    f d   | D  } | s( | j    q( q( W| S(   s   Compact a path set to contain the minimal number of paths
    necessary to contain all paths in the set. If /a/path/ and
    /a/path/to/a/file.txt are both in the set, leave only the
    shorter path.t   keyc         3@  sO   |  ]E }   j  | j d    oF   t | j d   j     k Vq d S(   t   *N(   t
   startswitht   rstript   len(   t   .0t	   shortpath(   R    t   sep(    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>m   s   (   R   R    RH   R*   t   sortedRE   t   anyR+   (   t   pathst   short_pathst   should_skip(    (   R    RH   s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   compactb   s    	c   	      @  sR  t  d   |  D  } t |  } t t d   | j   D  d t } t   } d    x | D]  t  f d   | D  r qc n  t   } t   } xf t j   D]U \   } } | j     f d   | D  | j     f d   | D  q W| | sc | j	 |  | j
  t j  qc qc Wt t | j |   | BS(   s   Returns a set containing the paths that need to be renamed.

    This set may include directories when the original sequence of paths
    included every file on disk.
    c         s@  s'   |  ] } t  j j |  | f Vq d  S(   N(   R   R    t   normcase(   RF   t   p(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>}   s    c         s@  s%   |  ] } t  j j |  d  Vq d S(   i    N(   R   R    R;   (   RF   RP   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>   s   RA   c          W@  s   t  j j t  j j |     S(   N(   R   R    RO   R!   (   t   a(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt	   norm_join   s    c         3@  s*   |  ]  } t  j j    j |  Vq d  S(   N(   R   R    RO   RC   (   RF   t   w(   t   root(    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>   s   c         3@  s!   |  ] }     |  Vq d  S(   N(    (   RF   t   d(   t   dirnameRR   RT   (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>   s   c         3@  s!   |  ] }     |  Vq d  S(   N(    (   RF   t   f(   RV   RR   RT   (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>   s   (   t   dictR*   RI   t   valuesRE   RJ   R   t   walkt   updatet   difference_updateR+   RH   t   mapt   __getitem__(	   RK   t   case_mapt	   remainingt	   uncheckedt	   wildcardst	   all_filest   all_subdirst   subdirst   files(    (   RV   RR   RT   s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   compress_for_renamev   s*    				
c         C@  s  t  |   } t    } t    } t    } xg | D]_ } | j d  rI q. n  | j d  sd d | k r | j t j j |   n  | j |  q. Wt  t t j j |   } t |  } x | D] } x t j	 |  D] \ } }	 }
 xr |
 D]j } | j d  rq n  t j j
 | |  } t j j |  r t j j |  | k r | j |  q q Wq Wq W| d   | D B} | | f S(   ss  Returns a tuple of 2 sets of which paths to display to user

    The first set contains paths that would be deleted. Files of a package
    are not added and the top-level directory of the package has a '*' added
    at the end - to signify that all it's contents are removed.

    The second set contains files that would have been skipped in the above
    folders.
    s   .pycs   __init__.pys
   .dist-infoc         S@  s%   h  |  ] } t  j j | d    q S(   RB   (   R   R    R!   (   RF   t   folder(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <setcomp>   s   	 (   R*   R:   R+   R   R    RV   R]   RO   RN   RZ   R!   t   isfile(   RK   t   will_removet	   will_skipt   foldersRf   R    t   _normcased_filesRh   t   dirpatht   _t   dirfilest   fnamet   file_(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   compress_for_output_listing   s0    			t   StashedUninstallPathSetc           B@  sS   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z e	 d    Z
 RS(   sW   A set of file rename operations to stash files while
    tentatively uninstalling them.c         C@  s   i  |  _  g  |  _ d  S(   N(   t
   _save_dirst   _moves(   t   self(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   __init__   s    	c         C@  sS   y t  |  } Wn  t k
 r2 t d d  } n X| |  j t j j |  <| j S(   s   Stashes a directory.

        Directories are stashed adjacent to their original location if
        possible, or else moved/copied into the user's temp dir.t   kindt	   uninstall(   R   t   OSErrorR   Ru   R   R    RO   (   Rw   R    t   save_dir(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   _get_directory_stash   s    c         C@  s   t  j j |  } t  j j |  d } } d } x} | | k r y |  j | } PWn t k
 re n Xt  j j |  | } } q4 Wt  j j |  } t d d  } | |  j | <t  j j | |  } | r | t  j j	 k r t  j j
 | j |  S| j S(   s   Stashes a file.

        If no root has been provided, one will be created for the directory
        in the user's temp directory.Ry   Rz   N(   R   R    RO   RV   t   NoneRu   t   KeyErrorR   t   relpatht   curdirR!   (   Rw   R    t   headt   old_headR|   R   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   _get_file_stash   s"    c         C@  s   t  j j |  o" t  j j |  } | r= |  j |  } n |  j |  } |  j j | | f  | r t  j j |  r t  j |  n  t	 | |  | S(   s   Stashes the directory or file and returns its new location.
        Handle symlinks as files to avoid modifying the symlink targets.
        (
   R   R    t   isdirt   islinkR}   R   Rv   R"   t   rmdirR   (   Rw   R    t   path_is_dirt   new_path(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   stash  s    %c         C@  s@   x' |  j  j   D] \ } } | j   q Wg  |  _ i  |  _  d S(   s0   Commits the uninstall by removing stashed files.N(   Ru   t   itemst   cleanupRv   (   Rw   Ro   R|   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   commit  s    	c         C@  s   x! |  j  D] } t j d |  q
 Wx |  j  D] \ } } yw t j d | |  t j j |  st t j j |  r t j |  n t j j	 |  r t
 |  n  t | |  Wq. t k
 r } t j d |  t j d |  q. Xq. W|  j   d S(   s2   Undoes the uninstall by moving stashed files back.s   Moving to %s
 from %ss   Replacing %s from %ss   Failed to restore %ss   Exception: %sN(   Rv   t   loggert   infot   debugR   R    Ri   R   t   unlinkR   R   R   R{   t   errorR   (   Rw   RP   R   R    t   ex(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   rollback&  s    $c         C@  s   t  |  j  S(   N(   t   boolRv   (   Rw   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   can_rollback:  s    (   t   __name__t
   __module__t   __doc__Rx   R}   R   R   R   R   t   propertyR   (    (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyRt      s   							t   UninstallPathSetc           B@  sk   e  Z d  Z d   Z d   Z d   Z d   Z e e d  Z d   Z	 d   Z
 d   Z e d	    Z RS(
   sM   A set of file paths to be removed in the uninstallation of a
    requirement.c         C@  s:   t    |  _ t    |  _ i  |  _ | |  _ t   |  _ d  S(   N(   R*   RK   t   _refuset   pthR#   Rt   t   _moved_paths(   Rw   R#   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyRx   C  s
    		c         C@  s
   t  |  S(   ss   
        Return True if the given path is one we are permitted to
        remove/modify, False otherwise.

        (   R   (   Rw   R    (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt
   _permittedK  s    c         C@  s   t  j j |  \ } } t  j j t |  t  j j |   } t  j j |  sU d  S|  j |  rw |  j j	 |  n |  j
 j	 |  t  j j |  d d k r t r |  j	 t |   n  d  S(   Ni   s   .py(   R   R    R;   R!   R   RO   t   existsR   RK   R+   R   t   splitextR   R   (   Rw   R    R   t   tail(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR+   T  s    '"c         C@  sk   t  |  } |  j |  rW | |  j k r@ t |  |  j | <n  |  j | j |  n |  j j |  d  S(   N(   R   R   R   t   UninstallPthEntriesR+   R   (   Rw   t   pth_filet   entry(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   add_pthh  s    c         C@  s   |  j  s# t j d |  j j  d S|  j j d |  j j } t j d |  t    | sl |  j |  r |  j } t	 |  j   } x7 t
 t |   D]# } | j |  t j d |  q Wx! |  j j   D] } | j   q Wt j d |  n  Wd QXd S(   s[   Remove paths in ``self.paths`` with confirmation (unless
        ``auto_confirm`` is True).s7   Can't uninstall '%s'. No files were found to uninstall.Nt   -s   Uninstalling %s:s   Removing file or directory %ss   Successfully uninstalled %s(   RK   R   R   R#   t   project_namet   versionR   t   _allowed_to_proceedR   Rg   RI   RN   R   R   R   RY   t   remove(   Rw   t   auto_confirmt   verboset   dist_name_versiont   movedt
   for_renameR    R   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR   r  s"    	
	c         C@  s   d   } | s' t  |  j  \ } } n t |  j  } t   } | d |  | d |  | d |  j  | r | d t |  j   n  t d d	  d k S(
   sI   Display which files would be deleted and prompt for confirmation
        c         S@  sU   | s
 d  St  j |   t   / x' t t |   D] } t  j |  q4 WWd  QXd  S(   N(   R   R   R   RI   RN   (   t   msgRK   R    (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   _display  s    
s   Would remove:s+   Would not remove (might be manually added):s%   Would not remove (outside of prefix):s   Will actually move:s   Proceed (y/n)? t   yt   n(   R   R   (   Rs   RK   R*   R   Rg   R
   (   Rw   R   R   Rj   Rk   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR     s    	
	c         C@  sq   |  j  j s& t j d |  j j  d St j d |  j j  |  j  j   x! |  j j	   D] } | j   qY Wd S(   s1   Rollback the changes previously made by remove().s'   Can't roll back %s; was not uninstalledNs   Rolling back uninstall of %s(
   R   R   R   R   R#   R   R   R   R   RY   (   Rw   R   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR     s    c         C@  s   |  j  j   d S(   s?   Remove temporary save dir: rollback will no longer be possible.N(   R   R   (   Rw   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR     s    c         C@  sO  t  | j  } t |  sA t j d | j | t j  |  |  S| d   t j	 d  t j	 d  h D k r t j d | j |  |  |  S|  |  } t
 |  } d j t j | j   } | j o t j j | j  } t | j d d   } | rl| j j d  rl| j j |  rl| j | j  | j d	  rx'| j d	  j   D]7 } t j j t j j | j |   }	 | j |	  qUWq| j d
  r| j d  r| j d  }
 n g  }
 x g  | j d
  j   D] } | r| |
 k r| ^ qD]^ } t j j | j |  }	 | j |	  | j |	 d  | j |	 d  | j |	 d  qWqn| rt d j | j    n{| j j d  r| j | j  t j j | j  d } t j j t j j | j  d  } | j  | d |  n| rB| j j d  rBx t! |  D] }	 | j |	  q(Wn | rt" | d  % } t j j# | j$   j%    } Wd  QX| | j k st& d j | | j | j    | j |  t j j t j j |  d  } | j  | | j  n t j' d | | j  | j d  r| j( d  rxz | j) d  D]f } t* |  rQt+ } n t, } | j t j j | |   t- r6| j t j j | |  d  q6q6Wn  g  } | j. d d  } x- | j/   D] } | j0 t1 | | t2   qW| j. d d  } x- | j/   D] } | j0 t1 | | t3   q
Wx | D] } | j |  q4W| S(   Ns1   Not uninstalling %s at %s, outside environment %sc         S@  s   h  |  ] } | r |  q S(    (    (   RF   RP   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <setcomp>  s   	 t   stdlibt
   platstdlibs<   Not uninstalling %s at %s, as it is in the standard library.s   {}.egg-infoR    s	   .egg-infos   installed-files.txts   top_level.txts   namespace_packages.txts   .pys   .pycs   .pyos   Cannot uninstall {!r}. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.s   .eggi   s   easy-install.pths   ./s
   .dist-infoR<   s;   Egg-link {} does not match installed location of {} (at {})s)   Not sure how to uninstall: %s - Check: %st   scriptss   .batt   groupt   console_scriptst   gui_scripts(4   R   R9   R   R   R   RA   t   syst   prefixt	   sysconfigt   get_pathR   t   formatR   t   to_filenameR   t   egg_infoR   R    R   t   getattrt	   _providerR~   R:   R+   t   has_metadatat   get_metadatat
   splitlinest   normpathR!   R   R;   RV   R   R@   t   openRO   t   readlinet   stript   AssertionErrorR   t   metadata_isdirt   metadata_listdirR   R   R   R   t   get_entry_mapt   keyst   extendR)   t   Falset   True(   t   clsR#   t	   dist_pathR(   t   develop_egg_linkt   develop_egg_link_egg_infot   egg_info_existst   distutils_egg_infot   installed_fileR    t
   namespacesRP   t   top_level_pkgt   easy_install_eggt   easy_install_ptht   fht   link_pointert   scriptR&   t   _scripts_to_removeR   t   nameR   t   s(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt	   from_dist  s    


		"	$		*(   R   R   R   Rx   R   R+   R   R   R   R   R   R   t   classmethodR   (    (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR   @  s   					
 			R   c           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  s"   | |  _  t   |  _ d  |  _ d  S(   N(   t   fileR*   t   entriesR~   t   _saved_lines(   Rw   R   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyRx   J  s    	c         C@  sX   t  j j |  } t rD t  j j |  d rD | j d d  } n  |  j j |  d  S(   Ni    s   \t   /(   R   R    RO   R   t
   splitdrivet   replaceR   R+   (   Rw   R   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR+   P  s    
c         C@  sW  t  j d |  j  t j j |  j  s? t  j d |  j  d  St |  j d   } | j   } | |  _	 Wd  QXt
 d   | D  r d } n d } | r | d j | j d   r | d | j d  | d <n  xS |  j D]H } y. t  j d	 |  | j | | j d   Wq t k
 r&q Xq Wt |  j d
   } | j |  Wd  QXd  S(   Ns   Removing pth entries from %s:s.   Cannot remove entries from nonexistent file %st   rbc         s@  s   |  ] } d  | k Vq d S(   s   
N(    (   RF   t   line(    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pys	   <genexpr>n  s    s   
s   
is   utf-8s   Removing entry: %st   wb(   R   R   R   R   R    Ri   t   warningR   t	   readlinesR   RJ   R:   t   encodeR   R   t
   ValueErrort
   writelines(   Rw   R   t   linest   endlineR   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR   `  s*    	#c         C@  sh   |  j  d  k r& t j d |  j  t St j d |  j  t |  j d   } | j |  j   Wd  QXt	 S(   Ns.   Cannot roll back changes to %s, none were mades!   Rolling %s back to previous stateR   (
   R   R~   R   R   R   R   R   R   R   R   (   Rw   R   (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR   ~  s    (   R   R   Rx   R+   R   R   (    (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyR   I  s   			(=   t
   __future__R    R6   R2   t   loggingR   R   R   t   pip._vendorR   t   pip._internal.exceptionsR   t   pip._internal.locationsR   R   t   pip._internal.utils.compatR   R   R   t   pip._internal.utils.loggingR   t   pip._internal.utils.miscR	   R
   R   R   R   R   R   R   R   t   pip._internal.utils.temp_dirR   R   t   pip._internal.utils.typingR   t   typingR   R   R   R   R   R   R   R   R   t   pip._vendor.pkg_resourcesR   t	   getLoggerR   R   R)   R4   R@   RN   Rg   Rs   t   objectRt   R   R   (    (    (    s   /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/req/req_uninstall.pyt   <module>   s8   @@				(	3o 
