Ë
    g^(hH  ã                   ó®   — U d dl mZ d dlmZmZ d dlmZ d dlmc m	c m
Z d dlmc m	c mZ d dlmZmZ d dlmZmZmZmZ g Zee   ed<    G d„ d«      Zy)	é    )ÚFuture)ÚAnyÚOptionalN)ÚMetadataÚSTATE_DICT_TYPE)ÚLoadPlannerÚSavePlannerÚStorageReaderÚStorageWriterÚ__all__c                   ó¢   — e Zd ZdZddddddœdededeej                     d	e	d
e
dee   dee   fd„Zdedefd„Zdedefd„Zdeeef   ddfd„Zy)Ú_Checkpointeraí  This base class specefies a high level API for saving and loading
    distributed `state_dict` 's. It provides an abstraction over the low-level APIs
    provided by :py:mod:`torch.distributed.checkpoint.storage`, essentially calling
    :py:meth: `torch.distributed.state_dict_saver.save` and
    :py:meth: `torch.distributed.state_dict_loader.load` with the provided storage
    readers and writers.

    .. warning::
        This feature is experimental and subject to removal/change.

    Nr   F)Úprocess_groupÚcoordinator_rankÚno_distÚload_plannerÚsave_plannerÚstorage_writerÚstorage_readerr   r   r   r   r   c                óf   — || _         || _        || _        || _        || _        || _        || _        y)a{  Initializes the Checkpointer instance.

        Args:
            storage_writer: Instance of StorageWrite use to perform writes.
            storage_reader: StorageReader used to load data from.
            process_group: ProcessGroup to be used for cross-rank synchronization.
            coordinator_rank: Rank to use to coordinate the checkpoint. rank0 is used by default.
            no_dist: If ``True``, distributed checkpoint will not load in SPMD style. (Default: ``False``)
            loader_planner: Instance of LoadPlanner to use when loading.
            save_planner: Instance of SavePlanner to use when saving.
        N)r   r   r   r   r   r   r   )Úselfr   r   r   r   r   r   r   s           úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/distributed/checkpoint/_checkpointer.pyÚ__init__z_Checkpointer.__init__    s;   € ð, -ˆÔØ,ˆÔØ*ˆÔØ 0ˆÔØˆŒØ(ˆÔØ(ˆÕó    Ú
state_dictÚreturnc                 óœ   — t        j                  || j                  | j                  | j                  | j
                  | j                  ¬«      S )ziCalls :py:meth: `torch.distributed.state_dict_saver.save`. Utilizing values passed during initialization.)r   r   r   Úplanner)ÚsaverÚsaver   r   r   r   r   ©r   r   s     r   r    z_Checkpointer.save>   sC   € ô
 �z‰zØØ×ÑØ×,Ñ,Ø!×2Ñ2Ø—L‘LØ×%Ñ%ô
ð 	
r   c                 óp   — t        j                  || j                  | j                  | j                  ¬«      S )zä
        Calls :py:meth: `torch.distributed.state_dict_saver._async_save`. Utilizing values passed during initialization.

        Returns:
            Future: A future holding the resultant Metadata object from `save`.
        )r   r   r   )r   Ú
async_saver   r   r   r!   s     r   r#   z_Checkpointer.async_saveL   s5   € ô ×ÑØØ×.Ñ.Ø×,Ñ,Ø×%Ñ%ô	
ð 	
r   c                 ór   — t        j                  || j                  | j                  | j                  ¬«       y)zjCalls :py:meth: `torch.distributed.state_dict_loader.load`. Utilizing values passed during initialization.)r   r   r   N)ÚloaderÚloadr   r   r   r!   s     r   r&   z_Checkpointer.load]   s,   € ä�‰ØØ×.Ñ.Ø×,Ñ,Ø×%Ñ%ö		
r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   r   ÚdistÚProcessGroupÚintÚboolr   r	   r   r   r   r    r   r#   ÚdictÚstrr   r&   © r   r   r   r      s¿   „ ñ
ð" 6:Ø !ØØ.2Ø.2ò)à%ð)ð &ð)ð
   × 1Ñ 1Ñ2ð)ð ð)ð ð)ð ˜{Ñ+ð)ð ˜{Ñ+ó)ð<
à#ð
ð 
ó
ð
à#ð
ð 
ó
ð"
˜t C¨ H™~ð 
°$ô 
r   r   )Úconcurrent.futuresr   Útypingr   r   Útorch.distributedÚdistributedr+   Ú.torch.distributed.checkpoint.state_dict_loaderÚ
checkpointÚstate_dict_loaderr%   Ú-torch.distributed.checkpoint.state_dict_saverÚstate_dict_saverr   Ú%torch.distributed.checkpoint.metadatar   r   Ú$torch.distributed.checkpoint.storager   r	   r
   r   r   Úlistr0   Ú__annotations__r   r1   r   r   ú<module>r?      sC   ðÞ %ß  å  ß ?Ó ?ß =Ó =ß K÷ó ð €ˆˆc‰Ó ÷Q
ò Q
r   