
    3j                     j   S SK r S SKJr  S SKJrJr  S SKJr  S SKJ	r	  S SK
r
S SKJr  / SQr\ " S S	5      5       r " S
 S\5      r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\\-  r\\\\	-  4   r\ " S S5      5       r\ " S S5      5       r\" SS9 " S S5      5       rg)    N)Sequence)	dataclassfield)Enum)Any)	StatefulT)ChunkStorageMetadataTensorStorageMetadataBytesStorageMetadataMetadataMetadataIndexTensorPropertiesStorageMetac                   V    \ rS rSr% Sr\R                  \S'   \R                  \S'   Srg)r	      zc
Each chunk is expected to have the same properties of the TensorStorageMetadata
that includes it.
offsetssizes N)	__name__
__module____qualname____firstlineno____doc__torchSize__annotations____static_attributes__r       _/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/distributed/checkpoint/metadata.pyr	   r	      s    
 ZZ::r   r	   c                   $    \ rS rSrSrSrSrSrSrg)_MEM_FORMAT_ENCODING"   z'Describe the memory format of a tensor.r         r   N)	r   r   r   r   r   TORCH_CONTIGUOUS_FORMATTORCH_CHANNELS_LASTTORCH_PRESERVE_FORMATr   r   r   r   r!   r!   "   s    1r   r!   c                   ,   \ rS rSr% Sr\" \R                  S9r\R                  \	S'   \" \R                  S9r\R                  \	S'   Sr\\	S'   \" \R                  S9r\R                  \	S	'   Sr\\	S
'   S rS r\S\R(                  SS 4S j5       rSrg)r   *   z)Properties used to create :class:`Tensor`default_factorydtype)defaultlayoutFrequires_gradmemory_format
pin_memoryc                 r   U R                   nU[        R                  :X  a  [        R                  nOXU[        R
                  :X  a  [        R                  nO3U[        R                  :X  a  [        R                  nO[        SU 35      eU R                  U R                  U R                  UU R                  4$ )NzInvalid torch.memory_format: )r0   r   contiguous_formatr!   r%   channels_lastr&   preserve_formatr'   RuntimeErrorr,   r.   r/   r1   )selfr0   mem_format_encodings      r   __getstate__TensorProperties.__getstate__9   s    **E333"6"N"Ne111"6"J"Je333"6"L"L!>}oNOO JJKKOO
 	
r   c                 B   Uu  U l         U l        U l        nU l        U[        R
                  :X  a  [        R                  nOXU[        R                  :X  a  [        R                  nO3U[        R                  :X  a  [        R                  nO[        SU 35      eX0l        g )Nz&Invalid torch.memory_format encoding: )r,   r.   r/   r1   r!   r%   r   r3   r&   r4   r'   r5   r6   r0   )r7   stater8   r0   s       r   __setstate__TensorProperties.__setstate__M   s     	
JKO "6"N"NN!33M $8$L$LL!//M $8$N$NN!11M89L8MN  +r   tensorreturnc                     [        U R                  U R                  U R                  [        R
                  U R                  5       S9$ )N)r,   r.   r/   r0   r1   )r   r,   r.   r/   r   r3   	is_pinned)r?   s    r   create_from_tensor#TensorProperties.create_from_tensorf   s;    ,,== ..11'')
 	
r   )r,   r.   r0   r1   r/   N)r   r   r   r   r   r   r   get_default_dtyper,   r   stridedr.   r/   boolr3   r0   r1   r9   r=   staticmethodTensorrC   r   r   r   r   r   r   *   s    3 u/F/FGE5;;G 7FELL7M4).u7N7N)OM5&&OJ
(+2 
5<< 
4F 
 
r   r   c                   N    \ rS rSr% \\S'   \R                  \S'   \\	   \S'   Sr
g)r
   q   
propertiessizechunksr   N)r   r   r   r   r   r   r   r   listr	   r   r   r   r   r
   r
   q   s      
**%&&r   r
   c                       \ rS rSrSrg)r   x   r   N)r   r   r   r   r   r   r   r   r   r   x   s    r   r   c                       \ rS rSr% Sr\\R                  -  S-  \S'   Sr	\S-  \S'   Sr
\S-  \S'   \" \S9r\\   \S'   Srg)	r      Ncheckpoint_idsave_idload_idr*   modulesr   )r   r   r   r   rT   strosPathLiker   rU   rV   r   rO   rW   r   r   r   r   r   r      sI    .2M3$t+2GS4ZGS4Zt4GT#Y4r   r   c                   r    \ rS rSr% Sr\\\4   \S'   Sr	\
\S'   Sr\
\S'   Sr\S-  \S'   Sr\S-  \S'   S	rg)
r      z5This class represents the metadata of the checkpoint.state_dict_metadataNplanner_datastorage_datastorage_metaversionr   )r   r   r   r   r   dictrX   STORAGE_TYPESr   r^   r   r_   r`   r   ra   r   r   r   r   r   r      sJ    ? c=011
 L#L#'+L+$+GS4Zr   r   T)frozenc                       \ rS rSr% Sr\\S'    Sr\R                  S-  \S'    \
" SSSS9r\S-  \S'      SS\S\\   S-  S\S-  4S	 jjrS
rg)r      zIThis class represents a lookup key for items in a state dict or Metadata.fqnNoffsetF)hashcomparer-   indexc                     [         R                  U SU5        [         R                  U SU5        Ub,  [         R                  U S[        R                  " U5      5        g g )Nrg   rk   rh   )object__setattr__r   r   )r7   rg   rh   rk   s       r   __init__MetadataIndex.__init__   sN     	4,4%0tXuzz&/AB r   r   )NN)r   r   r   r   r   rX   r   rh   r   r   r   rk   intr   ro   r   r   r   r   r   r      s    S	H, $FEJJ$M5%FE3:F	 (, 	
C
C $
C Tz	
C 
Cr   r   )rY   collections.abcr   dataclassesr   r   enumr   typingr   r   %torch.distributed.checkpoint.statefulr   __all__r	   r!   r   r
   r   rc   rb   rX   STATE_DICT_TYPEr   r   r   r   r   r   <module>ry      s   	 $ (    ;   4  C
 C
 C
L ' ' ' 	 	 	 &(<<sIO+, 5 5 5    $C C Cr   