
}_J                 @   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-3_sjtvrs/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    