Ë
    éÓ^jT  ã                   óÊ   — d dl mZmZ d dlmZ d dlmZmZmZm	Z	m
Z
mZ eee   e
edf   eeeef   ef   f   Z G d„ de«      Z G d„ de«      Z G d	„ d
e«      Z G d„ d«      Zy)é    )ÚABCÚabstractmethod)ÚIntegral)ÚDictÚListÚ
NamedTupleÚOptionalÚTupleÚUnion.c                   óä   — e Zd Zd„ Zed„ «       Zed„ «       Zdeedf   fd„Z	de
fd„Zedde
d	e
deee   eeef   f   fd
„«       Zedefd„«       Zeddede
defd„«       Zeddede
defd„«       Zy)ÚDatasetInfoc                  ó   — y ©N© ©Úselfs    úa/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/data/dataset_info.pyÚ__init__zDatasetInfo.__init__   s   € Øó    c                  ó   — y r   r   r   s    r   Únum_classeszDatasetInfo.num_classes   ó   € àr   c                  ó   — y r   r   r   s    r   Úlabel_nameszDatasetInfo.label_names   r   r   Úreturn.c                 óF   — t        t        | j                  «       «      «      S ©z0Return classifier indices that have label names.)ÚtupleÚranger   r   s    r   Úlabel_indiceszDatasetInfo.label_indices   s   € ä”U˜4×+Ñ+Ó-Ó.Ó/Ð/r   c                 óP   — dt        |«      cxk  xr | j                  «       k  S c S ©z3Return whether a classifier index has a label name.r   )Úintr   ©r   Úindexs     r   Ú	has_labelzDatasetInfo.has_label   s%   € à”C˜“JÖ3 ×!1Ñ!1Ó!3Ñ3Ð3Ñ3Ð3r   ÚdetailedÚas_dictc                  ó   — y r   r   ©r   r'   r(   s      r   Úlabel_descriptionszDatasetInfo.label_descriptions   r   r   c                  ó   — y r   r   r$   s     r   Úindex_to_label_namezDatasetInfo.index_to_label_name"   r   r   r%   c                  ó   — y r   r   )r   r%   r'   s      r   Úindex_to_descriptionz DatasetInfo.index_to_description&   r   r   Úlabelc                  ó   — y r   r   ©r   r0   r'   s      r   Úlabel_name_to_descriptionz%DatasetInfo.label_name_to_description*   r   r   N©FF©F)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r
   r#   r    Úboolr&   r   r   Ústrr   r+   r-   r/   r3   r   r   r   r   r   	   s  „ òð ñó ðð ñó ðð0˜u S¨# X™ó 0ð4 $ó 4ð ñ¨4ð À$ð ÐSXÐY]Ð^aÑYbÐdhÐilÐnqÐiqÑdrÐYrÑSsò ó ðð ð¨Cò ó ðð ñ¨#ð ¸ð È#ò ó ðð ñ¨sð ¸dð Èsò ó ñr   r   c                   óÖ   ‡ — e Zd ZdZ	 ddedeeeef      fˆ fd„Zd„ Z	d„ Z
deedf   fd	„Zdefd
„Zddededeee   eeef   f   fd„Zddededefd„Zdefd„Zddededefd„Zˆ xZS )ÚCustomDatasetInfoz: DatasetInfo that wraps passed values for custom datasets.r   r+   c                 óL  •— t         ‰| �  «        t        |t        t        t
        f«      r|st        d«      ‚|| _        d | _        t        |t
        «      r¢i }|j                  «       D ]u  \  }}t        |t        t        f«      s"t        dt        |«      j                  › d�«      ‚	 t        |«      }|dk  rt        d|› d�«      ‚||v rt        d|› d�«      ‚|||<   Œw || _        |j!                  «       }n|}t#        d„ |D «       «      st        d	«      ‚|| _        | j$                  �Ut        | j$                  t
        «      st        d
«      ‚|D �	cg c]  }	|	| j$                  vsŒ|	‘Œ }
}	|
rt        d|
› d�«      ‚y y # t        $ r}t        d|›d�«      |‚d }~ww xY wc c}	w )NzIlabel_names must be a non-empty list, tuple, or index-to-name dictionary.z*Label index must be an int or string, got ú.z&Label index must be integer-like, got r   z&Label index must be non-negative, got z+Duplicate label index after normalization: c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )Ú
isinstancer:   )Ú.0Únames     r   ú	<genexpr>z-CustomDatasetInfo.__init__.<locals>.<genexpr>S   s   è ø€ ÒG¨T”:˜d¤C×(ÑGùs   ‚z All label names must be strings.zBlabel_descriptions must be a label-name-to-description dictionary.z&Missing descriptions for label names: )Úsuperr   r@   Úlistr   ÚdictÚ
ValueErrorÚ_label_namesÚ_label_names_by_indexÚitemsr   r:   Ú	TypeErrorÚtyper6   r#   ÚvaluesÚallÚ_label_descriptions)r   r   r+   Únormalized_label_namesÚ	raw_indexÚ
label_namer%   ÚeÚlabel_name_valuesrB   Úmissing_descriptionsÚ	__class__s              €r   r   zCustomDatasetInfo.__init__2   sà  ø€ ô
 	‰ÑÔÜ˜+¬¬e´TÐ':Ô;Á;ÜÐhÓiÐið (ˆÔØ%)ˆÔ"Ü�k¤4Ô(ð &(Ð"Ø)4×):Ñ):Ó)<ò ;Ñ%�	˜:Ü! )¬h¼¨_Ô=Ü#Ð&PÔQUÐV_ÓQ`×QiÑQiÐPjÐjkÐ$lÓmÐmðeÜ 	›N�Eð ˜1’9Ü$Ð'MÈeÈWÐTUÐ%VÓWÐWØÐ2Ñ2Ü$Ð'RÐSXÐRYÐYZÐ%[Ó\Ð\Ø0:Ð& uÒ-ð;ð *@ˆDÔ&Ø 6× =Ñ =Ó ?Ñà +ÐäÑGÐ5FÔGÔGÜÐ>Ó?Ð?à#5ˆÔ Ø×#Ñ#Ð/ä˜d×6Ñ6¼Ô=ÜÐ dÓeÐeØ5FÖ#o¨TÈ$ÐVZ×VnÑVnÒJn¢DÐ#oÐ Ð#oÙ#Ü Ð#IÐJ^ÐI_Ð_`Ð!aÓbÐbð $ð 0øô! "ò eÜ$Ð'MÈiÈ]ÐZ[Ð%\Ó]ÐcdÐdûðeüò( $ps$   Â'F ÅF!Å'F!Æ 	FÆ	FÆFc                 ó,   — t        | j                  «      S r   )ÚlenrH   r   s    r   r   zCustomDatasetInfo.num_classes_   s   € Ü�4×$Ñ$Ó%Ð%r   c                 ó   — | j                   S r   )rH   r   s    r   r   zCustomDatasetInfo.label_namesb   s   € Ø× Ñ Ð r   r   .c                 ó’   — | j                   �t        | j                   «      S t        t        t        | j                  «      «      «      S r   )rI   r   r   rX   rH   r   s    r   r    zCustomDatasetInfo.label_indicese   s:   € à×%Ñ%Ð1Ü˜×3Ñ3Ó4Ð4Ü”Uœ3˜t×0Ñ0Ó1Ó2Ó3Ð3r   c                 ó’   — t        |«      }| j                  �|| j                  v S d|cxk  xr t        | j                  «      k  S c S r"   )r#   rI   rX   rH   r$   s     r   r&   zCustomDatasetInfo.has_labelk   sI   € ä�E“
ˆØ×%Ñ%Ð1Ø˜D×6Ñ6Ð6Ð6Ø�EÖ2œC × 1Ñ 1Ó2Ñ2Ð2Ñ2Ð2r   r'   r(   c                 ó   — | j                   S r   ©rO   r*   s      r   r+   z$CustomDatasetInfo.label_descriptionsr   s   € Ø×'Ñ'Ð'r   r0   c                 ó<   — | j                   r| j                   |   S |S r   r]   r2   s      r   r3   z+CustomDatasetInfo.label_name_to_descriptionu   s!   € Ø×#Ò#Ø×+Ñ+¨EÑ2Ð2Øˆr   c                 ó®   — | j                   �| j                   t        |«         S d|cxk  rt        | j                  «      k  sJ ‚ J ‚| j                  |   S )Nr   )rI   r#   rX   rH   r$   s     r   r-   z%CustomDatasetInfo.index_to_label_namez   sX   € Ø×%Ñ%Ð1Ø×-Ñ-¬c°%«jÑ9Ð9Ø�EÔ2œC × 1Ñ 1Ó2Ò2Ð2Ñ2Ð2Ð2Ø× Ñ  Ñ'Ð'r   r%   c                 óJ   — | j                  |«      }| j                  ||¬«      S )N©r'   )r-   r3   )r   r%   r'   r0   s       r   r/   z&CustomDatasetInfo.index_to_description€   s(   € Ø×(Ñ(¨Ó/ˆØ×-Ñ-¨e¸hÐ-ÓGÐGr   r   r4   r5   )r6   r7   r8   Ú__doc__Ú
LabelNamesr	   r   r:   r   r   r   r
   r#   r    r9   r&   r   r   r+   r3   r-   r/   Ú__classcell__)rV   s   @r   r<   r<   /   sÛ   ø„ ÙDð
 <@ñ+cà#ð+cð !)¨¨c°3¨h©Ñ 8õ+còZ&ò!ð4˜u S¨# X™ó 4ð3 $ó 3ñ(¨4ð (À$ð (ÐSXÐY]Ð^aÑYbÐdhÐilÐnqÐiqÑdrÐYrÑSsó (ñ¨sð ¸dð Èsó ð
(¨Có (ñH¨#ð H¸ð HÈ#÷ Hr   r<   c                   ó,   — e Zd ZU eed<   eed<   eed<   y)ÚLabelMappingCoverageÚmappedÚmissingÚextraN)r6   r7   r8   r#   Ú__annotations__r   r   r   rf   rf   …   s   … ØƒKØƒLØ„Jr   rf   c                   óL   — e Zd ZdZ	 	 ddededee   fd„Zdefd„Zde	de
fd	„Zy
)ÚDatasetInfoLabelMapperzPMap classifier indices to labels with reusable sparse-mapping fallback behavior.Údataset_infoÚ
label_typeÚfallback_formatc                 óT   — |dvrt        d|› d�«      ‚|| _        || _        || _        y )N)rB   ÚdescriptionÚdetailr'   zInvalid label type: r>   )rG   rm   rn   ro   )r   rm   rn   ro   s       r   r   zDatasetInfoLabelMapper.__init__Ž   s9   € ð ÐJÑJÜÐ3°J°<¸qÐAÓBÐBØ(ˆÔØ$ˆŒØ.ˆÕr   r   c                 óD  — t        |«      }| j                  j                  |«      s(| j                  �| j                  j	                  |¬«      S | j
                  dk(  r| j                  j                  |«      S | j                  j                  || j
                  dv ¬«      S )N)r%   rB   )rr   r'   ra   )r#   rm   r&   ro   Úformatrn   r-   r/   r$   s     r   Ú__call__zDatasetInfoLabelMapper.__call__š   s•   € Ü�E“
ˆØ× Ñ ×*Ñ*¨5Ô1°d×6JÑ6JÐ6VØ×'Ñ'×.Ñ.°UÐ.Ó;Ð;Ø�?‰?˜fÒ$Ø×$Ñ$×8Ñ8¸Ó?Ð?Ø× Ñ ×5Ñ5ØØ—_‘_Ð(>Ð>ð 6ó 
ð 	
r   r   c                 óÂ   ‡— ‰dk  rt        d‰› d�«      ‚| j                  j                  «       }t        ˆfd„|D «       «      }t	        |‰|z
  t        |«      |z
  ¬«      S )zGReturn mapped, missing, and out-of-range label counts for a classifier.r   z&num_classes must be non-negative, got r>   c              3   ó>   •K  — | ]  }d |cxk  xr ‰k  nc –— Œ y­w)r   Nr   )rA   r%   r   s     €r   rC   z2DatasetInfoLabelMapper.coverage.<locals>.<genexpr>ª   s   øè ø€ ÒJ°%�Q˜%Ö- +×-Ð-ÑJùs   ƒ)rg   rh   ri   )rG   rm   r    Úsumrf   rX   )r   r   Úmapped_indicesrg   s    `  r   ÚcoveragezDatasetInfoLabelMapper.coverage¥   si   ø€ à˜Š?ÜÐEÀkÀ]ÐRSÐTÓUÐUØ×*Ñ*×8Ñ8Ó:ˆÜÓJ¸>ÔJÓJˆÜ#ØØ &Ñ(Ü�nÓ%¨Ñ.ô
ð 	
r   N)rq   z<unmapped:{index}>)r6   r7   r8   rb   r   r:   r	   r   ru   r#   rf   rz   r   r   r   rl   rl   ‹   sR   „ ÙZð
 ,Ø-Añ	
/à%ð
/ð ð
/ð & c™]ó	
/ð	
 ó 	
ð

 Cð 

Ð,@ô 

r   rl   N)Úabcr   r   Únumbersr   Útypingr   r   r   r	   r
   r   r:   r#   rc   r   r<   rf   rl   r   r   r   ú<module>r~      sv   ðß #Ý ß A× Að �4˜‘9˜e C¨ H™o¨t°E¸#¸s¸(±OÀSÐ4HÑ/IÐIÑJ€
ô#�#ô #ôLSH˜ô SHôl˜:ô ÷$
ò $
r   