3
LYJ              	   @   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 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 }
x(tjD ]}|jdr(|
j|jd q(W x|D ]}d|krP|
j| qPW x|D ]}d| V  qpW i }xXt	|f |dD ]F}yt
jj||
}W n$ tk
r   tjd|j wY nX |||j< qW | rvt }x| D ]v}t|b}xX|D ]N}|j  sL|j jdsL|	r@|	|sL|jd!rr|j }||kr|j| |V  q|jds|jdr|jdr|dd  j }n|tdd  j jd}tj||||d}ntjtjd|j ||d}|jstjd||j  tjd nD|j|kr@tjd|tjd|j  nt ||j j V  ||j= qW W d Q R X qW dV  x<t!|j" dd d D ]$}t#|j|krt |j V  qW d 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 )r   r   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:c             S   s
   | j j S )N)namelower)x r"   h/private/var/folders/7d/20zwc49s3kn54d3vgq8bd4640000gn/T/pip-build-an2lx5zf/pip/pip/operations/freeze.py<lambda>   s    zfreeze.<locals>.<lambda>)key)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    
