
§|jJ  ã               @   sÎ   d  d l  m 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
 d  d l m Z d  d l m Z d  d l m Z e j e ƒ Z d d d d d d d	 d f  d
 d „	 Z d S)é    )Úabsolute_importN)ÚInstallRequirement)Ú
COMMENT_RE)Úget_installed_distributions)Úpkg_resources)Úcanonicalize_name)ÚRequirementParseErrorFc	             c   s€  | p	 g  } d  }	 | r* t  j | ƒ j }	 g  }
 x6 t j D]+ } | j d ƒ r: |
 j | j d ƒ ƒ q: Wx' | D] } d | k rp |
 j | ƒ qp Wx | D] } d | Vqš Wi  } xt t	 d | d f  d | ƒ D]W } y t
 j j | |
 ƒ } Wn( t k
 rt j d | j ƒ wÏ Yn X| | | j <qÏ W|  r-t ƒ  } xì|  D]ä} t | ƒ �Ï} xÅ| D]½} | j ƒ  s¥| j ƒ  j d ƒ s¥|	 r–|	 | ƒ s¥| j d$ ƒ rÒ| j ƒ  } | | k r\| j | ƒ | Vq\| j d ƒ sð| j d ƒ ra| j d ƒ r| d d  … j ƒ  } n% | t d ƒ d  … j ƒ  j d ƒ } t j | d | d | d | ƒ} n- t j t j d | ƒ j ƒ  d | d | ƒ} | j sÀt j d | | j ƒ  ƒ t j d ƒ q\| j | k r÷t j d | t j d | ƒ j ƒ  ƒ q\t  | | j ƒ j ƒ  V| | j =q\WWd  QRXq@Wd  VxL t! | j" ƒ  d! d" d# „  ƒD], } t# | j ƒ | k rLt  | ƒ j ƒ  VqLWd  S)%Nzdependency_links.txtz#egg=z-f %sÚ
local_onlyÚskipÚ	user_onlyzCould not parse requirement: %sú#ú-rú--requirementú-Zú--always-unzipú-fú--find-linksú-iú--index-urlú--preú--trusted-hostú--process-dependency-linksú--extra-index-urlz-ez
--editableé   ú=Údefault_vcsÚisolatedÚwheel_cacheÚ zWSkipping line in requirement file [%s] because it's not clear what it would install: %sz9  (add #egg=PackageName to the URL to avoid this warning)zDRequirement file [%s] contains %s, but that package is not installedz7## The following requirements were added by pip freeze:Úkeyc             S   s   |  j  j ƒ  S)N)ÚnameÚlower)Úx© r#   ú4/tmp/pip-build-5c7ija6t/pip/pip/operations/freeze.pyÚ<lambda>‚   s    zfreeze.<locals>.<lambda>)r   r   r   r   r   r   r   r   r   r   r   r   )$ÚreÚcompileÚsearchr   Úworking_setÚhas_metadataÚextendÚget_metadata_linesÚappendr   ÚpipÚFrozenRequirementÚ	from_distr   ÚloggerÚwarningÚproject_namer    ÚsetÚopenÚstripÚ
startswithÚrstripÚaddÚlenÚlstripr   Úfrom_editableÚ	from_liner   ÚsubÚinfoÚstrÚsortedÚvaluesr   )ÚrequirementÚ
find_linksr	   r   Ú
skip_regexr   r   r   r
   Ú
skip_matchÚdependency_linksÚdistÚlinkÚinstallationsÚreqÚemitted_optionsÚreq_file_pathÚreq_fileÚlineÚline_reqÚinstallationr#   r#   r$   Úfreeze   s     	
	       	%		
rR   )Ú
__future__r   Úloggingr&   r.   Úpip.reqr   Zpip.req.req_filer   Ú	pip.utilsr   Úpip._vendorr   Úpip._vendor.packaging.utilsr   Zpip._vendor.pkg_resourcesr   Ú	getLoggerÚ__name__r1   rR   r#   r#   r#   r$   Ú<module>   s    