Ë
    g^(há  ã                   óv   — d dl mZ ddlmZ ddlmZmZmZmZm	Z	 	 e
eef   Zdedeeef   fd„Zdededefd	„Zy
)é    )ÚSTATE_DICT_TYPEé   )Ú_version)ÚOBJ_PATHÚset_elementÚSTATE_DICT_ITEMÚtraverse_state_dictÚtraverse_state_dict_v_2_3Ú
state_dictÚreturnc                 óÊ   ‡‡— i Ši Šdt         dt        ddfˆˆfd„}t        j                  duxr t        j                  dk(  }|rt	        | |«       ‰‰fS t        | |«       ‰‰fS )a‹  
    Flatten ``state_dict`` made of nested dicts and lists into a top level dictionary.

    Use ``unflatten_state_dict`` to revert this process.
    Returns:
        A tuple with the flatten state_dict and a mapping from original to new state_dict.
    N.B. The new keys are derived from the object paths, joined by dot.
        For example: ``{ 'a': {'b':...}}`` results in the key `a.b`.
    ÚpathÚvaluer   Nc                 ó|   •— dj                  t        t        | «      «      }|‰v rt        d|› �«      ‚|‰|<   | ‰|<   y )Nú.zduplicated flatten key )ÚjoinÚmapÚstrÚ
ValueError)r   r   Únew_fqnÚ	flattenedÚmappingss      €€úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/distributed/checkpoint/_nested_dict.pyÚ	flat_copyz%flatten_state_dict.<locals>.flat_copy*   sF   ø€ Ø—(‘(œ3œs D›>Ó*ˆØ�iÑÜÐ6°w°iÐ@ÓAÐAØ"ˆ	�'ÑØ ˆ�Òó    Ú2_3)r   r   r   Ú_derived_versionr
   r	   )r   r   Ú	use_v_2_3r   r   s      @@r   Úflatten_state_dictr      s�   ù€ ð "$€IØ "€Hð!œð !¬ð !¸Tö !ô 	×!Ñ!¨Ð-ÒT´(×2KÑ2KÈuÑ2Tð ñ Ü! *¨iÔ8ð �hÐÐô 	˜J¨	Ô2Ø�hÐÐr   Úmappingc                 óZ   — i }| j                  «       D ]  \  }}t        |||   |«       Œ |S )zaRestore the original nested state_dict according to ``mapping`` and the flattened ``state_dict``.)Úitemsr   )r   r    ÚnestedÚkeyr   s        r   Úunflatten_state_dictr%   >   s:   € ð !€FØ ×&Ñ&Ó(ò 1‰
ˆˆUÜ�F˜G C™L¨%Õ0ð1à€Mr   N)Ú%torch.distributed.checkpoint.metadatar   Ú r   Ú	_traverser   r   r   r	   r
   Údictr   ÚFLATTEN_MAPPINGÚtupler   r%   © r   r   ú<module>r-      sj   ðõ Bå ÷õ ðð �s˜H�}Ñ%€ð Øð à
ˆ?˜OÐ+Ñ,ó ðFØðØ*9ðàôr   