
    Ph                     p    d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ 	 dde	e   de	e   fdZy)    N)wraps)AnyCallableDictOptionalTuplefuncreturnc                 |      J t               dt        t           dt        t        t
        f   ddf fd       }|S )zJ
    Wrapper to initialize temp directory for distributed checkpoint.
    Nargskwargsr
   c                    t        j                         dk(  r#t        j                         }t	        d|        nd}|g}t        j                          t        j                  |       |d   | _        t        j                          	  | g|i | t        j                         dk(  r"t        j                  | j                  d       y y # t        j                         dk(  r"t        j                  | j                  d       w w xY w)Nr   zUsing temp directory:  T)ignore_errors)distget_ranktempfilemkdtempprintossyncbroadcast_object_listtemp_dirshutilrmtree)selfr   r   r   object_listr	   s        C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/testing/_internal/distributed/checkpoint_utils.pywrapperzwith_temp_dir.<locals>.wrapper   s     ==?a'')H*8*56Hj 		"";/#A
		A'''}}!#dmm4@ $t}}!#dmm4@ $s   	C ;D
)r   r   objectr   strr   )r	   r   s   ` r   with_temp_dirr"      sT     
4[AU6] Ad38n A A A* N    )N)r   r   r   	functoolsr   typingr   r   r   r   r   torch.distributeddistributedr   r"    r#   r   <module>r)      s@    
    7 7    $
8
hr#   