3 ]J @sddlmZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZddlmZejeZddddddd dff d d ZdS) )absolute_importN)InstallRequirement) COMMENT_RE)get_installed_distributions) pkg_resources)canonicalize_name)RequirementParseErrorFc cs|pg}d} |rtj|j} g} x(tjD]} | jdr(| j| jdq(Wx|D]} d| krP| j| qPWx|D]} d| VqpWi} xXt |f|dD]F} yt j j | | }Wn$t k rtjd| jwYnX|| |j<qW|rvt}x|D]v}t|b}xX|D]N}|j sL|jjdsL| r@| |sL|jd!rr|j}||kr|j||Vq|jds|jdr|jdr|ddj}n|tddjjd}tj||||d}ntjtjd|j||d}|jstjd||jtjdnD|j| kr@tjd|tjd|jnt | |jjV| |j=qWWdQRXqWdVxszfreeze..)key) r rrrrrrrrrrr)$recompilesearchr working_set has_metadataextendget_metadata_linesappendrpipFrozenRequirement from_distrloggerwarning project_namersetopenstrip startswithrstripaddlenlstripr from_editable from_linersubinfostrsortedvaluesr) requirement find_linksr r skip_regexrrrr skip_matchdependency_linksdistlink installationsreqemitted_options req_file_pathreq_filelineline_req installationr"r"r#freezes               rR) __future__rloggingr&r.pip.reqrZpip.req.req_filer pip.utilsr pip._vendorrpip._vendor.packaging.utilsrZpip._vendor.pkg_resourcesr getLogger__name__r1rRr"r"r"r#s