î
½1kdž  ã               @   sœ   d  d l  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 l m Z m Z d  d l m Z m Z Gd d	 „  d	 e ƒ Z d
 S)é    )ÚCommand)ÚDistributionNotFoundÚBestVersionAlreadyInstalled)ÚPackageFinder)Úlogger)ÚInstallRequirement)Úget_installed_distributionsÚdist_is_editable)Úmake_option_groupÚindex_groupc                   s£   e  Z d  Z d Z d Z d Z d Z d g Z ‡  f d d †  Z d d	 „  Z	 d
 d „  Z
 d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z ‡  S)ÚListCommandz-List installed packages, including editables.Úlistz
      %prog [options]zList installed packages.Úpythonc          	      s  t  t |  ƒ j | | Ž  |  j } | j d d d d d d d d ƒ| j d	 d
 d d d d d d ƒ| j d d d d d d d d ƒ| j d d d d d d d d ƒ| j d d d d d d d ƒt t |  j ƒ } |  j j d | ƒ |  j j d | ƒ d  S)Nz-oz
--outdatedÚactionÚ
store_trueÚdefaultFÚhelpz,List outdated packages (excluding editables)z-uz
--uptodatez,List uptodate packages (excluding editables)z-ez
--editablezList editable projects.z-lz--localzSIf in a virtualenv that has global access, do not list globally-installed packages.z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.r   )	Úsuperr   Ú__init__Úcmd_optsÚ
add_optionr
   r   ÚparserÚinsert_option_group)ÚselfÚargsÚkwr   Ú
index_opts)Ú	__class__© ú@/var/www/pythonscrapper/code/venv/build/pip/pip/commands/list.pyr      s<    					zListCommand.__init__c             C   sI   t  d | j d | d | j d | j d | j d | j d | j d | ƒ S)	zK
        Create a package finder appropriate to this list command.
        Ú
find_linksÚ
index_urlsÚallow_externalÚallow_unverifiedÚallow_all_externalÚallow_all_prereleasesÚprocess_dependency_linksÚsession)r   r    r"   r#   r$   Úprer&   )r   Úoptionsr!   r'   r   r   r   Ú_build_package_finder9   s    					z!ListCommand._build_package_finderc             C   s\   | j  r |  j | ƒ n? | j r2 |  j | ƒ n& | j rK |  j | ƒ n |  j | ƒ d  S)N)ÚoutdatedÚrun_outdatedÚuptodateÚrun_uptodateÚeditableÚrun_editablesÚrun_listing)r   r)   r   r   r   r   ÚrunH   s    			zListCommand.runc             C   sY   xR |  j  | ƒ D]A \ } } } | | j k r t j d | j | j | f ƒ q q Wd  S)Nz%s (Current: %s Latest: %s))Úfind_packages_latests_versionsÚparsed_versionr   ÚnotifyÚproject_nameÚversion)r   r)   ÚdistÚremote_version_rawÚremote_version_parsedr   r   r   r,   R   s    zListCommand.run_outdatedc             c   sé  | j  g | j } | j r? t j d d j | ƒ ƒ g  } n  | j r[ t j d d ƒ n  | j r„ t j d d ƒ | | j 7} n  g  } xK t	 d | j
 d |  j ƒ D]. } | j d ƒ r¦ | j | j d ƒ ƒ q¦ q¦ W|  j | ƒ } |  j | | | ƒ } | j | ƒ t	 d | j
 d	 d
 d |  j ƒ } x¸ | D]° } t j | j d  ƒ } y( | j | d ƒ }	 |	 d  k rsw1n  Wn/ t k
 r‹w1YnH t k
 r¥| j }
 Yn. X| j |	 | j ƒ d }
 |
 d } |
 d } | | | f Vq1Wd  S)NzIgnoring indexes: %sú,z1.7zˆ--use-mirrors has been deprecated and will be removed in the future. Explicit uses of --index-url and/or --extra-index-url is suggested.z…--mirrors has been deprecated and will be removed in  the future. Explicit uses of --index-url and/or --extra-index-url is suggested.Ú
local_onlyÚskipzdependency_links.txtÚinclude_editablesFTr   é   )Ú	index_urlÚextra_index_urlsÚno_indexr   r5   ÚjoinÚuse_mirrorsÚ
deprecatedÚmirrorsr   Úlocalr=   Úhas_metadataÚextendÚget_metadata_linesÚ_build_sessionr*   Úadd_dependency_linksr   Ú	from_lineÚkeyÚfind_requirementr   r   Úinstalled_versionÚ_link_package_versionsÚname)r   r)   r!   Údependency_linksr8   r'   ÚfinderÚinstalled_packagesÚreqÚlinkÚremote_versionr9   r:   r   r   r   r3   X   sD    				
		"!


z*ListCommand.find_packages_latests_versionsc             C   s,   t  d | j d |  j ƒ } |  j | ƒ d  S)Nr<   r=   )r   rG   r=   Úoutput_package_listing)r   r)   rU   r   r   r   r1   Œ   s    zListCommand.run_listingc             C   s)   t  d | j d d ƒ } |  j | ƒ d  S)Nr<   Úeditables_onlyT)r   rG   rY   )r   r)   rU   r   r   r   r0   �   s    zListCommand.run_editablesc             C   s{   t  | d d d „  ƒ} x\ | D]T } t | ƒ rP d | j | j | j f } n d | j | j f } t j | ƒ q Wd  S)NrN   c             S   s   |  j  j ƒ  S)N)r6   Úlower)r8   r   r   r   Ú<lambda>•   s    z4ListCommand.output_package_listing.<locals>.<lambda>z%s (%s, %s)z%s (%s))Úsortedr	   r6   r7   Úlocationr   r5   )r   rU   r8   Úliner   r   r   rY   ”   s    z"ListCommand.output_package_listingc             C   sY   g  } x? |  j  | ƒ D]. \ } } } | j | k r | j | ƒ q q W|  j | ƒ d  S)N)r3   r4   ÚappendrY   )r   r)   r-   r8   r9   r:   r   r   r   r.   �   s
    zListCommand.run_uptodate)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rR   ÚusageÚsummaryr=   r   r*   r2   r,   r3   r1   r0   rY   r.   r   r   )r   r   r   
   s   	%
4	r   N)Úpip.basecommandr   Úpip.exceptionsr   r   Ú	pip.indexr   Úpip.logr   Úpip.reqr   Úpip.utilr   r	   Zpip.cmdoptionsr
   r   r   r   r   r   r   Ú<module>   s   