U
    KQhJ                  	   @   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eZdddZdS )    )absolute_importN)InstallRequirement)
COMMENT_RE)get_installed_distributions)pkg_resources)canonicalize_name)RequirementParseErrorF c	                 c   s  |pg }d }	|rt |j}	g }
tjD ]}|dr&|
|d q&|D ]}d|krJ|
| qJ|D ]}d| V  qfi }t	|d|dD ]H}zt
j||
}W n& tk
r   td|j Y qY nX |||j< q| rTt }| D ]h}t|T}|D ]F}| r4| ds4|	r(|	|s4|drV| }||kr|| |V  q|d	sn|d
r|d	r|dd   }n|td
d   d}tj||||d}ntjtd| ||d}|jstd||  td q|j|kr$td|td|  qt ||j  V  ||j= qW 5 Q R X qdV  t!|" dd dD ]$}t#|j|krht | V  qhd S )Nzdependency_links.txtz#egg=z-f %sr	   )
local_onlyskip	user_onlyzCould not parse requirement: %s#)z-rz--requirementz-Zz--always-unzipz-fz--find-linksz-iz--index-urlz--prez--trusted-hostz--process-dependency-linksz--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  S )N)namelower)xr	   r	   4/tmp/pip-build-tlro1kwj/pip/pip/operations/freeze.py<lambda>       zfreeze.<locals>.<lambda>)key)$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    







   
rG   )	NNNNNNFNr	   )
__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__r&   rG   r	   r	   r	   r   <module>   s(   
            