
    oi                        % S SK r S SKJrJr  S SKJr   " S S\5      rSrS\-   rSr	S	r
\R                  \\R                  \\R                  \	\R                  S\R                  \
0r\ " S
 S5      5       r\ " S S5      5       r0 r\\\4   \S'       S S\S\S\S\S\S\S\S\S\4S jjrS/4S\S\\   4S jjrS!S\S\4S jjrg)"    N)	dataclassfield)Enumc                   (    \ rS rSrSrSrSrSrSrSr	g)		QuantType   bnbunslothGGUFnonebf16 N)
__name__
__module____qualname____firstlineno__BNBUNSLOTHr   NONEBF16__static_attributes__r       S/home/james-whalen/.local/lib/python3.13/site-packages/unsloth/registry/registry.pyr   r      s    
CGDDDr   r   zbnb-4bitzunsloth-r   r   c                       \ rS rSr% \\S'   \\S'   \\S'   \\S'   Sr\\S'   Sr\	\S	'   Sr
\\S
'   Sr\\S'   Sr\\S'   S r\SS\S
\4S jj5       r\SS\S\4S jj5       r\ SS j5       r\S\4S j5       rSrg)	ModelInfo   org	base_nameversionsizeNnameFis_multimodalinstruct_tag
quant_typedescriptionc                     U R                   =(       dG    U R                  U R                  U R                  U R                  U R
                  U R                  5      U l         g N)r!   construct_model_namer   r   r    r$   r#   selfs    r   __post_init__ModelInfo.__post_init__*   sD    II 
!:!:NNLLIIOO"
	r   keyc                 8    U(       a  SR                  X/5      n U $ N-)join)r-   r#   s     r   append_instruct_tagModelInfo.append_instruct_tag3   s    ((C./C
r   c                 b    U[         R                  :w  a  SR                  U [        U   /5      n U $ r/   )r   r   r1   QUANT_TAG_MAP)r-   r$   s     r   append_quant_typeModelInfo.append_quant_type9   s+    '((Cz!:;<C
r   c                 J    U R                  Xe5      nU R                  Xd5      nU$ r'   )r2   r6   )clsr   r   r    r$   r#   r-   s          r   r(   ModelInfo.construct_model_name?   s)     %%c8##C4
r   returnc                 8    U R                    SU R                   3$ )N/)r   r!   r)   s    r   
model_pathModelInfo.model_pathG   s     ((1TYYK((r   )r!   r'   ) )r   r   r   r   str__annotations__intr!   r"   boolr#   r$   r   r%   r+   staticmethodr2   r6   classmethodr(   propertyr>   r   r   r   r   r   r      s    	HNL
ID#M4L# J	 K
  C  
 s 	  
 GI  )	) )r   r   c                       \ rS rSr% \\S'   \\S'   \\S'   \\   \S'   \" \	S9r
\	\   \S'   \" \	S9r\	\   \S'   \" \	S9r\	\   \\\	\   4   -  \S	'   S
r\\S'   Srg)	ModelMetaN   r   r   model_versionmodel_info_cls)default_factorymodel_sizesinstruct_tagsquant_typesFr"   r   N)r   r   r   r   rA   rB   typer   r   listrN   rO   rP   r   dictr"   rD   r   r   r   r   rI   rI   N   sz    	HNO#"T:Kc:$t<M49<@EAKi4T)_(<#==   M4r   rI   MODEL_REGISTRYrL   r   r   r   r    r#   r$   r"   r!   c	                     U=(       d    U R                  UUUUUS9nU SU 3n	U	[        ;   a#  [        SU	 S[        R                  5        35      eU " UUUUUUUUS9[        U	'   g )N)r   r   r    r$   r#   r=   zModel z# already registered, current keys: )r   r   r   r    r"   r#   r$   r!   )r(   rT   
ValueErrorkeys)
rL   r   r   r   r    r#   r$   r"   r!   r-   s
             r   register_modelrX   _   s      >66# 7 D E4&/C
nSE<^=P=P=R<ST
 	
 )%#	N3r   lastModifiedmodel_id
propertiesc                     SSK Jn  SSK Jn  SSKJn  U" 5       n UR                  XS9nU$ ! [         a8  n[        Xt5      (       a!  [        R                  " U  S35        S n S nAU$ UeS nAff = f)Nr   )HfApi)r   )RepositoryNotFoundError)expandz not found on Hugging Face)
huggingface_hubr]   r   huggingface_hub.utilsr^   
model_info	Exception
isinstancewarningswarn)rZ   r[   r]   HfModelInfor^   apirb   es           r   _check_model_inforj      st    %8=
'C"%..."O
   a11MMXJ&@ABJ  Gs   , 
A.+A)'A))A.
model_metainclude_original_modelc                    U R                   nU R                  nU R                  nU R                  nU R                  nU R
                  nU R                  nU R                  n	U Hj  n
U Ha  n[        U[        5      (       a  X   nOUnU H  nSn[        U	UUUU
UUUS9  M     U(       d  MC  [        U	UUUU
U[        R                  US9  Mc     Ml     g )Nr
   )rL   r   r   r   r    r#   r$   r"   )r   r   rO   rK   rN   r"   rP   rL   rd   rS   rX   r   r   )rk   rl   r   r   rO   rK   rN   r"   rP   rL   r    r#   _quant_typesr$   _orgs                  r   _register_modelsrp      s    
..C$$I,,M,,M((K,,M((K..N)L+t,,*0**
 %3 )+#/!+$1	 + &%%3 )+#/!*$1	+ * r   )NNFN)F)re   dataclassesr   r   enumr   r   BNB_QUANTIZED_TAGUNSLOTH_DYNAMIC_QUANT_TAGGGUF_TAGBF16_TAGr   r   r   r   r   r5   r   rI   rT   rS   rA   rB   rC   rD   rX   rR   rj   rp   r   r   r   <module>rw      sW    (    +.??  MM$0NNHNNDNNH ,) ,) ,)^ 
  
  
  (*S)^$ )  ""	" " 	"
 " " " " "J ?M=M  c $) )D )r   