ó
4vWc           @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z d  d l m Z m Z d	 e f d
     YZ d   Z d d d  Z d   Z d   Z e   d S(   iĸĸĸĸN(   t   Commandt   SUCCESS(   t   get_terminal_size(   t   logger(   t	   xmlrpclibt   reducet   cmp(   t   CommandError(   t   NO_MATCHES_FOUND(   t   StrictVersiont   LooseVersiont   SearchCommandc           B   s5   e  Z d  Z d Z d Z d   Z d   Z d   Z RS(   t   searchs   %prog QUERYs   Search PyPIc      
   C   s?   t  t |   j   |  j j d d d d d d d d d	 d  S(
   Ns   --indext   destt   indext   metavart   URLt   defaults   http://pypi.python.org/pypit   helps3   Base URL of Python Package Index (default %default)(   t   superR   t   __init__t   parsert
   add_option(   t   self(    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR      s    	c         C   s   | s t  d   n  | } | j } |  j | |  } t |  } d  } t j j   rg t   d } n  t	 | d | | r t
 St S(   Ns)   Missing required argument (search query).i    t   terminal_width(   R   R   R   t   transform_hitst   Nonet   syst   stdoutt   isattyR   t   print_resultsR   R   (   R   t   optionst   argst   queryt	   index_urlt	   pypi_hitst   hitsR   (    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyt   run   s    	c         C   s<   t  j | t j j  } | j i | d 6| d 6d  } | S(   Nt   namet   summaryt   or(   R   t   ServerProxyt   pipt   downloadt   xmlrpclib_transportR   (   R   R!   R"   t   pypiR$   (    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR   .   s     (   t   __name__t
   __module__R&   t   usageR'   R   R%   R   (    (    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR      s   			c         C   sð   i  } xÂ |  D]š } | d } | d } | d } | d } | | j    k ry i | d 6| d 6| g d 6| d 6| | <q | | d j |  | t | | d  k r | | | d <| | | d <q q Wt | j   d d   d	 t } | S(
   sž   
    The list from pypi is really a list of versions. We want a list of
    packages with the list of versions stored inline. This converts the
    list from pypi into one we can use.
    R&   R'   t   versiont   _pypi_orderingt   versionst   scoret   keyc         S   s   |  d S(   NR4   (    (   t   x(    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyt   <lambda>L   s    t   reverse(   t   keyst   appendt   highest_versiont   sortedt   valuest   True(   R$   t   packagest   hitR&   R'   R1   R4   t   package_list(    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR   4   s    



,!i   c         C   so  g  t  j D] } | j ^ q
 } xI|  D]A} | d } | d pC d } | d  k	 r t j | | | d  } d d | d j |  } n  d | j |  | f } y° t j	 |  | | k rRt  j
 |  }	 t j d	 7_ z_ t | d
  }
 |	 j |
 k rt j	 d |	 j  n% t j	 d |	 j  t j	 d |
  Wd  t j d	 8_ Xn  Wq& t k
 rfq& Xq& Wd  S(   NR&   R'   t    i   s   
t    i   s   %s - %si   R3   s   INSTALLED: %s (latest)s   INSTALLED: %ss   LATEST:    %s(   t   pkg_resourcest   working_sett   project_nameR   t   textwrapt   wrapt   joint   ljustR   t   notifyt   get_distributiont   indentR;   R1   t   UnicodeEncodeError(   R$   t   name_column_widthR   t   pt   installed_packagesR@   R&   R'   t   linet   distt   latest(    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR   P   s,    
c         C   sī   y t  t |   t |   SWn t k
 r0 n Xy t  t |   t |   SWn_ t k
 rŊ t  g  t |   j D] } t |  ^ qq g  t |  j D] } t |  ^ q  SXd  S(   N(   R   R	   t
   ValueErrorR
   t	   TypeErrorR1   t   str(   t   version1t   version2t   v(    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyt   compare_versionsl   s    (c         C   s   t  d   |   S(   Nc         S   s   t  |  |  d k r |  p | S(   Ni   (   R[   (   t   v1t   v2(    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR7   |   s    (   R   (   R3   (    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyR;   {   s    (   R   RG   RD   t   pip.downloadR*   t   pip.basecommandR    R   t   pip.utilR   t   pip.logR   t   pip.backwardcompatR   R   R   t   pip.exceptionsR   t   pip.status_codesR   t   distutils.versionR	   R
   R   R   R   R   R[   R;   (    (    (    s^   /data/av2000/soap/soapenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/search.pyt   <module>   s    &			