
    `i1                        d dl Z d dlZd dlZd dlZd dlmZ dej        vrp ee          j        j        j        j        dz  	                                r<ej
                            d  e ee          j        j        j                             d dlmZ  e j        d          Zdeddfd	Zd
edej        ddfdZddZedk    r e             dS dS )    N)PathNO_LOCAL_GGUFzgguf-py)
GGUFReaderzgguf-set-metadatafilenamereturnc                     t          | d          }|j        d         }|d S |j        d         }d|j        |         d<   d S )Nr+ztokenizer.ggml.bos_token_idr      )r   fieldsdataparts)r   readerfield
part_indexs       r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/gguf/scripts/gguf_set_metadata.pyminimal_exampler      sJ    $''FM78E}AJ!"EK
A    r   argsc                    |                      |j                  }|Dt                              dt	          |j                   d           t          j        d           |j        r%| j        	                    |j        d                   nd }|Kt                              dt	          |j                   d|j                    t          j        d           |j
        |j        d                  d         } ||j                  }t                              dt	          |j                   d| d	|            ||k    rFt                              d
t	          |j                   d|            t          j        d           |j        rt          j        d           |j        st                              d           t                              d           t                              d           t#          d          }|dk    r.t                              d           t          j        d           ||j
        |j        d                  d<   t                              d           d S )Nz! Field z
 not found   r   z2! This tool only supports changing simple values, z has unsupported type z* Preparing to change field z from z to z- Key z  already set to requested value z&*** Warning *** Warning *** Warning **zP* Changing fields in a GGUF file can make it unusable. Proceed at your own risk.z<* 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'* Field changed. Successful completion.)	get_fieldkeyloggererrorreprsysexittypesgguf_scalar_to_npgetr   r   valueinfodry_runforcewarninginput)r   r   r   handlercurrent_value	new_valueresponses          r   set_metadatar,   ,   s   TX&&E}:TX:::;;; ?DkSf&**5;q>:::tG}$tx..}}pup{}}~~~K
1.q1M
##I
KKctDH~~cc]ccXaccddd	!!\T$(^^\\]\\]]]| : ?@@@ijjjUVVV+,,uKKBCCCHQKKK$-EK
1q!
KK9:::::r   c                     t          j        d          } |                     dt          d           |                     dt          d           |                     dt          d	           |                     d
dd           |                     ddd           |                     ddd           |                     t          t          j                  dk    rd ndg          }t          j	        |j
        rt          j        nt          j                   t                              d|j                    t!          |j        |j        rdnd          }t%          ||           d S )Nz(Set a simple value in GGUF file metadata)descriptionmodelzGGUF format model filename)typehelpr   zMetadata key to setr"   zMetadata value to setz	--dry-run
store_truezDon't actually change anything)actionr1   z--forcez%Change the field without confirmationz	--verbosezincrease output verbosityr   z--help)levelz* Loading: rr	   )argparseArgumentParseradd_argumentstr
parse_argslenr   argvloggingbasicConfigverboseDEBUGINFOr   r#   r/   r   r$   r,   )parserr   r   s      r   mainrC   L   s[   $1[\\\F
#?[\\\
#?TUUU
#?VWWW
L?_```
	L?fggg
GbcccS]]Q%6%6TTXJGGDt|MgmmNNNN
KK*dj**+++
4<$ACCTBBFr   __main__)r   N)r=   r6   osr   pathlibr   environ__file__parentexistspathinsertr9   ggufr   	getLoggerr   r   	Namespacer,   rC   __name__ r   r   <module>rR      sR     				 



       "*$$$$x..*?*F*M*TW`*`)h)h)j)j$HOOAss44>>07>??@@@      		.	/	/#c #d # # # #6; ;8+= ;$ ; ; ; ;@   $ zDFFFFF r   