YT,@sddlmZddlZddlZddlZddlZddlZddlZddlZddl m Z ej dde ddl m Z mZmZddlmZmZddlmZmZdd lmZmZmZmZdd lmZmZdd lmZmZdd lm Z dd l m!Z!ddl"Z#e#j$Z$dZ%ej&e'Z(ej dde!ddZ)ddZ*ddZ+ddZ,dddZ-Gddde.Z/e'dkrej0e-dS))absolute_importN)DependencyWarningignorecategory)InstallationError CommandErrorPipError)get_installed_distributionsget_prog) deprecationdist_is_editable)git mercurial subversionbazaar)ConfigOptionParserUpdatingDefaultsHelpFormatter) get_summariesget_similar_commands) commands_dict)InsecureRequestWarningz9.0.1c sdtjkrdStjdjdd}ttjd}y||dWntk rodYnXddtDg}y!fd d|Dd }Wntk rd}YnXt}|rZ|d krtjd|d krj d  rg}j }xRt ddD]A}|j j |r.|j |ddkr.|j |j q.W|rx|D]}t|qWtjdt|}|dd|jjD7}dd|d|dDfdd|D}fdd|D}x|D].} | d } | drI| d7} t| q%Wnj d sxj drdd|jD} | j |jdd| D} dd| D7tdjfddDtjddS)zCommand and option completion for the main option parser (and options) and its subcommands (and options). Enable by sourcing one of the completion shell scripts (bash, zsh or fish). PIP_AUTO_COMPLETEN COMP_WORDS COMP_CWORDcSsg|]\}}|qSr).0cmdsummaryrr+/tmp/pip-build-3puug3g5/pip/pip/__init__.py Gs z autocomplete..cs"g|]}|kr|qSrr)rw) subcommandsrr r!Ks rhelp uninstall- local_onlyTcSs7g|]-}|jtjkr|j|jfqSr)r$optparse SUPPRESS_HELPget_opt_stringnargs)roptrrr r!cs cSs#g|]}|jddqS)=r)split)rxrrr r!hs cs.g|]$\}}|kr||fqSrr)rr/v) prev_optsrr r!is cs1g|]'\}}|jr||fqSr) startswith)rkr0)currentrr r!ks r-z--cSsg|]}|jqSr) option_list)rirrr r!us css"|]}|D] }|Vq qdS)Nr)ritorrr wszautocomplete..cSs.g|]$}|jtjkr|jqSr)r$r(r)r*)rr6rrr r!ys  cs%g|]}|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 autocomplete7s\  !      +    !    &rUc Csdddddtdddti}t|}|jtjjtjjtjjt}d t |t j dd f|_ t j t j|}|j|d |_t}d gd d|D}dj||_|S)Nusagez %prog [options]add_help_optionF formatternameglobalprogzpip %s from %s (python %s)TrcSs&g|]\}}d||fqS)z%-27s %sr)rr6jrrr r!s z&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|\}}|jrWtjj|jtjjtjtj| s|ddkrt |dkr|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_isolateds rc Cs|dkrtjdd}tjtyt|\}}WnYtk r}z9tjjd|tjjt j tj dWYdd}~XnXyt j t jdWn8t jk r}ztjd|WYdd}~XnXt|dt|}|j|S)Nrz ERROR: %srz%Ignoring error %s when setting localer)r@argvr install_warning_loggerrUr~rstderrrrr;rsrAlocale setlocaleLC_ALLErrorloggerdebugrrrj)rwrzr}excecommandrrr rjs    #rjc@smeZdZfddZejdZejdZeddZ e ddZ d d Z d S) FrozenRequirementcCs(||_||_||_||_dS)N)rYreqeditablecomments)selfrYrrrrrr __init__s   zFrozenRequirement.__init__z-r(\d+)$z-(20\d\d\d\d\d\d)$cCsFtjjtjj|j}g}ddlm}m}t|r|j |rd}y|||}Wn;t k r} zt j d| d}WYdd} ~ XnX|dkr0t j d||j d|j}d}nCd}|j}|j} t| dkr.| dddksDtd | |f| dd} |jj| } |jj| } | s| r0|jd }|r|j||}|st j d ||j dn^|j d|| r| 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)rPrYmatchrrr r;s  zFrozenRequirement.egg_namecCsC|j}|jrd|}djt|jt|gdS)Nz-e %sr^)rrrIlistrstr)rrrrr __str__Cs   zFrozenRequirement.__str__N) __name__ __module__ __qualname__rrcompilerr classmethodr staticmethodrrrrrr rs Ar__main__)1 __future__rrloggingr;r(warningsr@rZ0pip._vendor.requests.packages.urllib3.exceptionsrfilterwarningspip.exceptionsrrr pip.utilsr r r r rr rrrpip.baseparserrr pip.commandsrrrrZpip.cmdoptionspiprfrd getLoggerrrrUr?r~rrjobjectrrArrrr s<       "   I  * [