
    5h                        S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
Jr  S SKJr  SSKJr  S SKr\R"                  " S5      r\ " S	 S
5      5       rg)    )annotationsN)Path)AnyLiteralOptional)	dataclass   )Keysmetadatac                     \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S'   Sr	S\S'   Sr
S\S	'   SrS\S
'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   \S'S(S jj5       r\S)S*S jj5       r\S)S+S  jj5       r \S)S+S! jj5       r!\S" 5       r"\S,S-S# jj5       r#\S'S.S$ jj5       r$S/S% jr%S&r&g)0Metadata   NOptional[str]nameauthorversionorganizationfinetunebasenamedescriptionquantized_by
size_labelurldoiuuidrepo_url
source_url
source_doisource_uuidsource_repo_urllicenselicense_namelicense_linkzOptional[list[dict]]base_modelszOptional[list[str]]tags	languagesdatasetsc                
   [        5       n[         R                  U5      n[         R                  U5      n[         R                  XEXaU5      n[         R	                  U 5      nUR                  [        R                  R                  UR                  5      Ul	        UR                  [        R                  R                  UR                  5      Ul        UR                  [        R                  R                  UR                  5      Ul        UR                  [        R                  R                  UR                  5      Ul        UR                  [        R                  R                   UR"                  5      Ul        UR                  [        R                  R$                  UR&                  5      Ul        UR                  [        R                  R(                  UR*                  5      Ul        UR                  [        R                  R,                  UR.                  5      Ul        UR                  [        R                  R0                  UR2                  5      Ul        UR                  [        R                  R4                  UR6                  5      Ul        UR                  [        R                  R8                  UR:                  5      Ul        UR                  [        R                  R<                  UR>                  5      Ul        UR                  [        R                  R@                  URB                  5      Ul!        UR                  [        R                  RD                  URF                  5      Ul#        UR                  [        R                  RH                  URJ                  5      Ul%        UR                  [        R                  RL                  URN                  5      Ul'        UR                  [        R                  RP                  URR                  5      Ul)        UR                  [        R                  RT                  URV                  5      Ul+        UR                  [        R                  RX                  URZ                  5      Ul-        UR                  SUR\                  5      Ul.        UR                  SUR^                  5      Ul/        UR                  [        R                  R`                  URb                  5      Ul1        UR                  [        R                  Rd                  URf                  5      Ul3        Ub  X$l	        U$ )Nzgeneral.base_modelszgeneral.datasets)4r   load_model_cardload_hf_parametersapply_metadata_heuristicload_metadata_overridegetr
   GeneralNAMEr   AUTHORr   VERSIONr   ORGANIZATIONr   FINETUNEr   BASENAMEr   DESCRIPTIONr   QUANTIZED_BYr   
SIZE_LABELr   LICENSE_NAMEr"   LICENSE_LINKr#   URLr   DOIr   UUIDr   REPO_URLr   
SOURCE_URLr   
SOURCE_DOIr   SOURCE_UUIDr   SOURCE_REPO_URLr    r$   r'   TAGSr%   	LANGUAGESr&   )metadata_override_path
model_path
model_nametotal_paramsr   
model_card	hf_paramsmetadata_overrides           5/home/james-whalen/llama.cpp/gguf-py/gguf/metadata.pyloadMetadata.load.   s    :--j9
//
;	 44X9bno %;;<RS#4#8#89J9JW_WdWd#e#4#8#89L9LW_WfWf#g#4#8#89M9MW_WgWg#h#4#8#89R9RW_WlWl#m#4#8#89N9NW_WhWh#i#4#8#89N9NW_WhWh#i#4#8#89Q9QW_WkWk#l#4#8#89R9RW_WlWl#m#4#8#89P9PW_WjWj#k#4#8#89R9RW_WlWl#m#4#8#89R9RW_WlWl#m#4#8#89I9IW_WcWc#d#4#8#89I9IW_WcWc#d#4#8#89J9JW_WdWd#e#4#8#89N9NW_WhWh#i#4#8#89P9PW_WjWj#k#4#8#89P9PW_WjWj#k#4#8#89Q9QW_WkWk#l#4#8#89U9UW_WoWo#p  $5#8#89NW_WkWk#l $5#8#89KW_WhWh#i#4#8#89J9JW_WdWd#e#4#8#89O9OW_WiWi#j !&M    c                    U b  U R                  5       (       d  0 $ [        U SSS9 n[        R                  " U5      sS S S 5        $ ! , (       d  f       g = f)Nrutf-8encoding)is_fileopenjsonrL   )rD   fs     rK   r,   Metadata.load_metadata_overridej   sC    !)1G1O1O1Q1QI(#@A99Q< A@@s   A
Ac                   U b  U R                  5       (       d  0 $ U S-  nUR                  5       (       d  0 $ Sn[        USSS9 nUR                  5       nUR	                  5       n/ n[        U5      S:X  a  0 sS S S 5        $ [        U5      S:  a  US   S:w  a  0 sS S S 5        $ USS   H  nUS:X  a    OUR                  U5        M     S	R                  U5      S	-   nS S S 5        UR                  S
S5      nUR                  SS5      nU(       aQ  [        R                  " U5      n[        U[        5      (       a  U$ [        R                  S[        U5       S35        0 $ 0 $ ! , (       d  f       N= f)Nz	README.md rP   rQ   rR   r   z---r	   
z- no
z- "no"
	z  z3while reading YAML model card frontmatter, data is z instead of dict)is_dirrT   rU   read
splitlineslenappendjoinreplaceyaml	safe_load
isinstancedictloggererrortype)	rE   model_card_pathyaml_contentrW   contentlines
lines_yamllinedatas	            rK   r)   Metadata.load_model_cardr   sg   Z%6%6%8%8I${2&&((I /39QffhG&&(EJ5zQ :9 5zA~%(e"3 :9 ab	5=%%d+	 "
  99Z047L :& $++HlC $++D$7>>,/D$%%RSWX\S]R^^nop	IC :9s   3E#E#$9E##
E1c                    U b  U R                  5       (       d  0 $ U S-  nUR                  5       (       d  0 $ [        USSS9 n[        R                  " U5      sS S S 5        $ ! , (       d  f       g = f)Nzconfig.jsonrP   rQ   rR   )r]   rT   rU   rV   rL   )rE   config_pathrW   s      rK   r*   Metadata.load_hf_parameters   s^    Z%6%6%8%8I =0""$$I+sW599Q< 655s   A""
A0c           	     (   SR                  U R                  5       R                  SS5      R                  5        Vs/ s HE  oR	                  5       (       a,  [
        R                  " SU5      (       d  UR                  5       OUPMG     sn5      $ s  snf )N -z^(v\d+(?:\.\d+)*|\d.*)$)rb   striprc   splitislowerrematchtitle)stringws     rK   id_to_titleMetadata.id_to_title   s     xxrxr~r~  sA  sI  sI  JM  OR  sS  sY  sY  s[  \  s[mniikk"((C]_`:a:aghh  s[  \  ]  	]  \s   ABc           	     
   U c  gSU ;   a  U S S S S S 4$ SU ;   a  U R                  SS5      u  p#OS U p2Ub  [        U5      S:  a  US   S:X  a  S nUR                  S5      n[        [        [        U5      5      5       H  n[        XE   5      S:X  d  M  XE	 M     U Vs/ s H  n[	        5       PM     snn[        U5       GH  u  pX[        R                  " SU[        R                  5      (       a  Xu   R                  S	5        MF  [        R                  " S
U[        R                  5      (       a'  Xu   R                  S5        UR                  5       XE'   M  US:  Gas  [        R                  " SU[        R                  5      (       GaG  UR                  SS5      nUS   R                  5       (       a  US S S-   US   -   US   -   n[        U5      S:  a:  US   R                  5       (       a"  US   S;   a  US S US   R                  5       -   nUS:w  a   [        US S 5      [        SSR                  US   5      5      -  n	US:  a  U	[!        U5      S-  :  d  US:  aC  [!        X-
  5      SU-  S-  :  a,  Xu   R                  S5        US S US   R#                  5       -   n[        Xu   5      S:X  a  Xu   R                  S5        XU'   GM  US:  d  GM  [        R                  " SU[        R                  5      (       d  GMI  US:  a*  UR#                  5       S:X  a  Xu   R                  S5        GMy  Xu   R                  S5        GM     ['        S [)        XG5       5       5      (       aF  [)        XG5       H7  u  pSU;   d  M  [+        S U
 5       5      (       d  M&  UR-                  S5        M9     Sn[)        XG5       Hw  u  pU(       a@  [        U5      S:X  a  US   R/                  5       (       d  S	U;   a  UR                  S5        ML  U(       a  Sn[        U5      S:X  d  Mf  UR                  S5        My     [)        [        U5      [        U5      5       H-  u  pSU;   a"  [        U5      S:  a  UR-                  S5        M-    O   SR1                  S [)        XG5       5       5      =(       d    S nSR1                  [2        R5                  S [)        XG5       5       5      R7                  5       5      =(       d    S nSR1                  S  [)        XG5       5       5      =(       d    S nSR1                  S! [)        XG5       5       5      =(       d    S nUc  Uc  Uc  S nX2XUU4$ s  snf ! [$         a     GNf = f)"N)NNNNNNrw   /r	   r   .rx   z(v|iter)?\d+([.]\d+)*r   zi?q\d(_\w)*|b?fp?(16|32)rj   zD(([A]|\d+[x])?\d+([._]\d+)?[KMBT][\d]?|small|mini|medium|large|x?xl)_kmbti  z KMBT      r   r   zchat|instruct|vision|loralorac              3  h   #    U  H(  u  pS U;   d  M  U  H  o3R                  5       v   M     M*     g7fr   N)	isdecimal).0ntcs       rK   	<genexpr>3Metadata.get_model_id_components.<locals>.<genexpr>  s/     e)DXYHY}cd^_{{}}cd})Ds   2 2c              3  @   #    U  H  oR                  5       v   M     g 7fN)isalpha)r   r   s     rK   r   r     s     2199;;s   Tr   Fc              3  :   #    U  H  u  pS U;   d  M  Uv   M     g7f)r   N )r   r   r   s      rK   r   r   #       Y*E$!WXAA*E   	c              3  :   #    U  H  u  pS U;   d  M  Uv   M     g7fr   r   )r   sr   s      rK   r   r   %  s     +k:U$!YeijYjAA:Ur   c              3  :   #    U  H  u  pS U;   d  M  Uv   M     g7f)r   Nr   )r   rW   r   s      rK   r   r   &  r   r   c              3  J   #    U  H  u  pS U;   d  M  SU;  d  M  Uv   M     g7f)r   r   Nr   )r   vr   s      rK   r   r   )  s(     p*EVW1\fno\o11*Es   ##	#)rz   r`   reversedrangeset	enumerater|   	fullmatch
IGNORECASEaddupperrc   r   floatpowfindabslower
ValueErroranyzipallremover   rb   rg   fromkeyskeys)model_idrG   org_componentmodel_full_name_component
name_partsir   
name_typespartlabel_paramsr   r   at_startr   r   r   r   s                    rK   get_model_id_components Metadata.get_model_id_components   s   
 5(? T4tT99(?7?~~c17M4M4 8<X4 $]);a)?MRSDTX[D[ M 9 ? ? D
 %J01A:=!Q&M 2 ''JqSUJ' 	
 !,GA||4dBMMJJ!!),94OO!!&) $


Q2<<(oquwy  xE  xE  F  F||C-8%%''9s?T"X5R@Dt9q=T"X%7%7%9%9Bx6)#CRy48>>+;;1$',T#2Y'7#dGLLQUVXQYDZ:['[
 )1,L@QUV@V1V(1,\5P1QTUXdTdhiTi1i 'M--j9#'9tBx~~/?#?D z}%*M%%l3 $1Q2<<(DdBMMZZ!#

(>M%%f-M%%j1[ -b eZ)DeeeJ31$2222. 4
 :2GDc!fkd1goo.?.?IQRNj!$Hq6Q;EE*% 3 8J/*1EFGDQ3q6A:$	 G 88Y#j*EYYa]aXXdmm+k#j:U+kkpprs{w{
88Y#j*EYYa]a ((p#j*Eppxtx("2wH(WV```q (H & s   U&BU++
U98U9c           
     z  ^ ^ TGb  S;U U4S jjnS;U U4S jjnU" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S	S	5        U" S
S
5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S	S5        U" S
S5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S	S 5        S!T;   d  S"T;   d  S#T;   GaP  / nTR                  S!TR                  S"TR                  S#S 5      5      5      nUbM  [        U[        5      (       a  UR                  U5        O&[        U[        5      (       a  UR                  U5        T R                  c  / T l        U GH  n	0 n
[        U	[        5      (       Ga@  U	R                  S$5      (       d,  U	R                  S%5      (       d  U	R                  S&5      (       a  XS'   S'U	;   a  [        R                  " S(U	5      nU(       aj  UR                  S)5      n[        R                  X5      u  pnnnnUb  [        R                  U5      U
S'   Ub  [        R                  U5      U
S'   Ub  UU
S'   O[        R                  X5      u  pnnnnUb  [        R                  U5      U
S'   Ub  [        R                  U5      U
S'   Ub  UU
S'   Ub  Ub  S*U S+U 3U
S'   O:[        U	[        5      (       a  U	n
O"[        R!                  S,[        U	5       S-35        T R                  R                  U
5        GM     S.T;   d  S/T;   d  S0T;   Ga'  / nTR                  S.TR                  S/TR                  S0S 5      5      5      nUbM  [        U[        5      (       a  UR                  U5        O&[        U[        5      (       a  UR                  U5        T R"                  c  / T l        U GH  n0 n[        U[        5      (       Ga  UR                  S15      (       a  UUS'   S'U;   a  [        R                  " S(U5      nU(       ak  UR                  S)5      n[        R                  UU5      u  npnnnUb  [        R                  U5      US'   Ub  [        R                  U5      US'   Ub  UUS'   O[        R                  UU5      u  npnnnUb  [        R                  U5      US'   Ub  [        R                  U5      US'   Ub  UUS'   Ub  Ub  S*U S+U 3US'   O:[        U[        5      (       a  UnO"[        R!                  S2[        U5       S-35        T R"                  R                  U5        GM     U" S3S35        U" S4S45        U" S5S55        U" S6S65        U" S6S75        U" S8S85        U" S8S95        Ub  UR                  S:5      nUb  UR%                  S+5      S)::  a  Un	[        R                  X5      u  pnnnnT R&                  c  Ub  [        R                  U5      T l        T R(                  c  Ub  [        R                  U5      T l        T R*                  c
  Ub  UT l        T R,                  c
  Ub  UT l        T R.                  c
  Ub  UT l        T R0                  c
  Ub  UT l        Ub  UR&                  n	[        R                  X5      u  pnnnnT R&                  c  Ub  [        R                  U5      T l        T R(                  c  Ub  [        R                  U5      T l        T R*                  c
  Ub  UT l        T R,                  c
  Ub  UT l        T R.                  c
  Ub  UT l        T R0                  c
  Ub  UT l        T $ )<Nc                j   > UT;   a,  [        TU S 5      c  [        TU TR                  U5      5        g g g r   )getattrsetattrr-   )metadata_keymodel_card_keyr   rH   s     rK   use_model_card_metadataBMetadata.apply_metadata_heuristic.<locals>.use_model_card_metadata9  s8    !Z/GHlTX4Y4aHlJNN>4RS 5b/rN   c                  > TR                  US 5      nUc  g [        TU S 5      nUc  / n[        U[        5      (       a  UR	                  U5        O&[        U[
        5      (       a  UR                  U5        [        TX5        g r   )r-   r   rf   strra   listextendr   )r   r   
tags_valuecurrent_valuer   rH   s       rK   use_array_model_card_metadataHMetadata.apply_metadata_heuristic.<locals>.use_array_model_card_metadata=  su    '^^NDA
% ', E ($&Mj#..!((4
D11!((4,>rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   rF   model_authormodel_versionmodel_organizationmodel_descriptionmodel_finetunemodel_basenamemodel_size_label	model_url	model_doi
model_uuidmodel_repo_urlmodel_creator
model_type
base_modelr$   base_model_sourceshttp://https://ssh://zhuggingface.coz&https?://huggingface.co/([^/]+/[^/]+)$r	   zhttps://huggingface.co/r   zbase model entry 'z' not in a known formatr'   datasetdataset_sources)r   r   r   zdataset entry 'r!   r"   r#   r%   pipeline_tagr&   language_name_or_path)r   r   r   r   )r-   rf   r   ra   r   r   r$   
startswithr|   r}   groupr   r   r   rg   rh   ri   r'   countr   r   r   r   r   r   )r   rH   rI   rE   rG   r   r   metadata_base_modelsbase_model_valuer   r   r}   model_id_componentr   r   r   r   r   r   metadata_datasetsdataset_value
dataset_idr   dataset_id_componentdataset_name_componenthf_name_or_paths   ``                        rK   r+   !Metadata.apply_metadata_heuristic1  s    !T T? ?( $FF3#Hh7#Iy9#NNC#M=A#J
;#J
;#L,?#L%8#L%8#M6:#$5zB
 $FL9#Hn=#I?#N4HI#M3FG#J0@A#J0@A#L2DE#L+>#L+>#M<@#$57GH $FL9#Ho>#J=z)]j-HL`dnLn (*$#->>,
}^h^l^l  nB  DH  _I  AJ  $K #/!"2C88,334DE#$4d;;,334DE''/+-H( 4H!#J!(C00#..y99X=P=PQ[=\=\`h`s`st|`}`}5=z2  08;(*1Z\d(e#(9>Q$6 yA  yY  yY  Zl  y{$u$=hX`biku (A'L=E=Q=QRk=l
6(:'4'@EMEYEYZgEh
>(B'.':@G
9(= qy  qQ  qQ  RZ  qim5hPXZacm  9D5=5I5IJc5d
6 2,8=E=Q=QR_=`
> :&28?
9 5,8=V=b;RS`Raabc|b}9~
: 6#Hd33%-
 '9#h-H_%`a((//
;U !5X Z'9
+BFW[eFe$&! *z:>>)U_UcUcduw{U|;} ~ ,!-55)00?#M488)00?$$,(*H%"3J G!*c22%001RSS2<GJ/  0:=(*1Z\f(g#(;@;;q>$8u}  vV  vV  Wk  my  vz$r$:MU]_fhr (>'I:B:N:NOe:f'4'@BJBVBVWdBe(?'.':=D	(: nv  nN  nN  OY  [g  nhj2MXW^`j  6A2:2F2FG]2^,8:B:N:N}:] 7&25<	 2,8=S=_8OP]^_`v_w6x
 3#J55", s:6GG^%_`%%,,W5U #4X $Iy9#NNC#NNC)&&9)&.A)+{C)+zB
  'mmO<O*/D/DS/IQ/N +dl  eE  eE  FN  e]a)(HgWa==(-F-R$,$8$89R$SHM((0]5N,4,@,@,OH)$$,1E(0H%$$,1E(0H%##+0C'.H$&&.:3I*4H' !!H`h  aA  aA  BJ  aY]%h'S]}}$)B)N ( 4 45N O$$,1J(0(<(<](K%  (X-A$,!  (X-A$,!'G,?#* ""*z/E&0#rN   c                n   U R                   c   eUR                  U R                   5        U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        U R                   b  UR#                  U R                   5        U R$                  be  ['        U R$                  [(        5      (       a+  UR+                  SR-                  U R$                  5      5        OUR+                  U R$                  5        U R.                  b  UR1                  U R.                  5        U R2                  b  UR5                  U R2                  5        U R6                  b  UR9                  U R6                  5        U R:                  b  UR=                  U R:                  5        U R>                  b  URA                  U R>                  5        U RB                  b  URE                  U RB                  5        U RF                  b  URI                  U RF                  5        U RJ                  b  URM                  U RJ                  5        U RN                  b  URQ                  U RN                  5        U RR                  b  URU                  U RR                  5        U RV                  Gb.  URY                  [[        U RV                  5      5        []        U RV                  5       H  u  p#SU;   a  UR_                  X#S   5        SU;   a  URa                  X#S   5        SU;   a  URc                  X#S   5        SU;   a  URe                  X#S   5        SU;   a  URg                  X#S   5        SU;   a  URi                  X#S   5        SU;   a  URk                  X#S   5        S	U;   a  URm                  X#S	   5        S
U;   d  M  URo                  X#S
   5        M     U Rp                  Gb.  URs                  [[        U Rp                  5      5        []        U Rp                  5       H  u  p$SU;   a  URu                  X$S   5        SU;   a  URw                  X$S   5        SU;   a  URy                  X$S   5        SU;   a  UR{                  X$S   5        SU;   a  UR}                  X$S   5        SU;   a  UR                  X$S   5        SU;   a  UR                  X$S   5        S	U;   a  UR                  X$S	   5        S
U;   d  M  UR                  X$S
   5        M     U R                  b  UR                  U R                  5        U R                  b  UR                  U R                  5        g g )N,r   r   r   r   r   r   r   r   r   )Gr   add_namer   
add_authorr   add_versionr   add_organizationr   add_finetuner   add_basenamer   add_descriptionr   add_quantized_byr   add_size_labelr!   rf   r   add_licenserb   r"   add_license_namer#   add_license_linkr   add_urlr   add_doir   add_uuidr   add_repo_urlr   add_source_urlr   add_source_doir   add_source_uuidr    add_source_repo_urlr$   add_base_model_countr`   r   add_base_model_nameadd_base_model_authoradd_base_model_versionadd_base_model_organizationadd_base_model_descriptionadd_base_model_urladd_base_model_doiadd_base_model_uuidadd_base_model_repo_urlr'   add_dataset_countadd_dataset_nameadd_dataset_authoradd_dataset_versionadd_dataset_organizationadd_dataset_descriptionadd_dataset_urladd_dataset_doiadd_dataset_uuidadd_dataset_repo_urlr%   add_tagsr&   add_languages)selfgguf_writerkeybase_model_entrydataset_entrys        rK   set_gguf_meta_modelMetadata.set_gguf_meta_model#  s'   yy$$$TYY';;"""4;;/<<###DLL1((():):;==$$$T]]3==$$$T]]3'''(8(89((():):;??&&&t7<<#$,,--''(>?''5((():):;((():):;88)88)99   +==$$$T]]3??&&&t7??&&&t7'''(8(89+++D,@,@A',,S1A1A-BC)243C3C)D%--33C&9QR//55cH;UV 0066sY<WX!%55;;CR`Aab $44::3Q^@_`,,2238OP,,2238OP--33C&9QR!1177j=YZ% *E( ==$))#dmm*<=&/&>"]*00F6KL},223h8OP-33Cy9QR!]288N>[\ M177==YZM)//55IJM)//55IJ]*00F6KL.44S
:ST% '?( 99   +>>%%%dnn5 &rN   r   )NNNr   )
rD   Optional[Path]rE   r(  rF   r   rG   intreturnr   r   )rD   r(  r*  dict[str, Any])rE   r(  r*  r+  )Nr   )r   r   rG   r)  r*  zMtuple[str | None, str | None, str | None, str | None, str | None, str | None])r   r   rH   Optional[dict]rI   r,  rE   r(  rG   r)  r*  r   )r"  zgguf.GGUFWriter)'__name__
__module____qualname____firstlineno__r   __annotations__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   staticmethodrL   r,   r)   r*   r   r   r+   r&  __static_attributes__r   rN   rK   r   r      s    D- FM !G]!"&L-&"Hm""Hm"!%K%"&L-& $J$CCD-"Hm" $J$ $J$!%K%%)O])!G]!"&L-&"&L-&(,K%, $D
$%)I")%)H")9 9v     - -^ 
  
  ] ] za zax o obc6rN   r   )
__future__r   r|   rV   rd   loggingpathlibr   typingr   r   r   dataclassesr   	constantsr
   gguf	getLoggerrh   r   r   rN   rK   <module>r<     sR    " 	     ) ) !  			:	& s	6 s	6 s	6rN   