YJ @sddlmZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZddlmZejeZddddddd dfd d ZdS) )absolute_importN)InstallRequirement) COMMENT_RE)get_installed_distributions) pkg_resources)canonicalize_name)RequirementParseErrorFc cs|p g}d} |r*tj|j} g} x6tjD]+} | jdr:| j| jdq:Wx'|D]} d| krp| j| qpWx|D]} d| VqWi} xtt d|dfd|D]W} yt j j | | }Wn(t k rtjd| jwYnX|| |jszfreeze..) r rrrrrrrrrrr)$recompilesearchr working_set has_metadataextendget_metadata_linesappendrpipFrozenRequirement from_distrloggerwarning project_namer setopenstrip 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