
    >Ci                       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S jrSS	 jr\S
:X  a  \" 5         gg)    )annotationsN)tqdm)PathNO_LOCAL_GGUFzgguf-pyzgguf-convert-endianc                   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                  [        R                  R                  [        R                  R                  [        R                  R                  [        R                  R                   [        R                  R"                  4;  d  M  [%        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 R0                  5       S35        [3        U R0                  R5                  5       5       Hl  u  px[
        R                  SUS S['        UR                  5       S[/        UR6                  5       35        UR6                   H  n	U	R9                  SS9  M     Mn     [
        R                  S [/        U R                  5       S35        [3        [;        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>                  R6                   H  n	U	R9                  SS9  M     UR                  [        R                  R                  :X  a  S'n[/        UR@                  5      U-  n[;        [C        U5      S(S)S*9=n Hh  nX-  nUR@                  UUS+-    RE                  [F        RH                  S,9nUR9                  SS9  US--  S
:X  d  MN  URK                  S.X-
  U-   S/35        Mj     GOeUR                  [        R                  R                   :X  Ga  S0nUR@                  RL                   H  nUU-  nM
     UR@                  RO                  U5        S1n[/        UR@                  5      U-  n[;        [C        U5      S(S)S*9=n H  nX-  nUR@                  UUS+-    RE                  [F        RH                  S,9nUR9                  SS9  UR@                  US+-   US2-    RE                  [F        RH                  S,9nUR9                  SS9  US--  S
:X  d  M  URK                  S.X-
  U-   S/35        M     GO UR                  [        R                  R"                  :X  a  S0nUR@                  RL                   H  nUU-  nM
     UR@                  RO                  U5        S3n[/        UR@                  5      U-  n[;        [C        U5      S(S)S*9=n Hk  nX-  nUR@                  US4-   US3-    RE                  [F        RH                  S,9nUR9                  SS9  US--  S
:X  d  MQ  URK                  S.X-
  U-   S/35        Mm     OUR@                  R9                  SS9  U
RK                  U5        GM     [
        R                  S55        g )6N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: T)inplacez* Converting tensors (zConverting tensor)desczConverting tensor z, type=z, elements= "   zByte-swapping BlocksF)r   leave   )dtypei zByte-swapping Blocks []               z* Completion)(	endianessname
byte_orderorderupperloggerinfosysexittensorstensor_typeggufGGMLQuantizationTypeF32F16Q8_0Q4_KQ6_K
ValueErrorreprdry_runwarninginputlenfields	enumeratevaluespartsbyteswapr   
n_elementsfielddatarangeviewnpuint16set_descriptionshaperesize)readerargsfile_endianhost_endianr   tensorresponseidxr:   partpbarlog_message
block_sizen_blocks
inner_pbar	block_num
block_offsdeltanewshapeis                       Z/home/james-whalen/.local/lib/python3.13/site-packages/gguf/scripts/gguf_convert_endian.pyconvert_byteorderrV      s[   ""''KC*h6eH!::1Ktzz7G7G7IE
KK*[M)HU\]^(/FGH
KKAB..%%))%%))%%**%%**%%**&
 
 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' ' !:!:!?!??
 J6;;':5H,0xG]ej,kkjk	&3
 JzA~>CC"))CTt, v%*..1GI]bjHjGkkl/mn l 4#<#<#A#AA H[[&&A ' KKx(J6;;':5H,0xG]ej,kkjk	&3
 JzA~>CC"))CTt,JN:>BGGbiiGXt, v%*..1GI]bjHjGkkl/mn l 4#<#<#A#AA H[[&&A ' KKx(J6;;':5H,0xG]ej,kkjk	&3
 J$4Z#5EFKKRTR[R[K\t, v%*..1GI]bjHjGkkl/mn l KK   .[)q Yt KK    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helpr   )biglittler   zRequested byte order)r[   choicesr\   z	--dry-run
store_truezDon't actually change anything)actionr\   z	--verbosezincrease output verbosityr   z--help)levelz* Loading: rzr+)argparseArgumentParseradd_argumentstr
parse_argsr3   r#   argvloggingbasicConfigverboseDEBUGINFOr!   r"   rZ   r'   
GGUFReaderr0   rV   )parserrD   rC   s      rU   mainrq      s    $$1OPF
c)   c#>#   L-   L?Z[S]Q%6TXJGDt||gmmN
KK+djj\*+__TZZ$GFf#rW   __main__)rC   zgguf.GGUFReaderrD   zargparse.NamespacereturnNone)rs   rt   )
__future__r   rj   rd   osr#   r   pathlibr   numpyr>   environ__file__parentexistspathinsertrg   r'   	getLoggerr!   rV   rq   __name__ rW   rU   <module>r      s    "   	 
    "**$$x.*?*?*F*F*M*M*T*TW`*`)h)h)j)jHHOOAs4>0077>>?@ 			0	1C L$2 zF rW   