a
    dW	                     @   sL   d dl mZmZ d dlmZmZmZmZ G dd deZG dd deZ	dS )    )ABCabstractmethod)DictListOptionalUnionc                	   @   s   e Zd Zdd Zedd Zedd Zedeeee	e
 ee
e
f f dd	d
Zee
dddZedeee
dddZede
ee
dddZdS )DatasetInfoc                 C   s   d S N selfr
   r
   _/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/timm/data/dataset_info.py__init__   s    zDatasetInfo.__init__c                 C   s   d S r	   r
   r   r
   r
   r   num_classes
   s    zDatasetInfo.num_classesc                 C   s   d S r	   r
   r   r
   r
   r   label_names   s    zDatasetInfo.label_namesFdetailedas_dictreturnc                 C   s   d S r	   r
   r   r   r   r
   r
   r   label_descriptions   s    zDatasetInfo.label_descriptionsr   c                 C   s   d S r	   r
   r   indexr
   r
   r   index_to_label_name   s    zDatasetInfo.index_to_label_namer   r   r   c                 C   s   d S r	   r
   )r   r   r   r
   r
   r   index_to_description   s    z DatasetInfo.index_to_descriptionlabelr   r   c                 C   s   d S r	   r
   r   r   r   r
   r
   r   label_name_to_description   s    z%DatasetInfo.label_name_to_descriptionN)FF)F)F)__name__
__module____qualname__r   r   r   r   boolr   r   strr   r   r   intr   r    r
   r
   r
   r   r      s   

*r   c                       s   e Zd ZdZdeee eeef f e	eeef  d fddZ
dd Zdd	 Zdeeeee eeef f dddZdeeedddZedddZdeeedddZ  ZS )CustomDatasetInfoz: DatasetInfo that wraps passed values for custom datasets.N)r   r   c                    s^   t    t|dksJ || _|| _| jd urZt| jts@J | jD ]}|| jv sFJ qFd S Nr   )superr   len_label_names_label_descriptions
isinstancedict)r   r   r   n	__class__r
   r   r   &   s    


zCustomDatasetInfo.__init__c                 C   s
   t | jS r	   r*   r+   r   r
   r
   r   r   5   s    zCustomDatasetInfo.num_classesc                 C   s   | j S r	   )r+   r   r
   r
   r   r   8   s    zCustomDatasetInfo.label_namesFr   c                 C   s   | j S r	   r,   r   r
   r
   r   r   ;   s    z$CustomDatasetInfo.label_descriptionsr   c                 C   s   | j r| j | S |S r	   r3   r   r
   r
   r   r    >   s    
z+CustomDatasetInfo.label_name_to_descriptionr   c                 C   s*   d|  krt | jk s n J | j| S r(   r2   r   r
   r
   r   r   C   s     z%CustomDatasetInfo.index_to_label_namer   c                 C   s   |  |}| j||dS )N)r   )r   r    )r   r   r   r   r
   r
   r   r   G   s    
z&CustomDatasetInfo.index_to_description)N)FF)F)F)r!   r"   r#   __doc__r   r   r%   r   r&   r   r   r   r   r$   r   r    r   r   __classcell__r
   r
   r0   r   r'   #   s    (r'   N)
abcr   r   typingr   r   r   r   r   r'   r
   r
   r
   r   <module>   s   