a
    ‘º”h  ã                   @   s0   d dl mZmZ d dlZeG dd„ deƒƒZdS )é    )ÚProtocolÚruntime_checkableNc                   @   sJ   e Zd ZdZeeee dœdd„Zee dœdd„Ze	e
jdœd	d
„ZdS )Ú_Checkpointablea  
    Interface for checkpointable objects.
    Implemented as a protocol, implicit subtyping is supported so subclasses do not need to inherit this explicitly.
    This is to allow arbitrary objects/tensor subclasses to hook into DCP seamlessly through implementing the interface.
    )ÚfqnÚobjectÚreturnc                 C   s   t dƒ‚dS )zI
        Return a list of WriteItems based on object's contents.
        z6_Checkpointable._create_write_items is not implementedN©ÚNotImplementedError)Úselfr   r   © r   úO/var/www/auris/lib/python3.9/site-packages/torch/distributed/_checkpointable.pyÚ__create_write_items__   s    ÿz&_Checkpointable.__create_write_items__)r   c                 C   s   t dƒ‚dS )zU
        Return a list of `ChunkStorageMetadata` based on object's contents.
        z5_Checkpointable._create_chunk_list is not implementedNr   )r
   r   r   r   Ú__create_chunk_list__   s    ÿz%_Checkpointable.__create_chunk_list__)Úindexr   c                 C   s   t dƒ‚dS )zI
        Return a 'torch.Tensor' shard based on 'MetadataIndex'.
        z4_Checkpointable._get_tensor_shard is not implementedNr   )r
   r   r   r   r   Ú__get_tensor_shard__   s    ÿz$_Checkpointable.__get_tensor_shard__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   Úlistr   r   ÚintÚtorchZTensorr   r   r   r   r   r      s   r   )Ztyping_extensionsr   r   r   r   r   r   r   r   Ú<module>   s   