
    ex                     V    d dl mZ ddlmZ  G d de          Z G d de          ZdS )	    )urlparse   )errorsc                       e Zd Z	 	 	 	 	 ddZe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	_filenameattrsspec_strstrselfchannelpackageversionfilenamer   r   s          8lib/python3.11/site-packages/repo_cli/utils/artifacts.py__init__zPackageSpec.__init__   s     
!
 
	%$DMMM7||H 9&.hh8 9&.hh8 :&.hh9$DMMM    c                 t   |}d x}x}}i }d|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|r>d|v r:|                    dd          \  }}t          t          j        |                    }t          ||||||          S Nz::   r
   ?)splitrsplitdictr   	parse_qslr   clsspec_stringr   r   r   r   r   qsls           r   from_stringzPackageSpec.from_string!   s    '+++'H7??&}}T155GW 	5sg~~&}}S!44GW 	6sg~~ 'c1 5 5GX 	2x$OOC33MHc+C0011E7GWh{SSSr   c                     | j         S Nr   r   s    r   __str__zPackageSpec.__str__4   
    }r   c                     d| j         z  S Nz<PackageSpec %r>r*   r+   s    r   __repr__zPackageSpec.__repr__7       !T]33r   c                 X    | j         t          j        d| j        d          | j         S )Nzuser not given (got z expected <username> ))r   r   	UserErrorr   r+   s    r   r   zPackageSpec.channel:   s8    :""BF---Q   zr   c                 X    | j         t          j        d| j        d          | j         S Nzpackage not given in spec (got z  expected <username>/<package> )r   r   r3   r   r+   s    r   namezPackageSpec.nameB   :    = ""===#   }r   c                 X    | j         t          j        d| j        d          | j         S r5   r6   r+   s    r   r   zPackageSpec.packageK   r8   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   r3   r   r+   s    r   r   zPackageSpec.versionT   r8   r   c                 X    | j         t          j        d| j        d          | j         S )Nz filename not given in spec (got z5 expected <username>/<package>/<version>/<filename> ))r   r   r3   r   r+   s    r   r   zPackageSpec.filename]   s:    >!""===#   ~r   NNNNN)__name__
__module____qualname__r   classmethodr'   r,   r0   propertyr   r7   r   r   r    r   r   r   r      s         % % % %4 T T [T$  4 4 4   X   X   X   X   X  r   r   c                   B    e Zd Z	 	 	 	 	 ddZed             Zd Zd ZdS )SimplePackageSpecNc                     || _         || _        || _        || _        || _        |r	|| _        d S t          |          }|r|d|}|r|d|}|r|d|}|| _        d S r	   )r   r   r   r   r   r   r   r   s          r   r   zSimplePackageSpec.__init__h   s      
 
	%$DMMM7||H 9&.hh8 9&.hh8 :&.hh9$DMMMr   c                 t   |}d x}x}}i }d|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|rd|v r|                     dd          \  }}|r>d|v r:|                    dd          \  }}t          t          j        |                    }t          ||||||          S r   )r   r    r!   r   r"   rD   r#   s           r   r'   zSimplePackageSpec.from_string   s    '+++'H7??&}}T155GW 	5sg~~&}}S!44GW 	6sg~~ 'c1 5 5GX 	2x$OOC33MHc+C0011E Wgx
 
 	
r   c                     | j         S r)   r*   r+   s    r   r,   zSimplePackageSpec.__str__   r-   r   c                     d| j         z  S r/   r*   r+   s    r   r0   zSimplePackageSpec.__repr__   r1   r   r<   )r=   r>   r?   r   r@   r'   r,   r0   rB   r   r   rD   rD   g   sr         % % % %6 
 
 [
(  4 4 4 4 4r   rD   N)six.moves.urllib.parser    r   objectr   rD   rB   r   r   <module>rL      s    + + + + + +      ^ ^ ^ ^ ^& ^ ^ ^B54 54 54 54 54 54 54 54 54 54r   