ó
^źWc           @@  s©   d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l m Z d  d l m	 Z	 m
 Z
 d  d l m Z e j e  Z d e f d     YZ d	   Z d
   Z d S(   i    (   t   absolute_import(   t
   FeedParserN(   t   Command(   t   SUCCESSt   ERROR(   t   pkg_resourcest   ShowCommandc           B@  s2   e  Z d  Z d Z d Z d Z d   Z d   Z RS(   s6   Show information about one or more installed packages.t   shows$   
      %prog [options] <package> ...s*   Show information about installed packages.c         O@  s^   t  t |   j | |   |  j j d d d d d d d t d d	 |  j j d
 |  j  d  S(   Ns   -fs   --filest   destt   filest   actiont
   store_truet   defaultt   helps7   Show the full list of installed files for each package.i    (   t   superR   t   __init__t   cmd_optst
   add_optiont   Falset   parsert   insert_option_group(   t   selft   argst   kw(    (    sb   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/commands/show.pyR      s    		c         C@  sC   | s t  j d  t S| } t |  } t | | j  s? t St S(   Ns.   ERROR: Please provide a package name or names.(   t   loggert   warningR   t   search_packages_infot   print_resultsR	   R   (   R   t   optionsR   t   queryt   results(    (    sb   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/commands/show.pyt   run!   s    (   t   __name__t
   __module__t   __doc__t   namet   usaget   summaryR   R   (    (    (    sb   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/commands/show.pyR      s   	c         c@  s  t  g  t j D] } | j j   | f ^ q  } g  |  D] } | j   ^ q8 } x0g  | D] } | | k rZ | | ^ qZ D]} i | j d 6| j d 6| j d 6g  | j   D] } | j ^ q® d 6} d }	 d }
 t	 | t j
  r¦| j d  r| j d  } g  | D] } | j d  d ^ q
} g  | D] } t j j | j |  ^ q0} g  | D] } t j j | | j  ^ q[}	 n  | j d  r>| j d  }
 q>n | j d	  r| j d	  } g  | D] } t j j | j |  ^ qĖ} g  | D] } t j j | | j  ^ qö}	 n  | j d
  r>| j d
  }
 n  | j d  ri| j d  } | | d <n  d } | j d  r·x6 | j d  D]" } | j   r| j   } PqqWn  | | d <t   } | j |
  | j   } x! d D] } | j |  | | <qźWg  } xG |
 j   D]9 } | s*Pn  | j d  r| j | t d   qqW| | d <|	 rzt |	  | d <n  | Vqz Wd S(   sī   
    Gather details from installed distributions. Print distribution name,
    version, location, and installed files. Installed files requires a
    pip generated 'installed-files.txt' in the distributions '.egg-info'
    directory.
    R#   t   versiont   locationt   requirest   RECORDt   ,i    t   METADATAs   installed-files.txts   PKG-INFOs   entry_points.txtt   entry_pointst	   INSTALLERt	   installers   metadata-versionR%   s	   home-paget   authors   author-emailt   licenses   Classifier: t   classifiersR	   N(   s   metadata-versions   summarys	   home-pages   authors   author-emails   license(   t   dictR   t   working_sett   project_namet   lowerR&   R'   R(   t   Nonet
   isinstancet   DistInfoDistributiont   has_metadatat   get_metadata_linest   splitt   ost   patht   joint   relpatht   get_metadatat   egg_infot   stripR   t   feedt   closet   gett
   splitlinest
   startswitht   appendt   lent   sorted(   R   t   pt	   installedR#   t   query_namest   pkgt   distt   dept   packaget	   file_listt   metadatat   linest   lt   pathsR,   R.   t   linet   feed_parsert   pkg_info_dictt   keyR1   (    (    sb   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/commands/show.pyR   -   sf    .0


&&+.+.
	

c         C@  s  t  } x|  D]} t } t j d  t j d | j d   t j d | d  t j d | d  t j d | j d	   t j d
 | j d   t j d | j d   t j d | j d   | d d! k	 rņ t j d | d  n  t j d | j d   t j d | d  t j d d j | d   t j d  x" | d D] } t j d |  qTW| rĖt j d  d | k r»x8 | d D] } t j d | j    qWqĖt j d  n  d | k r t j d   x+ | d D] } t j d | j    qļWq q W| S("   sD   
    Print the informations from installed distributions found.
    s   ---s   Metadata-Version: %ss   metadata-versions   Name: %sR#   s   Version: %sR&   s   Summary: %sR%   s   Home-page: %ss	   home-pages
   Author: %sR/   s   Author-email: %ss   author-emailR.   s   Installer: %ss   License: %sR0   s   Location: %sR'   s   Requires: %ss   , R(   s   Classifiers:R1   s     %ss   Files:R	   s!   Cannot locate installed-files.txtR,   s   Entry-points:N(   R   t   TrueR   t   infoRE   R6   R>   RB   (   t   distributionst   list_all_filest   results_printedRO   t
   classifierRW   (    (    sb   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/commands/show.pyR   x   s<    !(   t
   __future__R    t   email.parserR   t   loggingR<   t   pip.basecommandR   t   pip.status_codesR   R   t   pip._vendorR   t	   getLoggerR    R   R   R   R   (    (    (    sb   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/commands/show.pyt   <module>   s   	K