o
    H&i	                     @   s   d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlZd dlmZ g dZeG dd	 d	ZeG d
d dZeG dd dZeejef Zeeef Zeeeee	f f ZeG dd dZeddG dd dZdS )    )	dataclassfield)DictListUnionOptionalSequenceAny)TensorProperties)	StatefulTN)ShardedTensor)ChunkStorageMetadataTensorStorageMetadataBytesStorageMetadataMetadataMetadataIndexc                   @   s&   e Zd ZU dZejed< ejed< dS )r   zaEach chunk is expected to have the same properties of the TensorStorageMetadata that includes it.offsetssizesN)__name__
__module____qualname____doc__torchSize__annotations__ r   r   PC:\wamp64\www\opt\env\Lib\site-packages\torch/distributed/checkpoint/metadata.pyr      s   
 
r   c                   @   s,   e Zd ZU eed< ejed< ee ed< dS )r   
propertiessizechunksN)	r   r   r   r
   r   r   r   r   r   r   r   r   r   r      s   
 
r   c                   @   s   e Zd ZdS )r   N)r   r   r   r   r   r   r   r   #   s    r   c                   @   s6   e Zd ZU eeef ed< dZeed< dZ	eed< dS )r   Zstate_dict_metadataNplanner_datastorage_data)
r   r   r   r   strSTORAGE_TYPESr   r    r	   r!   r   r   r   r   r   -   s   
 r   T)frozenc                   @   st   e Zd ZU dZeed< 	 dZeej	 ed< 	 e
ddddZee ed< 	 		d
dedeee  dee fdd	ZdS )r   zIThis class represents a lookup key for items in a state dict or Metadata.fqnNoffsetF)hashcomparedefaultindexc                 C   s@   t | d| t | d| |d urt | dt| d S d S )Nr%   r*   r&   )object__setattr__r   r   )selfr%   r&   r*   r   r   r   __init__K   s
   zMetadataIndex.__init__)NN)r   r   r   r   r"   r   r&   r   r   r   r   r*   intr   r.   r   r   r   r   r   5   s"   
 
r   )dataclassesr   r   typingr   r   r   r   r   r	   Z0torch.distributed._shard.sharded_tensor.metadatar
   Z%torch.distributed.checkpoint.statefulr   r   Z'torch.distributed._shard.sharded_tensorr   __all__r   r   r   ZTensorZTENSOR_TYPEr#   r"   ZSTATE_DICT_TYPEr   r   r   r   r   r   <module>   s(     	