
    ȅi                     r   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	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\
\\4   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Union)	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/james-whalen/.local/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: )r1   r   contiguous_formatr"   r&   channels_lastr'   preserve_formatr(   RuntimeErrorr-   r/   r0   r2   )selfr1   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/   r0   r2   r"   r&   r   r4   r'   r5   r(   r6   r7   r1   )r8   stater9   r1   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/   r0   r1   r2   )r   r-   r/   r0   r   r4   	is_pinned)r@   s    r    create_from_tensor#TensorProperties.create_from_tensorf   s;    ,,== ..11'')
 	
r   )r-   r/   r1   r2   r0   N)r   r   r   r   r   r   r   get_default_dtyper-   r   stridedr/   r0   boolr4   r1   r2   r:   r>   staticmethodTensorrD   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   rU   strosPathLiker   rV   rW   r   rP   rX   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   dictrY   STORAGE_TYPESr   r_   r   r`   ra   r   rb   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 )Nrh   rl   ri   )object__setattr__r   r   )r8   rh   ri   rl   s       r    __init__MetadataIndex.__init__   sN     	4,4%0tXuzz&/AB r   r   )NN)r   r   r   r   r   rY   r   ri   r   r   r   rl   intr   rp   r   r   r   r    r   r      s    S	H, $FEJJ$M5%FE3:F	 (, 	
C
C $
C Tz	
C 
Cr   r   )rZ   collections.abcr   dataclassesr   r   enumr   typingr   r   r   %torch.distributed.checkpoint.statefulr	   __all__r
   r"   r   r   r   rd   rc   rY   STATE_DICT_TYPEr   r   r   r   r   r    <module>rz      s   	 $ (    ;   4  C
 C
 C
L ' ' ' 	 	 	 +-AABsIO+, 5 5 5    $C C Cr   