
    ^j                       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  S SK	r
S\R                  ;  a  \" \5      R                  R                  R                  R                  S-  R                  5       (       aF  \R                  R!                  S \" \" \5      R                  R                  R                  5      5        S SKr\R&                  " S5      rS rS	 rS
 rS rS r\R4                  R6                  \\R4                  R8                  \\R4                  R:                  \\R4                  R<                  \\R4                  R>                  \\R4                  R@                  \0r!SS jr"SS jr#\$S:X  a  \#" 5         gg)    )annotationsN)tqdm)PathNO_LOCAL_GGUFzgguf-pyzgguf-convert-endianc                    g )N )tensor
block_offss     U/home/rurouni/.local/lib/python3.13/site-packages/gguf/scripts/gguf_convert_endian.pybyteswap_noopr      s        c                z    U R                   XS-    R                  [        R                  S9nUR	                  SS9  g N   dtypeTinplacedataviewnpuint16byteswapr	   r
   deltas      r   byteswap_q4_0r      6     KK
>277bii7HE	NN4N r   c                z    U R                   XS-    R                  [        R                  S9nUR	                  SS9  g r   r   r   s      r   byteswap_q8_0r    #   r   r   c                    U R                   XS-    R                  [        R                  S9nUR	                  SS9  U R                   US-   US-    R                  [        R                  S9nUR	                  SS9  g )Nr   r   Tr      r   r   s      r   byteswap_q4_kr#   +   sn     KK
>277bii7HE	NN4N KK
QzA~6;;"));LE	NN4N r   c                    U R                   US-   US-    R                  [        R                  S9nUR	                  SS9  g )N      r   Tr   r   r   s      r   byteswap_q6_kr'   6   s>     KK
S(c)9:??bii?PE	NN4N r   c                <   U R                   R                  nU R                  S:X  a  US:X  a  SOSnOUnUR                  S:X  a  UOUR                  R	                  5       n[
        R                  SU SU S35        X$:X  a/  [
        R                  SU S	35        [        R                  " S
5        [
        R                  S5        U R                   H  nUR                  [        ;  d  M  UR                  [        R                  R                  [        R                  R                  [        R                  R                   4;  d  Mv  [#        SUR                  R                   S[%        UR                  5       35      e   [
        R                  SU SU 35        UR&                  (       a  g [
        R)                  S5        [
        R)                  S5        XC:w  a  [
        R)                  S5        [
        R)                  S5        [
        R)                  S5        [+        S5      nUS:w  a+  [
        R)                  S5        [        R                  " S
5        [
        R                  S[-        U R.                  5       S35        [1        U R.                  R3                  5       5       Hl  u  px[
        R                  SUS S[%        UR                  5       S[-        UR4                  5       35        UR4                   H  n	U	R7                  SS9  M     Mn     [
        R                  S [-        U R                  5       S35        [1        [9        U R                  S!S"9=n
5       GH!  u  puS#[%        UR                  5       S$UR                  R                   S%UR:                   S&3nUR<                  R4                   H  n	U	R7                  SS9  M     UR                  [        ;   Ga  UR>                  R@                  nS'nUR>                  R@                   H  nX-  nM	     UR>                  RC                  U5        [        RD                  RF                  UR                     S'   n[        UR                     n[-        UR>                  5      U-  n[9        [I        U5      S(S)S*9=n H7  nUU-  nU" UU5        US+-  S
:X  d  M  URK                  S,UU-
  U-   S-35        M9     UR>                  RC                  U5        OvUR                  [        R                  R                   :X  a5  UR>                  RM                  [N        RP                  S.9R7                  SS9  OUR>                  R7                  SS9  U
RK                  U5        GM$     [
        R                  S/5        g )0NSLITTLEBIGnativez
* Host is z endian, GGUF file seems to be z endianz* File is already z endian. Nothing to do.r   z/* Checking tensors for conversion compatibilityzCannot handle type z for tensor z* Preparing to convert from z to z&*** Warning *** Warning *** Warning **zH* This conversion process may damage the file. Ensure you have a backup.z]* Requested endian differs from host, you will not be able to load the model on this machine.zQ* The file will be modified immediately, so if conversion fails or is interruptedzX* the file will be corrupted. Enter exactly YES if you are positive you want to proceed:zYES, I am sure> YESz(You didn't enter YES. Okay then, see ya!z* Converting fields ()z- 4z: Converting field z, part count: Tr   z* Converting tensors (zConverting tensor)desczConverting tensor z, type=z, elements=    zByte-swapping BlocksF)r0   leavei zByte-swapping Blocks []r   z* Completion))	endianessname
byte_orderorderupperloggerinfosysexittensorstensor_typebyteswap_tensorsggufGGMLQuantizationTypeF32F16BF16
ValueErrorreprdry_runwarninginputlenfields	enumeratevaluespartsr   r   
n_elementsfieldr   shaperesize	constantsGGML_QUANT_SIZESrangeset_descriptionr   r   r   )readerargsfile_endianhost_endianr8   r	   responseidxrQ   partpbarlog_messageoldshapenewshapei
block_sizebyteswap_funcn_blocks
inner_pbar	block_numr
   s                        r   convert_byteorderri   H   s   ""''KC*h6eH!::1Ktzz7G7G7IE
KK*[M)HU\]^(/FGH
KKAB..%55))--))--))..& 
 263E3E3J3J2K<X\]c]h]hXiWjkll ! KK.{m4wGH||
NN;<
NN]^vw
NNfg
NNmn'(H5AB
KK'FMM(:';1=> 4 4 67
bQ24

3C2DNSVW\WbWbScRdefKKDMM$M'   8 KK(V^^)<(=Q?@ fnnCV)W!WX fkk!2 3 4&&++, -))*!- 	 LL&&DMM$M' ' !11{{((HH[[&& ' KKx( NN;;F<N<NOPQRJ,V-?-?@M6;;':5H,0xG]ej,kkjk	&3
fj1v%*..1GT]I]bjHjGkkl/mn l KKx(4#<#<#A#AA KK299-66t6D KK   .[)Y Y\ KKr   c                 t   [         R                  " SS9n U R                  S[        SS9  U R                  S[        / SQSS	9  U R                  S
SSS9  U R                  SSSS9  U R	                  [        [        R                  5      S:  a  S OS/5      n[        R                  " UR                  (       a  [        R                  O[        R                  S9  [        R                  SUR                   35        [         R"                  " UR                  UR$                  (       a  SOS5      n['        X!5        g )NzConvert GGUF file byte order)descriptionmodelzGGUF format model filename)typehelpr8   )biglittler,   zRequested byte order)rm   choicesrn   z	--dry-run
store_truezDon't actually change anything)actionrn   z	--verbosezincrease output verbosityr2   z--help)levelz* Loading: rzr+)argparseArgumentParseradd_argumentstr
parse_argsrK   r<   argvloggingbasicConfigverboseDEBUGINFOr:   r;   rl   rA   
GGUFReaderrH   ri   )parserrY   rX   s      r   mainr      s    $$1OPF
c)   c#>#   L-   L?Z[S]Q%6TXJGDt||gmmN
KK+djj\*+__TZZ$GFf#r   __main__)rX   zgguf.GGUFReaderrY   zargparse.NamespacereturnNone)r   r   )%
__future__r   r|   rv   osr<   r   pathlibr   numpyr   environ__file__parentexistspathinsertry   rA   	getLoggerr:   r   r   r    r#   r'   rB   Q4_0Q8_0Q4_KQ6_KMXFP4NVFP4r@   ri   r   __name__r   r   r   <module>r      sE   "   	 
    "**$$x.*?*?*F*F*M*M*T*TW`*`)h)h)j)jHHOOAs4>0077>>?@ 			0	1	
!!!! 	""]""]""]""]##]##] V r$2 zF r   