
    =e                     d    d dl mZ d dlmZ  G d d          Zd Zd Z G d d          Zd	 Zd
S )    )	parse_qsl)	UserErrorc                       e Zd Z	 	 	 	 	 d
dZd Zd Zed             Zed             Zed             Z	ed             Z
ed	             ZdS )PackageSpecNc                     || _         || _        || _        || _        || _        |r	|| _        d S t          |          }|r| d| }|r| d| }|r| d| }|| _        d S N/)_user_package_version	_basenameattrsspec_strstr)selfuserpackageversionbasenamer   r   s          9lib/python3.11/site-packages/binstar_client/utils/spec.py__init__zPackageSpec.__init__	   s     
!
 
	%$DMMM4yyH 3&2222 3&2222 4&3333$DMMM    c                     | j         S Nr   r   s    r   __str__zPackageSpec.__str__$   
    }r   c                     d| j         dS )Nz<PackageSpec >r   r   s    r   __repr__zPackageSpec.__repr__'   s    1t}1111r   c                 N    | j         t          d| j        d          | j         S )Nzuser not given (got z expected <username>))r
   r   r   r   s    r   r   zPackageSpec.user*   s.    :Y4=YYYZZZzr   c                 N    | j         t          d| j        d          | j         S Nzpackage not given in spec (got z expected <username>/<package>)r   r   r   r   s    r   namezPackageSpec.name0   .    = ndmnnnooo}r   c                 N    | j         t          d| j        d          | j         S r$   r%   r   s    r   r   zPackageSpec.package6   r'   r   c                 N    | j         t          d| j        d          | j         S )Nzversion not given in spec (got z) expected <username>/<package>/<version>))r   r   r   r   s    r   r   zPackageSpec.version<   s6    = l$-lll   }r   c                 N    | j         t          d| j        d          | j         S )Nz basename not given in spec (got z4 expected <username>/<package>/<version>/<filename>))r   r   r   r   s    r   r   zPackageSpec.basenameD   s6    >!x4=xxx   ~r   )NNNNN)__name__
__module____qualname__r   r   r!   propertyr   r&   r   r   r    r   r   r   r      s         % % % %6  2 2 2   X
   X
   X
   X   X  r   r   c                     | }d }i }d|v r|                     dd          \  }}d|v rt          d          t          ||d d ||           S )Nr	      zinvalid package spec)split	TypeErrorr   )specr   r   r   s       r   package_specsr5   M   sa    DGE
d{{

3**g
g~~.///tWdD%>>>r   c                 j   | }d x}x}}i }d|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|r9d|v r5|                    dd          \  }}t          t          |                    }t	          ||||||           S )Nr	   r1   ?)r2   rsplitdictr   r   )r4   r   r   r   r   r   qsls          r   parse_specsr;   Y   s    D#''G'gE
d{{

3**g 13'>>"==a00 23'>>#MM#q11 %C8OO Q//#Ys^^$$tWgxEEEr   c                   d    e Zd ZddZd Zd Zed             Zed             Zed             Z	dS )		GroupSpecNc                     || _         || _        || _        |s!t          |          }|r| d| }|r| d| }|| _        d S r   )_org_group_name_memberr   r   )r   org
group_namememberr   s        r   r   zGroupSpec.__init__m   sl    	% 	23xxH 6&5555 2&1111 r   c                     | j         S r   r   r   s    r   r   zGroupSpec.__str__z   r   r   c                     d| j         dS )Nz<GroupSpec r    r   r   s    r   r!   zGroupSpec.__repr__}   s    /T]////r   c                 N    | j         t          d| j        d          | j         S )NzOrganization not given (got z expected <organization>))r?   r   r   r   s    r   rB   zGroupSpec.org   s.    9e4=eeefffyr   c                 N    | j         t          d| j        d          | j         S )NzGroup name not given (got z& expected <organization>/<group_name>))r@   r   r   r   s    r   rC   zGroupSpec.group_name   s0    #ppppqqqr   c                 N    | j         t          d| j        d          | j         S )NzMember name not given (got z/ expected <organization>/<group_name>/<member>))rA   r   r   r   s    r   rD   zGroupSpec.member   s6    <ndmnnn   |r   )NNN)
r+   r,   r-   r   r   r!   r.   rB   rC   rD   r/   r   r   r=   r=   l   s        ! ! ! !  0 0 0   X
     X 
   X  r   r=   c                     | }dx}}d|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|rd|v rt          d| d          t          ||||           S )z$<organization>/<group_name>/<member>Nr	   r1   zInvalid group specification "z" (unexpected "/"))r2   r   r=   )r4   rB   grouprD   s       r   
group_specrL      s    
CEF
czzYYsA&&
U ,C++v T#--RRRRSSSS%...r   N)	urllib.parser   binstar_client.errorsr   r   r5   r;   r=   rL   r/   r   r   <module>rO      s    # " " " " " + + + + + +B B B B B B B BJ	? 	? 	?F F F&& & & & & & & &R/ / / / /r   