ó
>ò†[c           @   sk   d  d l  m Z d  d l m Z d e f d „  ƒ  YZ d „  Z d „  Z d e f d „  ƒ  YZ d	 „  Z	 d
 S(   iÿÿÿÿ(   t   urlparse(   t	   UserErrort   PackageSpecc           B   s}   e  Z d d d d d d  „ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d „  ƒ Z RS(	   c         C   s£   | |  _  | |  _ | |  _ | |  _ | |  _ | r? | |  _ n` t | ƒ } | rd d | | f } n  | r} d | | f } n  | r– d | | f } n  | |  _ d  S(   Ns   %s/%s(   t   _usert   _packaget   _versiont	   _basenamet   attrst   spec_strt   str(   t   selft   usert   packaget   versiont   basenameR   R   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   __init__   s    					c         C   s   |  j  S(   N(   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   __str__   s    c         C   s   d |  j  S(   Ns   <PackageSpec %r>(   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   __repr__   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   Ns,   user not given (got %r expected <username> )(   R   t   NoneR   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR      s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   NsA   package not given in spec (got %r expected <username>/<package> )(   R   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   name%   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   NsA   package not given in spec (got %r expected <username>/<package> )(   R   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR   +   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   NsK   version not given in spec (got %r expected <username>/<package>/<version> )(   R   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR   1   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   NsW   basename not given in spec (got %r expected <username>/<package>/<version>/<filename> )(   R   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR   7   s    N(   t   __name__t
   __module__R   R   R   R   t   propertyR   R   R   R   R   (    (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR      s   		c         C   sm   |  } d  } i  } d | k r9 | j d d ƒ \ } } n  d | k rT t d ƒ ‚ n  t | | d  d  | |  ƒ S(   Nt   /i   s   invalid package spec(   R   t   splitt	   TypeErrorR   (   t   specR   R   R   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   package_specs>   s    c         C   sö   |  } d  } } } i  } d | k rA | j d d ƒ \ } } n  | rn d | k rn | j d d ƒ \ } } n  | r› d | k r› | j d d ƒ \ } } n  | rÝ d | k rÝ | j d d ƒ \ } } t t j | ƒ ƒ } n  t | | | | | |  ƒ S(   NR   i   t   ?(   R   R   t   rsplitt   dictR    t	   parse_qslR   (   R   R   R   R   R   R   t   qsl(    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   parse_specsJ   s    t	   GroupSpecc           B   sY   e  Z d d d d  „ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 RS(   c         C   so   | |  _  | |  _ | |  _ | sb t | ƒ } | rF d | | f } n  | rb d | | f } qb n  | |  _ d  S(   Ns   %s/%s(   t   _orgt   _group_namet   _memberR	   R   (   R
   t   orgt
   group_namet   memberR   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR   ^   s    			c         C   s   |  j  S(   N(   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR   k   s    c         C   s   d |  j  S(   Ns   <GroupSpec %r>(   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR   n   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   Ns7   Organization not given (got %r expected <organization>)(   R#   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR&   q   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   NsB   Group name not given (got %r expected <organization>/<group_name>)(   R$   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR'   w   s    c         C   s/   |  j  d  k r( t d |  j f ƒ ‚ n  |  j  S(   NsL   Member name not given (got %r expected <organization>/<group_name>/<member>)(   R%   R   R   R   (   R
   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR(   }   s    N(
   R   R   R   R   R   R   R   R&   R'   R(   (    (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyR"   ]   s   		c         C   sœ   |  } d } } d | k r7 | j d d ƒ \ } } n  | rd d | k rd | j d d ƒ \ } } n  | r‰ d | k r‰ t d | ƒ ‚ n  t | | | |  ƒ S(   s$   <organization>/<group_name>/<member>R   i   s7   Invalid group specification "%s" (unexpected "/" in %s)N(   R   R   R   R"   (   R   R&   t   groupR(   (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt
   group_spec„   s    
N(
   t   six.moves.urllib.parseR    t   binstar_client.errorsR   t   objectR   R   R!   R"   R*   (    (    (    sX   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/spec.pyt   <module>   s   8		'