
    9j              
          U d dl Z d dlZd dlZd dlmZ d dlmZ d dlZdZe	e
d<   dZdZdZd	Zd
ZdZdZdZdZdZej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  d	ZdZe e
d<   dZ!d	Z"dZ#dZ$dZ%dZ&e G d d             Z'	 d%de(de(de(dz  de	fdZ)de jT                  de+ee(f   fd Z,d!e	dejZ                  fd"Z.d#ededz  fd$Z/y)&    N)	dataclass)Anyzmodel.safetensors.index.json_metadata_fnzmodel-{cpt_idx}-of-{num_files}z0shard-{shard_idx}-model-{cpt_idx}-of-{num_files}z.safetensorsDCP_SHARDING_INFO__metadata__saved_offsetsshapedatadtypedata_offsets)	F16F32F64I8U8I16I32I64BF16g      ?HF_DCP_VERSIONDCP_VERSIONformatpt   shardedc                   X    e Zd ZU dZeed<   ej                  ed<   ej                  ed<   y)_HFStorageInfoz#This is the per entry storage info.relative_pathr	   r   N)	__name__
__module____qualname____doc__str__annotations__torchSizer        f/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torch/distributed/checkpoint/_hf_utils.pyr   r   1   s    -::;;r(   r   indexlargest_indexshard_indexreturnc                     |Ot         j                  | j                  d      |  j                  d      | j                  d            t        z   S t        j                  |  j                  d      | j                  d            t        z   S )N   )	shard_idxcpt_idx	num_files)r1   r2   )SHARDED_FILE_NAMEr   zfillSUFFIX	FILE_NAME)r*   r+   r,   s      r)   _gen_file_namer7   :   s     $$(M003 '((+*O2215 % 
 	
  '((+-7O7OPQ7R   	
r(   
file_bytesc                     | j                  t              }t        j                  d|      d   }| j                  |      }t	        j
                  |      }||t        z   fS )Nz<Qr   )readNUM_BYTES_FOR_HEADER_LENstructunpackjsonloads)r8   header_len_bytes
header_lenheader_jsonmetadatas        r)   _get_safetensors_file_metadatarD   O   sW     "'?@t%56q9J//*-Kzz+&Hj#;;<<r(   	dtype_strc                 b    	 t         |    }|S # t        $ r t        j                         }Y |S w xY wN)	DTYPE_MAPKeyErrorr%   get_default_dtype)rE   r   s     r)   
_get_dtyperK   \   s<    *)$ L  *'')L*s   	 ..rC   c                 n    t         | v r-| t            }t        |v rt        j                  |t                 S y rG   )DEFAULT_EXTRA_METADATA_KEYCUSTOM_METADATA_KEYr>   r?   )rC   custom_metadatas     r)   _get_dcp_custom_metadatarP   e   s5    !X-"#=>/1::o.ABCCr(   rG   )0ior>   r<   dataclassesr   typingr   r%   r   r#   r$   r6   r3   r5   rN   rM   SAVED_OFFSETS_KEY	SHAPE_KEYDATA_KEY	DTYPE_KEYDATA_OFFSETS_KEYfloat16float32float64int8uint8int16int32int64bfloat16rH   r   floatDCP_VERSION_KEYDCP_SHARDING_INFO_KEY
FORMAT_KEYFORMAT_VALUEr;   SHARDED_DIR_NAMEr   intr7   IOBasetuplerD   r   rK   rP   r'   r(   r)   <module>rk      sf   	   !   3c 2,	F 	 * + # 		!  ======
**
++;;;;;;NN
	  + 
      ?C

"
14t

*
=ryy 
=U38_ 
=# %++ s sTz r(   