o
    ϖi                     @   sx   d dl mZmZmZmZ d dlmZ d dlmZm	Z	 er	 G dd de	Z
G dd deZdeeef d	e
fd
dZdS )    )TYPE_CHECKINGAnyDictList)
deprecated)	NamespaceResourcec                   @   s@   e Zd ZU dZeed< 	 eed< 	 eeddefddZdS )	Hardwarez4
    Hardware for running a model on Replicate.
    skunamezUse `sku` instead of `id`returnc                 C   s   | j S )z0
        DEPRECATED: Use `sku` instead.
        )r
   )self r   F/home/ubuntu/.local/lib/python3.10/site-packages/replicate/hardware.pyid   s   zHardware.idN)	__name__
__module____qualname____doc__str__annotations__propertyr   r   r   r   r   r   r	      s   
 r	   c                   @   s4   e Zd ZdZdee fddZdee fddZdS )HardwareNamespacez7
    Namespace for operations related to hardware.
    r   c                 C   s$   | j dd}| }dd |D S )
        List all hardware available for you to run models on Replicate.

        Returns:
            List[Hardware]: A list of hardware.
        GET/v1/hardwarec                 S      g | ]}t |qS r   _json_to_hardware.0entryr   r   r   
<listcomp>3       z*HardwareNamespace.list.<locals>.<listcomp>)_client_requestjsonr   respobjr   r   r   list(   s   zHardwareNamespace.listc                    s,   | j ddI dH }| }dd |D S )r   r   r   Nc                 S   r   r   r   r   r   r   r   r"   @   r#   z0HardwareNamespace.async_list.<locals>.<listcomp>)r$   _async_requestr&   r'   r   r   r   
async_list5   s   zHardwareNamespace.async_listN)r   r   r   r   r   r	   r*   r,   r   r   r   r   r   #   s    r   r&   r   c                 C   s   t di | S )Nr   )r	   )r&   r   r   r   r   C   s   r   N)typingr   r   r   r   typing_extensionsr   replicate.resourcer   r   r	   r   r   r   r   r   r   r   <module>   s     