Ñò
•èRc           @   s®   d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z l Z l	 Z	 d  d k
 l Z d  d k l Z d  d k l Z d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   display_patht
   backup_dirt   rmtree(   t   logger(   t   InstallationError(   t   Commandt
   ZipCommandc           B   sƒ   e  Z d  Z d Z d Z d  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   s   Zip individual packages.t   zips#   
     %prog [options] <package> ...c      
   O   s;  t  t |  ƒ i | | Ž  |  i d j o& |  i i d d d d d d d ƒn) |  i i d	 d d
 d d d t d d ƒ|  i i d d d d d d d ƒ|  i i d d d d d d d d ƒ|  i i d d d d d d d ƒ|  i i d d d d d d d ƒ|  i i d d d d d d ƒ|  i i d |  i ƒ d  S(   NR   s   --unzipt   actiont
   store_truet   destt   unzipt   helps"   Unzip (rather than zip) a package.s   --zipt   store_falset   defaults"   Zip (rather than unzip) a package.s   --no-pyct   no_pycsE   Do not include .pyc files in zip files (useful on Google App Engine).s   -ls   --listt   lists2   List the packages available, and their zip status.s   --sort-filest
   sort_filessD   With --list, sort packages according to how many files they contain.s   --patht   appendt   pathss?   Restrict operations to the given paths (may include wildcards).s   -ns
   --simulates0   Do not actually perform the zip/unzip operation.i    (	   t   superR   t   __init__t   namet   cmd_optst
   add_optiont   Truet   parsert   insert_option_group(   t   selft   argst   kw(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR      sL    									c         C   s{  |  i  p t i Sg  } t ƒ  } xt i D]ø } t i i t i i | ƒ ƒ } xÑ |  i  D]£ } t i i t i i | ƒ ƒ } d | j oC t i t	 i
 | d ƒ | ƒ o | i | ƒ | i | ƒ Pqü qY | i | ƒ o | i | ƒ | i | ƒ PqY qY Wt i d | d i |  i  ƒ f ƒ q+ WxM |  i  D]B } | | j o/ d | j o" | i | ƒ t i d | ƒ q1q1W| S(   s:   All the entries of sys.path, possibly restricted by --patht   *s,   Skipping path %s because it doesn't match %ss   , sD   Adding path %s because it doesn't match anything already on sys.path(   t   select_pathst   syst   patht   sett   ost   normcaset   abspatht   ret   searcht   fnmatcht	   translateR   t   addt
   startswithR   t   debugt   join(   R   t   resultt	   match_anyR"   t   match(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR   >   s8    
	
 
  			
 	c         C   sR  | i  |  _ | i |  _ | i o |  i | | ƒ S| p t d ƒ ‚ n g  } x¦ | D]ž } |  i | ƒ \ } } | i o- t i i	 | ƒ o t d | | f ƒ ‚ n: | i o. t i i	 | ƒ o t d | | f ƒ ‚ n | i
 | | f ƒ qW Wd  } xL | D]D \ } } | i o |  i | | ƒ } q|  i | | | i ƒ } qW| S(   Ns2   You must give at least one package to zip or unzips;   The module %s (in %s) is not a zip file; cannot be unzippeds:   The module %s (in %s) is not a directory; cannot be zipped(   R   R    t   simulateR   R   t   find_packageR   R$   R"   t   isdirR   t   Nonet   unzip_packaget   zip_packageR   (   R   t   optionsR   t   packagest   argt   module_namet   filenamet   last_status(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyt   run\   s6    
  
c         C   sì  t  i i | ƒ } t  i i | ƒ o- t i | ƒ o t d | | | f ƒ ‚ n t  i i | ƒ } | |  i ƒ  j o0 t i	 d t
 | ƒ t
 | ƒ t
 | ƒ f ƒ n t i d | t
 | ƒ f ƒ |  i o t i d ƒ d  St i d 7_ zåt i | ƒ } g  } x#| i ƒ  D]} | i } | i | t  i i ƒ oÐ | i | ƒ }	 t  i i | | ƒ }
 t  i i t  i i |
 ƒ ƒ p t  i t  i i |
 ƒ ƒ n |	 o> |
 i t  i i ƒ o( t  i i |
 ƒ p t  i |
 ƒ q
q*t |
 d ƒ } | i |	 ƒ | i ƒ  q| i | | i | ƒ f ƒ qW| i ƒ  | p5 t i d t
 | ƒ ƒ t  i | ƒ |  i | ƒ na t i d | t
 | ƒ f ƒ t i | d	 ƒ } x$ | D] \ } }	 | i | |	 ƒ qªW| i ƒ  Wd  t i d 8_ Xd  S(
   Ns3   Module %s (in %s) isn't located in a zip file in %ss/   Unpacking %s into %s, but %s is not on sys.paths   Unzipping %s (in %s)s3   Skipping remaining operations because of --simulatei   t   wbs   Removing now-empty zip file %ss(   Removing entries in %s/ from zip file %st   w(    R$   R"   t   dirnamet   isfilet   zipfilet
   is_zipfileR   R   R   t   warnR    t   notifyR2   t   indentt   ZipFilet   infolistR<   R,   t   sept   readR.   t   existst   makedirst   endswitht   opent   writet   closeR   t   infot   unlinkt   remove_filename_from_ptht   writestr(   R   R;   R<   t   zip_filenamet   package_pathR   t   to_saveRR   R   t   contentR
   t   f(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR6   x   s\    $
 	 
 c         C   s}  | } t  i d | t | ƒ f ƒ t  i d 7_ | i d ƒ o
 | } n | d } z| | j oE t | ƒ } t  i d | | f ƒ |  i p t i | | ƒ q« n y t  i	 d t | ƒ ƒ |  i pLt
 i | d ƒ } | i | d d	 ƒ xt i | ƒ D]\ } } }	 | o? g  }
 |	 D]' } | i ƒ  i d
 ƒ p |
 | q&q&~
 }	 n x¬ | t f |	 t f g D]’ \ } } xƒ | D]{ } t i i | | ƒ } t i i | | t | ƒ i t i i ƒ | ƒ } | o | i | d d	 ƒ q†| i | | ƒ q†WqsWqW| i ƒ  n t  i	 d t | ƒ ƒ |  i p t | ƒ n Wn
 ‚  n X|  i | ƒ Wd  t  i d 8_ Xd  S(   Ns   Zip %s (in %s)i   s   .eggs   .zips   Moving %s aside to %ss   Creating zip file in %sR@   t   /t    s   .pycs   Removing old directory %s(   R   RF   R    RG   RN   R   R2   t   shutilt   moveRR   RC   RH   RU   R$   t   walkt   lowerR   t   FalseR"   R.   t   lent   lstripRJ   RP   RQ   R   t   add_filename_to_pth(   R   R;   R<   R   t   orig_filenamet   dest_filenameR   t   dirpatht   dirnamest	   filenamest   _[1]RZ   t   fnst   is_dirt   fnt   fullR
   (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR7   «   sN    



 .  1
c   
   	   C   s[  x=|  i  ƒ  D]/} t | d ƒ } | i ƒ  } | i ƒ  g  } | D]$ } | i ƒ  | j o | | qC qC ~ } | | j o¿ t i d t | ƒ t | ƒ f ƒ g  } | D] }	 |	 o | |	 q« q« ~ p6 t i d t | ƒ ƒ |  i p t	 i
 | ƒ q7n5 |  i p* t | d ƒ } | i | ƒ | i ƒ  n d  Sq Wt i d t | ƒ ƒ d  S(   Nt   rs*   Removing reference to %s from .pth file %ss    %s file would be empty: deletingR?   s.   Cannot find a reference to %s in any .pth file(   t	   pth_filesRO   t	   readlinesRQ   t   stripR   RR   R    R2   R$   RS   t
   writelinesRE   (
   R   R<   t   pthRZ   t   linesRj   t   lt	   new_linest   _[2]t   line(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyRT   ×   s&     
8	-

	c         C   s	  t  i i | ƒ } | d } | |  i ƒ  j o t i d t | ƒ ƒ n |  i p± t  i i | ƒ og t	 | ƒ } | i
 ƒ  } | i ƒ  | o) | d i d ƒ o | d c d 7<n | i | d ƒ n | d g } t	 | d ƒ } | i | ƒ | i ƒ  n d  S(   Ns   .pths.   Adding .pth file %s, but it is not on sys.pathiÿÿÿÿs   
R?   (   R$   R"   RA   R   R   RE   R    R2   RL   RO   Rq   RQ   RN   R   Rs   (   R   R<   R"   R
   RZ   Ru   (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyRd   í   s     


c         c   sŒ   x… |  i  ƒ  D]w } t i i | ƒ p t i i | ƒ o q n x? t i | ƒ D]. } | i d ƒ o t i i | | ƒ VqR qR Wq Wd  S(   Ns   .pth(   R   R$   R"   RL   R4   t   listdirRN   R.   (   R   R"   R<   (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyRp      s     ( c         C   sì   xÕ |  i  ƒ  D]Ç } t i i | | ƒ } t i i | ƒ o | | f St i i | ƒ oz t i | ƒ oj t i | d ƒ } y  | i	 t i i | d ƒ ƒ Wn t
 j
 o n X| i ƒ  | | f S| i ƒ  q q Wt d | ƒ ‚ d  S(   NRo   s   __init__.pys!   No package with the name %s found(   R   R$   R"   R.   RL   R4   RC   RD   RH   RK   t   KeyErrorRQ   R   (   R   t   packageR"   Rn   R   (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR3     s      $ 

c         C   s\  | o t  d ƒ ‚ n x>t |  i ƒ  ƒ D]*} t i i | ƒ p q* n t i i | i t i i ƒ ƒ } t i i	 | ƒ oQ t
 i | ƒ oA t i i | ƒ |  i ƒ  j o t i d t | ƒ ƒ q* q* n | d j o1 | d j o$ | i d d ƒ i d ƒ o q* n t i d t | ƒ ƒ t i d	 7_ g  } g  } zxø t t i | ƒ ƒ D]á } t i i | ƒ d
 i ƒ  } | d j o qXn | d j o t i d t | ƒ ƒ qXn t i i | | ƒ }	 t i i |	 ƒ o  | i | |  i |	 ƒ f ƒ qXt
 i |	 ƒ o | i | ƒ qXt i d t | ƒ ƒ qXW| oU t i d ƒ t i d	 7_ z" x | D] } t i | ƒ qjWWd  t i d	 8_ Xn t i d ƒ | o† | i o | i d d „  ƒ n t i d ƒ t i d	 7_ z2 x+ | D]# \ } }
 t i d | |
 f ƒ qôWWd  t i d	 8_ Xn t i d ƒ Wd  t i d	 8_ Xq* Wd  S(   Ns'   You cannot give an argument with --lists   Zipped egg: %ss   site-packagess   dist-packagess   \R[   s
   lib/pythons   In %s:i   i   s   .pths	   .egg-infos	   .egg-links   .pys    Not displaying %s: not a packages   Unknown file: %ss   Zipped packages:s   No zipped packages.t   keyc         S   s	   |  d  S(   i   (    (   t   x(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyt   <lambda>I  s    s   Unzipped packages:s   %s  (%i files)s   No unzipped packages.(   s   .pths	   .egg-infos	   .egg-link(   R   t   sortedR   R$   R"   RL   t   basenamet   rstripRJ   RB   RC   RD   RA   R   RF   R    t   replaceRN   RG   Rz   t   splitextR`   RR   R.   R4   R   t   count_packageR   t   sort(   R   R8   R   R"   R   t   zippedt   unzippedR<   t   extRn   t   count(    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR     sn     !#   
 c         C   sx   d } xk t  i | ƒ D]Z \ } } } g  } | D]' } | i ƒ  i d ƒ p | | q0 q0 ~ } | t | ƒ 7} q W| S(   Ni    s   .pyc(   R$   R_   R`   RN   Rb   (   R   R"   t   totalRg   Rh   Ri   Rj   RZ   (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR…   V  s     *(   t   __name__t
   __module__t   __doc__R   t   usaget   summaryR   R   R>   R6   R7   RT   Rd   Rp   R3   R   R…   (    (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyR      s   	*			3	,					;(   R!   R'   R)   R$   R]   RC   t   pip.utilR    R   R   t   pip.logR   t   pip.exceptionsR   t   pip.basecommandR   R   (    (    (    sL   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/commands/zip.pyt   <module>   s   