o
    Ó0 i  ã                   @  sÜ   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
m
Z
 dejvrIe	eƒjjjjd  ¡ rIej d ee	eƒjjjƒ¡ d dlmZ e d¡Ze d	¡Zddd„Zddd„Zedkrleƒ  dS dS )é    )ÚannotationsN)ÚPath)ÚtqdmZNO_LOCAL_GGUFzgguf-py)Ú
GGUFReaderz	gguf-hashz$ef001206-dadc-5f6d-a15f-3359e577d4e5Úreaderr   ÚfilenameÚstrÚdisable_progress_barÚboolÚno_layerÚreturnÚNonec                 C  sž  t  ¡ }t  ¡ }t  ¡ }| tj¡ d}t| jdƒD ]\}}	|	j 	d¡r%qd}
|	j
D ]}|
|9 }
q*||
7 }qtd|dd|d}| jD ]_}	|	j 	d¡rKqBd}
|	j
D ]}|
|9 }
qP| |
¡ |sŒt  ¡ }| |	jj¡ td | ¡ ||	j¡ƒ t  ¡ }| |	jj¡ td	 | ¡ ||	j¡ƒ | |	jj¡ | |	jj¡ | |	jj¡ qB| ¡  td
 | ¡ |¡ƒ td | ¡ |¡ƒ td tj| ¡ d d… dd|¡ƒ d S )Nr   é   )z.attention.masked_biasz.attention.biasz.rotary_emb.inv_freqZHashingÚweightsT)ZdescÚtotalÚunitZ
unit_scaleÚdisablezsha1      {0}  {1}:{2}zsha256    {0}  {1}:{2}zsha1      {0}  {1}zsha256    {0}  {1}zuuid      {0}  {1}é   é   )ÚbytesÚversion)ÚhashlibÚsha1Úsha256ÚupdateÚUUID_NAMESPACE_LLAMA_CPPr   Ú	enumerateZtensorsÚnameÚendswithÚshaper   ÚdataÚprintÚformatÚ	hexdigestÚcloseÚuuidÚUUIDÚdigest)r   r   r	   r   r   r   Zuuidv5_sha1Ztotal_weightsÚnZtensorZsum_weights_in_tensorÚdimÚbarZ
sha1_layerZsha256_layer© r+   úb/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/gguf/scripts/gguf_hash.pyÚ	gguf_hash   sD   






*r-   c                  C  sª   t jdd} | jdtdd | jdddd	 | jd
ddd	 | jdddd	 |  ttjƒdkr1d ndg¡}tj	|j
r=tjntjd t|jdƒ}t||j|j |jƒ d S )NzDump GGUF file metadata)ÚdescriptionÚmodelzGGUF format model filename)ÚtypeÚhelpz
--no-layerÚ
store_truezexclude per layer hash)Úactionr1   z	--verbosezincrease output verbosityz--progressbarzenable progressbarr   z--help)ÚlevelÚr)ÚargparseÚArgumentParserÚadd_argumentr   Ú
parse_argsÚlenÚsysÚargvÚloggingÚbasicConfigÚverboseÚDEBUGÚINFOr   r/   r-   Zprogressbarr   )ÚparserÚargsr   r+   r+   r,   ÚmainY   s   rD   Ú__main__)
r   r   r   r   r	   r
   r   r
   r   r   )r   r   )Ú
__future__r   r%   r   r=   r6   Úosr;   Úpathlibr   r   ÚenvironÚ__file__ÚparentÚexistsÚpathÚinsertr   Zggufr   Ú	getLoggerÚloggerr&   r   r-   rD   Ú__name__r+   r+   r+   r,   Ú<module>   s&   "



;
ÿ