Ë
    éÓ^j:R  ã                   ó¦  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZ d dlZd dlmZmZmZ 	 d dlmZ 	 d dlZd	Z	 d dl
mZ d dlm Z  ddl!m"Z"m#Z# ddl$m%Z% 	 d dl&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,  ee(de ¬«      Z(d	Z- ej\                  e/«      Z0g d¢Z1dZ2dZ3dZ4dZ5dOde6fd„Z7	 	 	 dPdee6ee6   ee6e6f   f   de8de8deee6ef      fd„Z9	 	 dQdee6ee6   ee6e6f   f   de8deee6ef      fd „Z:dRd!e8fd"„Z;d#e6fd$„Z<d%ee6ef   fd&„Z=	 dSd'e6d(e6deee6ef      fd)„Z>d*ee6ef   d+ee6ef   d,eee6ef   e6ee6ef   f   fd-„Z?	 dSd'e6deee6ef      fd.„Z@d/ee6ef   fd0„ZAe2d	dfd'e6d(e6d1e8deee6ef      fd2„ZBd3ZCd4ZD	 dTd5e6d1e8fd6„ZE	 dSd'e6d(e6d7ejŒ                  jŽ                  deee6ef      fd8„ZH	 	 dUd7ejŒ                  jŽ                  d9e6d:eeI   d;eeI   fd<„ZJ	 	 	 dVd7ejŒ                  jŽ                  d=e6d:eeI   d;eeI   d>ee8ed?   f   f
d@„ZK	 	 	 	 	 	 	 	 	 	 dWd7ejŒ                  jŽ                  dAe6dBe6dCee6   dDee6   dEe8dFe8d:eeI   dGeeI   d;eeI   dHe6d>ee8ed?   f   fdI„ZL	 dXdGeIdJe6dHe6fdK„ZMd(e6d,ee6   fdL„ZNd'ee6   dMee6   d,ee6   fdN„ZOy# e$ r
 d dlmZ Y �ŒUw xY w# e$ r d
ZY �Œ\w xY w# e$ r
 d dlmZ Y �Œgw xY w# e$ r dZ(d
Z-Y �ŒCw xY w)Yé    N)Úpartial)ÚPath)ÚTemporaryDirectory)ÚAnyÚDictÚIterableÚListÚOptionalÚTupleÚUnion)Ú
HASH_REGEXÚdownload_url_to_fileÚurlparse)Úget_dir)Ú_get_torch_homeTF)ÚLiteral)Ú__version__é   )Ú_torch_loadÚload_state_dict)Úfilter_pretrained_cfg)ÚHfApiÚhf_hub_downloadÚ
model_info)ÚEntryNotFoundErrorÚRepositoryNotFoundErrorÚtimm)Úlibrary_nameÚlibrary_version)Úget_cache_dirÚdownload_cached_fileÚ
has_hf_hubÚhf_splitÚload_model_config_from_hfÚload_state_dict_from_hfÚsave_for_hfÚpush_to_hf_hubúpytorch_model.binúmodel.safetensorsúopen_clip_pytorch_model.binúopen_clip_model.safetensorsÚ	child_dirc                 óì   — t        j                  d«      rt        j                  d«       t	        «       }| sdn| f} t        j
                  j                  |dg| ¢­Ž }t        j                  |d¬«       |S )zf
    Returns the location of the directory where models are cached (and creates it if necessary).
    ÚTORCH_MODEL_ZOOz@TORCH_MODEL_ZOO is deprecated, please use env TORCH_HOME instead© ÚcheckpointsT©Úexist_ok)ÚosÚgetenvÚ_loggerÚwarningr   ÚpathÚjoinÚmakedirs)r,   Úhub_dirÚ	model_dirs      ú[/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/models/_hub.pyr    r    6   s]   € ô
 
‡y�yÐ"Ô#Ü�‰ÐZÔ[ä‹i€GÙ#‘¨)¨€IÜ—‘—‘˜W mÐ@°iÒ@€IÜ‡K�K�	 DÕ)ØÐó    ÚurlÚ
check_hashÚprogressÚ	cache_dirc                 ó0  — t        | t        t        f«      r| \  } }n4t        | «      }t        j
                  j                  |j
                  «      }|rt	        j                  |d¬«       n
t        «       }t        j
                  j                  ||«      }t        j
                  j                  |«      sbt        j                  dj                  | |«      «       d }|r*t        j                  |«      }|r|j!                  d«      nd }t#        | |||¬«       |S )NTr1   zDownloading: "{}" to {}
r   )r@   )Ú
isinstanceÚlistÚtupler   r3   r7   Úbasenamer9   r    r8   Úexistsr5   ÚinfoÚformatr   ÚsearchÚgroupr   )	r>   r?   r@   rA   ÚfilenameÚpartsÚcached_fileÚhash_prefixÚrs	            r<   r!   r!   E   sÏ   € ô �#œœe�}Ô%Ø‰ˆ‰Xä˜“ˆÜ—7‘7×#Ñ# E§J¡JÓ/ˆÙÜ
�‰�I¨Ö-ä!“Oˆ	Ü—'‘'—,‘,˜y¨(Ó3€KÜ�7‰7�>‰>˜+Ô&Ü�‰Ð0×7Ñ7¸¸[ÓIÔJØˆÙÜ×!Ñ! (Ó+ˆAÙ()˜!Ÿ'™' !œ*¨tˆKÜ˜S +¨{ÀXÕNØÐr=   c                 óv  — t        | t        t        f«      r| \  } }n4t        | «      }t        j
                  j                  |j
                  «      }|s
t        «       }t        j
                  j                  ||«      }t        j
                  j                  |«      r’|r�t        j                  |«      }|r|j                  d«      nd }|rct        |d«      5 }t        j                  |j!                  «       «      j#                  «       }	|	d t%        |«       |k7  r
	 d d d «       y	 d d d «       yyy# 1 sw Y   yxY w)Nr   ÚrbFT)rC   rD   rE   r   r3   r7   rF   r    r8   rG   r   rJ   rK   ÚopenÚhashlibÚsha256ÚreadÚ	hexdigestÚlen)
r>   r?   rA   rL   rM   rN   rP   rO   ÚfÚhds
             r<   Úcheck_cached_filer[   _   sü   € ô
 �#œœe�}Ô%Ø‰ˆ‰Xä˜“ˆÜ—7‘7×#Ñ# E§J¡JÓ/ˆÙÜ!“Oˆ	Ü—'‘'—,‘,˜y¨(Ó3€KÜ	‡w�w‡~�~�kÔ"ÙÜ×!Ñ! (Ó+ˆAÙ()˜!Ÿ'™' !œ*¨tˆKÙÜ˜+ tÓ,ð %°Ü Ÿ™¨¯©«Ó1×;Ñ;Ó=�BØÐ+œ3˜{Ó+Ð,°Ò;Ø$÷%ð %à;÷%ñ Ø÷%ð ús   ÃAD/Ä/D8Ú	necessaryc                 ó4   — t         s| rt        d«      ‚t         S )Nz^Hugging Face hub model specified but package not installed. Run `pip install huggingface_hub`.)Ú_has_hf_hubÚRuntimeError)r\   s    r<   r"   r"   y   s   € Ý™9äØlónð 	näÐr=   Úhf_idc                 ó¦   — | j                  d«      }dt        |«      cxk  rdk  sJ d«       ‚ J d«       ‚|d   }t        |«      dkD  r|d   nd }||fS )Nú@r   é   zChf_hub id should only contain one @ character to identify revision.r   éÿÿÿÿ)ÚsplitrX   )r`   Ú	rev_splitÚhf_model_idÚhf_revisions       r<   r#   r#   �   sc   € à—‘˜CÓ €IØŒs�9‹~Ô" Ò"ÐiÐ$iÓiÑ"ÐiÐ$iÓiÐ"Ø˜A‘,€KÜ#& y£>°AÒ#5�)˜B’-¸4€KØ˜Ð#Ð#r=   Ú	json_filec                 ó’   — t        | dd¬«      5 }|j                  «       }d d d «       t        j                  «      S # 1 sw Y   ŒxY w)NrP   zutf-8)Úencoding)rS   rV   ÚjsonÚloads)ri   ÚreaderÚtexts      r<   Úload_cfg_from_jsonrp   Š   s?   € Ü	ˆi˜ wÔ	/ð °6Ø�{‰{‹}ˆ÷ä�:‰:�dÓÐ÷ð ús	   �=½AÚmodel_idrL   c                 ó<   — t        | «      \  }}t        ||||¬«      S )N)ÚrevisionrA   )r#   r   )rq   rL   rA   rg   rh   s        r<   Údownload_from_hfrt   �   s,   € ô
  (¨Ó1Ñ€K�ÜØØØØô	ð r=   ÚcfgÚextra_fieldsÚreturnc                 ód  — d| vr?| }|j                  d«      |j                  dd«      |dœ} d|v r|j                  d«      |d<   | d   }|j                  |«       d| v r| d   |d<   d| v r| j                  d«      |d<   d	| v r| j                  d	«      |d	<   | j                  d
i «      }| d   }|||fS )Ú Úpretrained_cfgÚarchitectureÚnum_featuresN)r{   r|   rz   ÚlabelsÚlabel_namesÚnum_classesÚlabel_descriptionsÚ
model_args)ÚpopÚupdateÚget)ru   rv   rz   r�   Ú
model_names        r<   Ú_parse_model_cfgr†   ž   sé   € ð ˜sÑ"Øˆà*×.Ñ.¨~Ó>Ø*×.Ñ.¨~¸tÓDØ,ñ
ˆð
 �~Ñ%Ø,:×,>Ñ,>¸xÓ,HˆN˜=Ñ)àÐ)Ñ*€NØ×Ñ˜,Ô'ð ˜ÑØ(+¨MÑ(:ˆ�}Ñ%Ø˜ÑØ(+¯©°Ó(>ˆ�}Ñ%Ø˜sÑ"Ø/2¯w©wÐ7KÓ/LˆÐ+Ñ,à—‘˜ rÓ*€JØ�^Ñ$€JØ˜: zÐ1Ð1r=   c                 ól   — t        d«      sJ ‚t        | d|¬«      }t        |«      }t        || ddœ«      S )u>   Original HFâ€‘Hub loader (unchanged download, shared parsing).Túconfig.json)rA   zhf-hub)Ú	hf_hub_idÚsource)r"   rt   rp   r†   )rq   rA   Úcfg_pathru   s       r<   r$   r$   ¾   s<   € ô
 �dÔÐÐÜ ¨-À9ÔM€HÜ
˜XÓ
&€CÜ˜C¨xÀ8Ñ!LÓMÐMr=   Ú
model_pathc                 óª   — t        | «      } | dz  }|j                  «       st        d|› �«      ‚t        |«      }t	        | «      ddœ}t        ||¬«      S )z?Load from ``<model_path>/config.json`` on the local filesystem.rˆ   zConfig file not found: z	local-dir)ÚfilerŠ   )rv   )r   Úis_fileÚFileNotFoundErrorrp   Ústrr†   )rŒ   Úcfg_fileru   rv   s       r<   Úload_model_config_from_pathr“   É   s\   € ô �jÓ!€JØ˜MÑ)€HØ×ÑÔÜÐ"9¸(¸Ð DÓEÐEÜ
˜XÓ
&€CÜ 
›O°{ÑC€LÜ˜C¨lÔ;Ð;r=   Úweights_onlyc           
      óš  — t        d«      sJ ‚t        | «      \  }}t        rat        |«      D ]S  }	 t	        ||||¬«      }t
        j                  d| › d|› d|› d�«       t        j                  j                  |d¬«      c S  t	        ||||¬	«      }t
        j                  d| › d
|› d�«       t        |d|¬«      }	|	S # t        $ r Y Œœw xY w)NT)Úrepo_idrL   rs   rA   ú[z"] Safe alternative available for 'z' (as 'z&'). Loading weights using safetensors.Úcpu)Údevice©rL   rs   rA   z"] Safe alternative not found for 'z)'. Loading weights using default pytorch.)Úmap_locationr”   )r"   r#   Ú_has_safetensorsÚ_get_safe_alternativesr   r5   rH   ÚsafetensorsÚtorchÚ	load_filer   Údebugr   )
rq   rL   r”   rA   rg   rh   Úsafe_filenameÚcached_safe_filerN   Ú
state_dicts
             r<   r%   r%   Ö   s  € ô �dÔÐÐÜ'¨Ó1Ñ€K�õ Ü3°HÓ=ò 	ˆMðÜ#2Ø'Ø*Ø(Ø'ô	$Ð ô —‘Ø˜�zÐ!CÀHÀ:ð NØ)˜?Ð*PðRôSô #×(Ñ(×2Ñ2Ð3CÈEÐ2ÓRÒRð	ô  "ØØØØô	€Kô ‡M�M�A�h�ZÐAÀ(ÀÐKtÐuÔvÜ˜[°uÈ<ÔX€JàÐøô &ò Ùðús   ±AB>Â>	C
Ã	C
)r)   r(   zpytorch_model.pthz	model.pthr+   z#open_clip_pytorch_model.safetensorsr*   zopen_clip_pytorch_model.pth)ú.safetensorsz.pthz.pth.tarú.binr7   c                 ó´  — d }t         D ]=  }| |z  }|j                  «       sŒt        j                  d|j                  › �«       |} n t
        D ]h  }t        | j                  d|› �«      «      }|sŒ#t        |«      dkD  r3t        j                  d|› d| › dt        › d|d   j                  › d	�	«       |d   }Œj |st        d
| › d�«      ‚t        ||¬«      }|S )NzFound preferred checkpoint: Ú*r   z	Multiple z checkpoints in ú: z	. Using 'r   z'.z!No suitable checkpoints found in ú.)r”   )Ú_PREFERRED_FILESrG   ÚloggingrH   ÚnameÚ_EXT_PRIORITYÚsortedÚglobrX   r6   Únamesr_   r   )r7   r”   Ú
found_fileÚfnameÚpÚextÚfilesr¤   s           r<   Úload_state_dict_from_pathr·   	  só   € ð €JÜ!ò ˆØ�5‰LˆØ�8‰8�:Ü�L‰LÐ7¸¿¹°xÐ@ÔAØˆJÙðô ò "ˆÜ�t—y‘y 1 S E Ó+Ó,ˆÚÜ�5‹z˜AŠ~Ü—‘Ø ˜uÐ$4°T°F¸"¼U¸Gð DØ# A™hŸm™m˜_¨Bð0ôð ˜q™‰Jð"ñ ÜÐ>¸t¸fÀAÐFÓGÐGä  ¸,ÔG€JàÐr=   Úmodelc                 óx   — t        d«      sJ ‚t        | «      \  }}t        ||||¬«      }|j                  |«      S )NTrš   )r"   r#   r   Úload_pretrained)rq   rL   r¸   rA   rg   rh   rN   s          r<   Úload_custom_from_hfr»   (  sJ   € ô �dÔÐÐÜ'¨Ó1Ñ€K�Ü!ØØØØô	€Kð × Ñ  Ó-Ð-r=   Úconfig_pathÚmodel_configr�   c                 ó<  — |xs i }i }t        | j                  dd¬«      }|j                  d«      |d<   |j                  d| j                  «      |d<   |j                  d| j                  «      |d<   |j                  dt        | dd «      «      }t        |t        «      r|r||d<   d|v r6t        j                  d«       |j                  d	|j                  d«      «       |j                  d	d «      }|r"t        |t        t        t        f«      sJ ‚||d	<   |j                  d
d «      }|rt        |t        «      sJ ‚||d
<   |r||d<   ||d<   |j                  |«       |j                  d«      5 }	t!        j"                  ||	d¬«       d d d «       y # 1 sw Y   y xY w)NT)Úremove_sourceÚremove_nullr{   r   r|   Úglobal_poolr}   z“'labels' as a config field for is deprecated. Please use 'label_names' and 'label_descriptions'. Renaming provided 'labels' field to 'label_names'.r~   r€   r�   rz   Úwrc   )Úindent)r   rz   r‚   r   r|   ÚgetattrrC   r‘   r5   r6   Ú
setdefaultÚdictrD   rE   rƒ   rS   rl   Údump)
r¸   r¼   r½   r�   Ú	hf_configrz   Úglobal_pool_typer~   r€   rY   s
             r<   Úsave_config_for_hfrÊ   9  s®  € ð  Ò% 2€LØ€IÜ*¨5×+?Ñ+?ÈtÐaeÔf€Nà .× 2Ñ 2°>Ó B€IˆnÑØ+×/Ñ/°¸u×?PÑ?PÓQ€IˆmÑð !-× 0Ñ 0°À×ASÑASÓ T€IˆnÑØ#×'Ñ'¨´w¸uÀmÐUYÓ7ZÓ[ÐÜÐ"¤CÔ(Ñ-=Ø#3ˆ	�-Ñ ð �<ÑÜ�‰ðBô	Cð 	×Ñ ¨|×/?Ñ/?ÀÓ/IÔJà×"Ñ" =°$Ó7€KÙÜ˜+¬¬d´EÐ':Ô;Ð;Ð;ð $/ˆ	�-Ñ à%×)Ñ)Ð*>ÀÓEÐÙÜÐ,¬dÔ3Ð3Ð3à*<ˆ	Ð&Ñ'áØ",ˆ	�,Ñà"0€IÐÑØ×Ñ�\Ô"à	×	Ñ	˜#Ó	ð * !Ü�	‰	�)˜Q qÕ)÷*÷ *ñ *ús   Å0FÆFÚsave_directoryÚsafe_serializationÚbothc                 óh  — t        d«      sJ ‚t        |«      }|j                  dd¬«       | j                  «       }|du s|dk(  r4t        sJ d«       ‚t
        j                  j                  ||t        z  «       |du s|dk(  rt        j                  ||t        z  «       |dz  }t        | |||¬«       y )NT)r2   ÚparentsrÍ   z-`pip install safetensors` to use .safetensorsFrˆ   )r½   r�   )r"   r   Úmkdirr¤   rœ   rž   rŸ   Ú	save_fileÚHF_SAFE_WEIGHTS_NAMEÚsaveÚHF_WEIGHTS_NAMErÊ   )r¸   rË   r½   r�   rÌ   Útensorsr¼   s          r<   r&   r&   j  s»   € ô �dÔÐÐÜ˜.Ó)€NØ×Ñ $°ÐÔ5ð ×ÑÓ €GØ˜TÑ!Ð%7¸6Ò%AÝÐPÐ!PÓPÐÜ×Ñ×#Ñ# G¨^Ô>RÑ-RÔSØ˜UÑ"Ð&8¸FÒ&BÜ�
‰
�7˜N¬_Ñ<Ô=à  =Ñ0€KÜØØØ!Øö	r=   r–   Úcommit_messageÚtokenrs   ÚprivateÚ	create_prÚ
model_cardÚ	task_namec                 ó¬  — t        |dt        ¬«      }|j                  ||d¬«      }|j                  }|j	                  |d|¬«      }t        «       5 }t        | |||	|¬«       |sG|xs i }|j                  d«      d	   }t        |«      dz  }t        |||
¬
«      }|j                  |«       |j                  |||||¬«      cddd«       S # 1 sw Y   yxY w)a5  
    Arguments:
        (...)
        safe_serialization (`bool` or `"both"`, *optional*, defaults to `False`):
            Whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`).
            Can be set to `"both"` in order to push both safe and unsafe weights.
    r   )r×   r   r   T)rØ   r2   z	README.md)r–   rL   rs   )r½   r�   rÌ   ú/rd   )rÛ   )r–   Úfolder_pathrs   rÙ   rÖ   N)r   r   Úcreate_repor–   Úfile_existsr   r&   re   r   Úgenerate_readmeÚ
write_textÚupload_folder)r¸   r–   rÖ   r×   rs   rØ   rÙ   r½   rÚ   r�   rÛ   rÌ   ÚapiÚrepo_urlÚ
has_readmeÚtmpdirr…   Úreadme_pathÚreadme_texts                      r<   r'   r'   †  sò   € ô* �e¨&Ä+Ô
N€Cð �‰˜w°À$ˆÓG€Hð ×Ñ€Gð —‘¨¸;ÐQY�ÓZ€Jô 
Ó	ð 
 äØØØ%Ø!Ø1õ	
ñ Ø#Ò) rˆJØ Ÿ™ sÓ+¨BÑ/ˆJÜ˜v›,¨Ñ4ˆKÜ)¨*°jÈIÔVˆKØ×"Ñ" ;Ô/ð × Ñ ØØØØØ)ð !ó 
÷'
÷ 
ò 
ús   ÁA/C
Ã
Cr…   c                 óB  — | j                  dd «      xs |ddg}d}|r|dz  }|D ]  }|d|› d�z  }Œ |d|› d�z  }|d	| j                  d
d«      › d�z  }|d| j                  dd«      › d�z  }d| v r|d| j                  d«      › d�z  }d| v r|d| j                  d«      › d�z  }d| v rÏd| d   v rÈ|dz  }t        | d   d   t        t        f«      r%| d   d   D ]  }|d|j	                  «       › d�z  }Œ n|d| d   d   j	                  «       › d�z  }d| d   v r^t        | d   d   t        t        f«      r%| d   d   D ]  }|d|j	                  «       › d�z  }Œ n|d| d   d   j	                  «       › d�z  }|dz  }|d|› d�z  }d| v r|d| d   › d�z  }d| v rš|dz  }| d   j                  «       D ]  \  }}t        |t        t        f«      r|d|› d�z  }|D ]  }	|d|	› d�z  }Œ Œ6t        |t        «      r.|d|› d�z  }|j                  «       D ]  \  }
}	|d|
› d|	› d�z  }Œ Œt|d|› d|› d�z  }Œ� d| v r|dz  }|| d   z  }|dz  }d | v r|d!z  }|| d    z  }|dz  }d"| v r:|d#z  }t        | d"   t        t        f«      s| d"   g}n| d"   }|D ]  }|d$|› d%�z  }Œ |S )&NÚtagsr   Útransformersz---
ztags:
z- ú
zpipeline_tag: zlibrary_name: r   z	license: Úlicensez
apache-2.0Úlicense_namezlicense_name: Úlicense_linkzlicense_link: ÚdetailsÚDatasetz
datasets:
zPretrain Datasetz# Model card for Údescriptionz
## Model Details
z- **z:**
z  - r©   z:** Úusagez
## Model Usage
Ú
comparisonz
## Model Comparison
Úcitationz
## Citation
z
```bibtex
z
```
)r„   rC   rE   rD   ÚlowerÚitemsrÆ   )rÚ   r…   rÛ   rë   ré   ÚtÚdÚkÚvÚviÚkiÚ	citationsÚcs                r<   rá   rá   Ã  sÞ  € ð
 �>‰>˜& $Ó'ÒN¨I°v¸~Ð+N€DØ€KÙØ�yÑ ˆØò 	&ˆAØ˜R ˜s "˜:Ñ%‰Kð	&à�^ I ;¨bÐ1Ñ1€KØ�^ J§N¡N°>À6Ó$JÐ#KÈ2ÐNÑN€KØ�Y˜zŸ~™~¨i¸ÓFÐGÀrÐJÑJ€KØ˜Ñ#Ø˜¨
¯©°~Ó(FÐ'GÀrÐJÑJˆØ˜Ñ#Ø˜¨
¯©°~Ó(FÐ'GÀrÐJÑJˆØ�JÑ 9°
¸9Ñ0EÑ#EØ�}Ñ$ˆÜ�j Ñ+¨IÑ6¼Ä¸ÔFØ 	Ñ*¨9Ñ5ò 2�Ø  A§G¡G£I ;¨bÐ1Ñ1‘ñ2ð ˜R 
¨9Ñ 5°iÑ @× FÑ FÓ HÐIÈÐLÑLˆKØ ¨IÑ!6Ñ6Ü˜* YÑ/Ð0BÑCÄeÌTÀ]ÔSØ# IÑ.Ð/AÑBò 6�AØ R¨¯©«	 {°"Ð#5Ñ5‘Kñ6ð   J¨yÑ$9Ð:LÑ$M×$SÑ$SÓ$UÐ#VÐVXÐYÑY�Ø�7Ñ€KØÐ& z l°"Ð5Ñ5€KØ˜
Ñ"Ø˜˜J }Ñ5Ð6°bÐ9Ñ9ˆØ�JÑØÐ-Ñ.ˆØ˜yÑ)×/Ñ/Ó1ò 
	3‰DˆAˆqÜ˜!œd¤E˜]Ô+Ø  a S¨˜Ñ.�Øò 1�BØ T¨"¨¨R =Ñ0‘Kñ1ä˜AœtÔ$Ø  a S¨˜Ñ.�ØŸg™g›iò 7‘F�B˜Ø T¨"¨¨R°¨t°2Ð#6Ñ6‘Kñ7ð   a S¨¨Q¨C¨rÐ2Ñ2‘ð
	3ð �*ÑØÐ+Ñ,ˆØ�z 'Ñ*Ñ*ˆØ�tÑˆà�zÑ!ØÐ0Ñ1ˆØ�z ,Ñ/Ñ/ˆØ�tÑˆà�ZÑØ˜Ñ)ˆÜ˜* ZÑ0´4¼°-Ô@Ø# JÑ/Ð0‰Ià" :Ñ.ˆIØò 	4ˆAØ˜[¨¨¨7Ð3Ñ3‰Kð	4àÐr=   c              #   ó¦   K  — | t         k(  rt        –— | t        k(  rt        –— | t         t        fvr| j	                  d«      r| dd dz   –— yyy­w)aI  Returns potential safetensors alternatives for a given filename.

    Use case:
        When downloading a model from the Huggingface Hub, we first look if a .safetensors file exists and if yes, we use it.
        Main use case is filename "pytorch_model.bin" => check for "model.safetensors" or "pytorch_model.safetensors".
    r¦   Néüÿÿÿr¥   )rÔ   rÒ   ÚHF_OPEN_CLIP_WEIGHTS_NAMEÚHF_OPEN_CLIP_SAFE_WEIGHTS_NAMEÚendswith)rL   s    r<   r�   r�     s\   è ø€ ð ”?Ò"Ü"Ò"ØÔ,Ò,Ü,Ò,ØœÔ)BÐCÑCÈ×HYÑHYÐZ`ÔHaØ�s˜ˆm˜nÑ,Ó,ð IbÐCùs   ‚AAr‰   c                 óä  — t        d«      sd}t        j                  |¬«       y| r|sy|| z   }	 t        |¬«      }|j                  r)|j                  j                  d
«      j                  «       nd}|dk(  r |j                  j                  dd«      }|�|S |S # t        $ r d|› d�}t        j                  |¬«       Y yt
        $ r&}d|› d	�}t        j                  |¬«       Y d}~yd}~ww xY w)a
  Retrieve license information for a model from Hugging Face Hub.

    Fetches the license field from the model card metadata on Hugging Face Hub
    for the specified model. Returns None if the model is not found, if
    huggingface_hub is not installed, or if the model is marked as "untrained".

    Args:
        model_id: The model identifier/name. In the case of None we assume an untrained model.
        hf_hub_id: The Hugging Face Hub organization/user ID. If it is None,
            we will return None as we cannot infer the license terms.

    Returns:
        The license string in lowercase if found, None otherwise.

    Note:
        Requires huggingface_hub package to be installed. Will log a warning
        and return None if the package is not available.
    TzBFor updated license information run `pip install huggingface_hub`.)ÚmsgN)r–   zRepository z4 was not found. Manual inspection of license needed.z
Error for z&. Manual inspection of license needed.rî   Úotherrï   )	r"   r5   r6   r   r   Ú	ExceptionÚ	card_datar„   r÷   )rq   r‰   r  r–   rH   Ú_rî   r­   s           r<   Ú_get_license_from_hf_hubr    sò   € ô& �dÔØRˆÜ�‰˜CˆÔ Øá™Øà˜xÑ'€GðÜ 'Ô*ˆð 8<·~²~ˆd�n‰n× Ñ  Ó+×1Ñ1Ô3È4€Gà�'ÒØ�~‰~×!Ñ! .°$Ó7ˆàÐØˆKà€Nøô% #ò Ø˜G˜9Ð$XÐYˆÜ�‰˜CˆÔ Ùäò Ø˜7˜)Ð#IÐJˆÜ�‰˜CˆÔ Üûðús   °B Â%C/ÃC/Ã	C*Ã*C/)ry   )TFN)TN)F)N)T)NN)NNF)
z	Add modelNNFFNNNúimage-classificationrÍ   )r  )PrT   rl   r¬   r3   Ú	functoolsr   Úpathlibr   Útempfiler   Útypingr   r   r   r	   r
   r   r   rŸ   Ú	torch.hubr   r   r   r   ÚImportErrorr   Úsafetensors.torchrž   rœ   r   Útyping_extensionsr   r   Ú_helpersr   r   Ú_pretrainedr   Úhuggingface_hubr   r   r   Úhuggingface_hub.utilsr   r   r^   Ú	getLoggerÚ__name__r5   Ú__all__rÔ   rÒ   r  r  r‘   r    Úboolr!   r[   r"   r#   rp   rt   r†   r$   r“   r%   r«   r®   r·   ÚnnÚModuler»   rÆ   rÊ   r&   r'   rá   r�   r  r/   r=   r<   ú<module>r      s%  ðÛ Û Û Û 	Ý Ý Ý 'ß D× DÑ Dã ß @Ñ @ð5Ý!ðÛØÐð*Ýõ ß 2Ý .ðßBÑBßQÙ˜o¸FÐT_Ô`€OØ€Kð
 ˆ'×
Ñ
˜HÓ
%€òG€ð &€Ø*Ð Ø9Ð Ø!>Ð ñ˜Só ð"  ØØ04ñ	Ø�3˜˜S™	 5¨¨c¨¡?Ð2Ñ3ðàðð ðð ˜E # t )Ñ,Ñ-ó	ð8  Ø04ñØ�3˜˜S™	 5¨¨c¨¡?Ð2Ñ3ðàðð ˜E # t )Ñ,Ñ-óñ4˜$ó ð$�Có $ð %¨¨T¨	Ñ"2ó ð 15ñØðàðð ˜E # t )Ñ,Ñ-óð2Ø�#�s�(‰^ð2à˜3 ˜8‘nð2ð ˆ4��S�‰>˜3  S¨# X¡Ð.Ñ/ó2ðD 15ñNØðNà˜E # t )Ñ,Ñ-óNð
<Ø˜#˜t˜)Ñ$ó
<ð (Ø!Ø04ñ	$Øð$àð$ð ð$ð ˜E # t )Ñ,Ñ-ó	$ðN	Ð ð =€ð "ñØðàóðF 15ñ	.Øð.àð.ð �x‰x�‰ð.ð ˜E # t )Ñ,Ñ-ó	.ð( (,Ø%)ñ	.*Ø�x‰x�‰ð.*àð.*ð ˜t‘nð.*ð ˜T‘Nó	.*ðh (,Ø%)Ø;@ñØ�x‰x�‰ðàðð ˜t‘nðð ˜T‘Nð	ð
 " $¨°©Ð"7Ñ8óð> *Ø#Ø"&ØØØ'+Ø%)Ø%)Ø/Ø;Añ:
Ø�x‰x�‰ð:
àð:
ð ð:
ð ˜‰}ð	:
ð
 ˜3‘-ð:
ð ð:
ð ð:
ð ˜t‘nð:
ð ˜T‘Nð:
ð ˜T‘Nð:
ð ð:
ð " $¨°©Ð"7Ñ8ó:
ð@ 0ñBØðBàðBð óBðJ- Sð -¨X°c©]ó -ð2 x°¡}ð 2ÀÈ#Áð 2ÐS[Ð\_ÑS`ô 2øðQ ò 5ß4Ð4ð5ûð ò ØÓðûð
 ò *ß)Ð)ð*ûð ò Ø€OØƒKðúsH   ÁJ ÁJ# ÁJ1 Á-K ÊJ ÊJ Ê#J.Ê-J.Ê1K Ê?K Ë	KËK