
    ek
                     >    d dl mZ ddlmZmZ  G d de          ZdS )    )urlparse   )errorsmainc                       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 |r|d|}|r|d|}|r|d|}|| _        d S )N/)_package_version	_basenameattrsspec_str)selfpackageversionbasenamer   r   s         1lib/python3.11/site-packages/repo_cli/__init__.py__init__zPackageSpec.__init__   s      !
 
	%$DMMM  9&.hh8 9&.hh8 :&.hh9$DMMM    c                     | j         S )Nr   r   s    r   __str__zPackageSpec.__str__   s
    }r   c                     d| j         z  S )Nz<PackageSpec %r>r   r   s    r   __repr__zPackageSpec.__repr__   s    !T]33r   c                 ,   d x}}i }d|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|r>d|v r:|                    dd          \  }}t          t          j        |                    }t          |||||           S )Nr
   r   ?)splitrsplitdictr   	parse_qslr   )specr   r   r   r   qsls         r   from_stringzPackageSpec.from_string&   s    !!('>>&}}S!44GW 	6sg~~ 'c1 5 5GX 	2x$OOC33MHc+C0011E7GXudCCCr   c                 X    | j         t          j        d| j        d          | j         S Nzpackage not given in spec (got z  expected <username>/<package> )r   r   	UserErrorr   r   s    r   namezPackageSpec.name6   :    = ""===#   }r   c                 X    | j         t          j        d| j        d          | j         S r'   r(   r   s    r   r   zPackageSpec.package?   r+   r   c                 X    | j         t          j        d| j        d          | j         S )Nzversion not given in spec (got z* expected <username>/<package>/<version> ))r   r   r)   r   r   s    r   r   zPackageSpec.versionH   r+   r   c                 X    | j         t          j        d| j        d          | j         S )Nz basename not given in spec (got z5 expected <username>/<package>/<version>/<filename> ))r   r   r)   r   r   s    r   r   zPackageSpec.basenameQ   s:    >!""===#   ~r   )NNNNN)__name__
__module____qualname__r   r   r   staticmethodr%   propertyr*   r   r   r    r   r   r   r      s        NR% % % %&  4 4 4 D D \D   X   X   X   X  r   r   N)six.moves.urllib.parser    r   r   objectr   r4   r   r   <module>r8      sm    + + + + + +        R R R R R& R R R R Rr   