o
    ϖi                  	   @   s   d dl Z d dlmZmZmZmZmZ er d dlmZ d dl	m
Z
 G dd deZdedd	def d
eed	 ee ee ee f fddZdS )    N)TYPE_CHECKING
NamedTupleOptionalTupleUnionModelVersionc                   @   sH   e Zd ZU dZeed< eed< dZee ed< ededd fdd	Z	dS )
ModelVersionIdentifierzX
    A reference to a model version in the format owner/name or owner/name:version.
    ownernameNversionrefreturnc                 C   s>   t d|}|std| d| |d|d|dS )zY
        Split a reference in the format owner/name:version into its components.
        z6^(?P<owner>[^/]+)/(?P<name>[^/:]+)(:(?P<version>.+))?$z$Invalid reference to model version: z%. Expected format: owner/name:versionr   r   r   )rematch
ValueErrorgroup)clsr   r    r   H/home/ubuntu/.local/lib/python3.10/site-packages/replicate/identifier.pyparse   s   
zModelVersionIdentifier.parse)
__name__
__module____qualname____doc__str__annotations__r   r   classmethodr   r   r   r   r   r   	   s   
 r   r   r   r
   r   c                 C   s   ddl m} ddlm} d }d\}}}t| |r | j| j}}n#t| |r+| }| j}nt| tr6| \}}}nt| t	rCt
| \}}}||||fS )Nr   r   r	   )NNN)replicate.modelr   replicate.versionr
   
isinstancer   r   idr   r   r   )r   r   r
   r   r   r   
version_idr   r   r   _resolve!   s   




r%   )r   typingr   r   r   r   r   r    r   r!   r
   r   r   r%   r   r   r   r   <module>   s    