3 ]-@sddlmZddlZddlZddlZddlZddlZddlZddlZyddl m Z Wn e k rtddl m Z YnXej de dddlmZmZmZddlmZmZddlmZmZdd lmZmZmZmZdd lmZmZdd lm Z m!Z!dd lm"Z"ydd l m#Z#Wn"e k r.dd l m#Z#YnXddl$Z%e%j&Z&dZ'ej(e)Z*ej de#dddZ+ddZ,ddZ-ddZ.dddZ/Gddde0Z1e)dkrej2e/dS))absolute_importN)DependencyWarningignore)category)InstallationError CommandErrorPipError)get_installed_distributionsget_prog) deprecationdist_is_editable)git mercurial subversionbazaar)ConfigOptionParserUpdatingDefaultsHelpFormatter) get_summariesget_similar_commands) commands_dict)InsecureRequestWarningz9.0.1c sZdtjkrdStjdjdd}ttjd}y||dWntk rZdYnXddtDg}yfd d|Dd }Wntk rd}YnXt}|r|d krtjd|d koԈj d  rJg}j }xNsz autocomplete..csg|]}|kr|qSrr)rw) subcommandsrr r!Rsrhelp uninstall-T) local_onlycSs&g|]}|jtjkr|j|jfqSr)r$optparse SUPPRESS_HELPget_opt_stringnargs)roptrrr r!jscSsg|]}|jddqS)=r)split)rxrrr r!oscs g|]\}}|kr||fqSrr)rr/v) prev_optsrr r!pscs"g|]\}}|jr||fqSr) startswith)rkr0)currentrr r!rsr-z--cSsg|] }|jqSr) option_list)rirrr r!|scss|]}|D] }|Vq qdS)Nr)ritorrr ~szautocomplete..cSs g|]}|jtjkr|jqSr)r$r(r)r*)rr6rrr r!s csg|]}|jr|qSr)r2)rr/)r4rr r!s)osenvironr.int IndexErrorrcreate_main_parsersysexitr2lowerr keyappendprintrparseroption_list_all option_groupsr5join) cwordscwordoptionssubcommand_namerF installedlcdist subcommandoption opt_labeloptsr)r4r1r#r autocomplete>s\          rUcCsddtdtd}tf|}|jtjjtjjtjjt}dt |t j ddf|_ t j t j|}|j|d|_t}dgd d |D}d j||_|S) Nz %prog [options]Fglobal)usageadd_help_option formatternameprogzpip %s from %s (python %s)TrcSsg|]\}}d||fqS)z%-27s %sr)rr6jrrr r!sz&create_main_parser.. )rr rdisable_interspersed_argsr;pathdirnameabspath__file__ __version__r@version cmdoptionsmake_option_group general_groupadd_option_groupmainrrI description) parser_kwrF pip_pkg_dirgen_optscommand_summariesrkrrr r?s"    r?cCst}|j|\}}|jr>tjj|jtjjtjtj| s\|ddkrlt |dkrl|j tj|d}|t krt |}d|g}|r|j d|tdj||dd}|j|||fS)Nrr$rzunknown command "%s"zmaybe you meant "%s"z - )r? parse_argsrer@stdoutwriter;lineseprAlen print_helprrrDrrIremove)argsrFgeneral_options args_elsecmd_nameguessmsgcmd_argsrrr parseoptss&    r~cCsd}d|krd}|S)NFz --isolatedTr)rwisolatedrrr check_isolatedsrcCs|dkrtjdd}tjtyt|\}}WnJtk r~}z.tjjd|tjjt j tj dWYdd}~XnXyt j t jdWn0t jk r}ztjd|WYdd}~XnXt|t|d}|j|S)Nrz ERROR: %srz%Ignoring error %s when setting locale)r)r@argvr install_warning_loggerrUr~rstderrrrr;rsrAlocale setlocaleLC_ALLErrorloggerdebugrrrj)rwrzr}excecommandrrr rjs rjc@sLeZdZffddZejdZejdZeddZ e ddZ d d Z d S) FrozenRequirementcCs||_||_||_||_dS)N)rZreqeditablecomments)selfrZrrrrrr __init__szFrozenRequirement.__init__z-r(\d+)$z-(20\d\d\d\d\d\d)$cCstjjtjj|j}g}ddlm}m}t|r|j |rd}y|||}Wn2t k r} zt j d| d}WYdd} ~ XnX|dkrt j d||j d|j}d}nd}|j}|j} t| dkr| dddkstd | |f| dd} |jj| } |jj| } | s| r|jd }|r:|j||}|sXt j d ||j dnF|j d|| rx| jd}nd| jd}d}d|||j|f}||j|||S)Nr)vcsget_src_requirementTzYError when trying to get requirement for VCS system %s, falling back to uneditable formatz-Could not determine repository location of %sz-## !! Could not determine repository locationFr=====z5Expected 1 spec with == or ===; specs = %r; dist = %rsvnz(Warning: cannot find svn location for %szF## FIXME: could not find svn URL in dependency_links for this package:z3# Installing as editable to satisfy requirement %s:z{%s}z %s@%s#egg=%s)rr)r;r`normcaserblocationpip.vcsrrr get_backend_namerrwarningrDas_requirementspecsrtAssertionError_rev_research_date_re get_backend get_locationgroupegg_name project_name)clsrPdependency_linksrrrrrrrrre ver_match date_match svn_backend svn_locationrevrrr from_distsf       zFrozenRequirement.from_distcCs,|j}tjd|}|r(|d|j}|S)Nz -py\d\.\d$)rrerstart)rPrZmatchrrr rBs  zFrozenRequirement.egg_namecCs2|j}|jrd|}djt|jt|gdS)Nz-e %sr^)rrrIlistrstr)rrrrr __str__JszFrozenRequirement.__str__N) __name__ __module__ __qualname__rrcompilerr classmethodr staticmethodrrrrrr rs     A r__main__)N)3 __future__rrloggingr;r(warningsr@rZ0pip._vendor.requests.packages.urllib3.exceptionsr ImportErrorZurllib3.exceptionsfilterwarningspip.exceptionsrrr pip.utilsr r r r rr rrrpip.baseparserrr pip.commandsrrrrZpip.cmdoptionspiprfrd getLoggerrrrUr?r~rrjobjectrrArrrr sH     I* [