3 ] @sddlmZddlZddlZddlZyddlmZWnek rPddl ZYnXddl m Z m Z ddl mZmZddlmZejeZGdddeZejedS) )absolute_importN)parse)rmtree display_path)vcsVersionControl) path_to_urlcszeZdZdZdZdZdZd fd d Zd dZddZ ddZ ddZ fddZ ddZ ddZddZddZZS)!Bazaarbzrz.bzrbranchbzr+http bzr+httpsbzr+sshbzr+sftpbzr+ftpbzr+lpNcsDtt|j|f||ttddr@tjjdgtjjdgdS)N uses_fragmentlp)superr __init__getattr urllib_parserextendnon_hierarchical)selfurlargskwargs) __class__-/tmp/pip-build-8jg9gmni/pip/pip/vcs/bazaar.pyrs zBazaar.__init__c CsRtjdd}|j|tjj|r*t|z|jd|g|ddWdt|XdS)zU Export the Bazaar repository at the url to the destination location z-exportzpip-exportF)cwd show_stdoutN)tempfilemkdtempunpackospathexistsr run_command)rlocationtemp_dirrrr r!&s     z Bazaar.exportcCs|jd|g|ddS)Nswitch)r")r*)rdestr rev_optionsrrr r-5sz Bazaar.switchcCs|jddg||ddS)Npullz-q)r")r*)rr.r/rrr update8sz Bazaar.updatecCsl|j\}}|r"d|g}d|}ng}d}|j||||rhtjd||t||jddg|||gdS)Nz-rz (to revision %s)zChecking out %s%s to %sr z-q) get_url_revcheck_destinationloggerinforr*)rr.rrevr/ rev_displayrrr obtain;s   z Bazaar.obtaincs,tt|j\}}|jdr$d|}||fS)Nzssh://zbzr+)rr r3 startswith)rrr7)rrr r3Ls zBazaar.get_url_revcCsl|jdgd|d}xT|jD]H}|j}x:dD]2}|j|r.|j|d}|j|r\t|S|Sq.WqWdS)Nr6F)r#r"checkout of branch: parent branch: )r;r<)r* splitlinesstripr:split_is_local_repositoryr)rr+urlslinexreporrr get_urlSs   zBazaar.get_urlcCs|jdgd|d}|jdS)NrevnoF)r#r"r=)r*r>)rr+revisionrrr get_revision`szBazaar.get_revisioncCsT|j|}|sdS|jjds(d|}|jjddd}|j|}d|||fS)Nzbzr:zbzr+-r=rz %s@%s#egg=%s)rFlowerr:egg_namer@rJ)rdistr+rEegg_project_name current_revrrr get_src_requirementes  zBazaar.get_src_requirementcCsdS)z&Always assume the versions don't matchFr)rr.r/rrr check_versionoszBazaar.check_version)r r r rrrr)N)__name__ __module__ __qualname__namedirname repo_nameschemesrr!r-r1r9r3rFrJrQrR __classcell__rr)rr r s   r ) __future__rloggingr'r$urllibrr ImportErrorurlparse pip.utilsrrpip.vcsrr pip.downloadr getLoggerrSr5r registerrrrr s   _