Ñò
•èRc           @   sÃ   d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k l Z d  d k l Z l Z d  d k l	 Z	 d  d k
 l Z l Z d  d k l Z d  d k l Z d e f d	 „  ƒ  YZ e i e ƒ d S(
   iÿÿÿÿN(   t   call_subprocess(   t   display_patht   rmtree(   t   logger(   t   vcst   VersionControl(   t   path_to_url2(   t   ConfigParsert	   Mercurialc           B   s   e  Z d  Z d Z d Z d Z d Z d Z d	 „  Z d
 „  Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   t   hgs   .hgt   clones   hg+https   hg+httpss   hg+sshs   hg+static-https   hg-clone.txtsg   # This was a Mercurial repo; to make it a repo again run:
hg init
hg pull %(url)s
hg update -r %(rev)s
c         C   sÍ   d  } } x¼ | i ƒ  D]® } | i ƒ  p | i ƒ  i d ƒ o q n t i d | ƒ } | o | i d ƒ i ƒ  } n t i d | ƒ } | o | i d ƒ i ƒ  } n | o | o | | f Sq Wd S(   Nt   #s   hg\s*pull\s*(.*)\s*i   s   ^hg\s*update\s*-r\s*(.*)\s*(   NN(   t   Nonet
   splitlinest   stript
   startswitht   ret   searcht   group(   t   selft   contentt   urlt   revt   linet	   url_matcht	   rev_match(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   parse_vcs_bundle_file   s    
 $c         C   s`   t  i d d ƒ } |  i | ƒ z/ t |  i d | g d |  i d t d | ƒWd t | ƒ Xd S(   s?   Export the Hg repository at the url to the destination locations   -exports   pip-t   archivet   filter_stdoutt   show_stdoutt   cwdN(   t   tempfilet   mkdtempt   unpackR    t   cmdt   _filtert   FalseR   (   R   t   locationt   temp_dir(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   export%   s    c         C   sÛ   t  i i | |  i d ƒ } t i ƒ  } yJ | i | ƒ | i d d | ƒ t | d ƒ } | i	 | ƒ | i
 ƒ  WnC t t i f j
 o. t i ƒ  d } t i d | | f ƒ n" Xt |  i d d g | d	 | ƒd  S(
   Nt   hgrct   pathst   defaultt   wi   s/   Could not switch Mercurial repository to %s: %st   updates   -qR   (   t   ost   patht   joint   dirnameR   t   SafeConfigParsert   readt   sett   opent   writet   closet   OSErrort   NoSectionErrort   syst   exc_infoR   t   warnR    R"   (   R   t   destR   t   rev_optionst   repo_configt   configt   config_filet   e(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   switch0   s    c         C   s@   t  |  i d d g d | ƒt  |  i d d g | d | ƒd  S(   Nt   pulls   -qR   R,   (   R    R"   (   R   R<   R=   (    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyR,   A   s    c         C   s¼   |  i  ƒ  \ } } | o | g } d | } n g  } d } |  i | | | | ƒ oc t i d | | t | ƒ f ƒ t |  i d d d | | g ƒ t |  i d d g | d | ƒn d  S(	   Ns    (to revision %s)t    s   Cloning hg %s%s to %sR
   s
   --noupdates   -qR,   R   (   t   get_url_revt   check_destinationR   t   notifyR   R    R"   (   R   R<   R   R   R=   t   rev_display(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   obtainF   s    		c         C   sT   t  |  i d d g d t d | ƒi ƒ  } |  i | ƒ o t | ƒ } n | i ƒ  S(   Nt
   showconfigs   paths.defaultR   R   (   R    R"   R$   R   t   _is_local_repositoryR   (   R   R%   R   (    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   get_urlT   s    c         C   s³   t  |  i d g d t d | ƒ} g  } x | i ƒ  D]q } t i d | ƒ } | oR | i d ƒ } | i d ƒ } d | j o# | i | i ƒ  | i ƒ  f ƒ q¥ q4 q4 Wt	 | ƒ S(   Nt   tagsR   R   s   ([\w\d\.-]+)\s*([\d]+):.*$i   i   t   tip(
   R    R"   R$   R   R   R   R   t   appendR   t   dict(   R   R%   RM   t   tag_revsR   t
   tags_matcht   tagR   (    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   get_tag_revs\   s     +c         C   s³   t  |  i d g d t d | ƒ} g  } x | i ƒ  D]q } t i d | ƒ } | oR | i d ƒ } | i d ƒ } d | j o# | i | i ƒ  | i ƒ  f ƒ q¥ q4 q4 Wt	 | ƒ S(   Nt   branchesR   R   s   ([\w\d\.-]+)\s*([\d]+):.*$i   i   R*   (
   R    R"   R$   R   R   R   R   RO   R   RP   (   R   R%   RU   t   branch_revsR   t   branches_matcht   branchR   (    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   get_branch_revsi   s     +c         C   s.   t  |  i d d g d t d | ƒi ƒ  } | S(   Nt   parentss   --template={rev}R   R   (   R    R"   R$   R   (   R   R%   t   current_revision(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   get_revisionv   s    c         C   s.   t  |  i d d g d t d | ƒi ƒ  } | S(   NRZ   s   --template={node}R   R   (   R    R"   R$   R   (   R   R%   t   current_rev_hash(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   get_revision_hash|   s    c         C   sü   |  i  | ƒ } | i ƒ  i d ƒ p d | } n | i ƒ  i d d ƒ d } | p d  S|  i | ƒ } |  i | ƒ } |  i | ƒ } |  i	 | ƒ }	 | | j o d | | | f }
 n0 | |	 j o d | |	 | f }
 n d | }
 d | | |
 f S(	   Ns   hg:s   hg+t   -i   i    s   %s-%ss   %s-devs   %s@%s#egg=%s(
   RL   t   lowerR   t   egg_namet   splitR   R\   R^   RT   RY   (   R   t   distR%   t	   find_tagst   repot   egg_project_namet   current_revR]   RQ   RV   t   full_egg_name(    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   get_src_requirement‚   s     
(   R	   s   hg+https   hg+httpss   hg+sshs   hg+static-http(   t   __name__t
   __module__t   nameR0   t	   repo_namet   schemest   bundle_filet   guideR   R'   RB   R,   RI   RL   RT   RY   R\   R^   Ri   (    (    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyR      s"   										(   R-   R   R   R9   t   pip.utilR    R   R   t   pip.logR   t   pip.vcsR   R   t   pip.downloadR   t   pip.backwardcompatR   R   t   register(    (    (    sM   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/mercurial.pyt   <module>   s   Š