
    x-j-                     b    d dl mZ  G d d          Z G d de          Z G d d          ZdS )	   )CompiledProgramc                       e Zd Zd Zd ZdS )SerializableBasec                     t           NNotImplementedErrorselfpaths     p/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/base/incubate/checkpoint/checkpoint_saver.py	serializezSerializableBase.serialize       !!    c                     t           r   r   r
   s     r   deserializezSerializableBase.deserialize   r   r   N)__name__
__module____qualname__r   r    r   r   r   r      s2        " " "" " " " "r   r   c                        e Zd Zd Zd Zd ZdS )PaddleModelc                     || _         || _        || _        t          |t                    r|j        | _        d| _        d S )N_paddle_fleet_param__)_exe_origin_program_program
isinstancer   
_file_name)r   exeprograms      r   __init__zPaddleModel.__init__   s?    	&g// 	-#,DM1r   c                 N    ddl m}  || j        || j        | j                   d S )N    )save_persistablesexecutordirnamemain_programfilename)paddle.distributed.ior%   r   r   r   )r   r   r%   s      r   r   zPaddleModel.serialize$   J    ;;;;;;Y_		
 	
 	
 	
 	
 	
r   c                 N    ddl m}  || j        || j        | j                   d S )Nr$   )load_persistablesr&   )r+   r.   r   r   r   )r   r   r.   s      r   r   zPaddleModel.deserialize.   r,   r   N)r   r   r   r"   r   r   r   r   r   r   r      sA        2 2 2
 
 

 
 
 
 
r   r   c                   8    e Zd Zd Z	 d	dZ	 	 	 d
dZd Zd ZdS )CheckpointSaverc                 "    || _         d| _        d S )N__paddle_checkpoint__)_fs_checkpoint_prefix)r   fss     r   r"   zCheckpointSaver.__init__:   s    "9r   N.cachec                    | j                             |          s| j                             |           n(| j                             |          sJ d| d            |                     |          }|dk     rd}|dz  }| d| j         d| }| d}|}dd	lm}	  |	            }
d
}| j                                         ri| d| j         d| d}|| d| }|
                    |          s|
                    |           n#|
                    |          sJ d| d            |}|D ]}|	                    |           | j                                         rJ| j         
                    |           | j                             ||           |

                    |           | j                             ||           ||fS )zh
        Serialize objects in slists to path
        Return really saved path and checkpoint_no
        zpath:z must be a directoryr$      /.z.tmpLocalFSNz.saved_cachezcache path:)r3   is_existmkdirsis_dir_get_last_checkpoint_nor4   !paddle.distributed.fleet.utils.fsr=   need_upload_downloadr   deleteuploadmv)r   r   slists
trainer_idlocal_cache_pathmax_no	real_pathtmp_path
saved_pathr=   local_fs
cache_pathss                r   save_checkpointzCheckpointSaver.save_checkpoint>   s,    x  && 	MHOOD!!!!8??4((LL*L$*L*L*LLL(--d33A::F!@@d5@@@@	%%%
======799
8((** 	$,]]t/F]]]]]J% *99Z99
$$Z00 
++++z22  B*BBB 2 $J 	$ 	$AKK
####8((** 	(HOOH%%%HOOJ111OOJ'''Hi(((&  r   Tc                    |2|                      |          }|s|dk    s
J d            |dk     rdS |}nt          |t                    sJ |dk    sJ ddlm}  |            }	| j                                        rm| d| j         d| d}
||
 d| }
|	                    |          s|		                    |           |	                    |
          r|	
                    |
           | d| j         d| }|}| j                                        r| j                            ||
           |
}|D ]}|                    |           | j                                        r|
r|	
                    |
           |S )zY
        Deserialize objects in slists from path
        Return really load path
        Nr$   zCan't find checkpointr<   r:   r;   z.load_cache)rA   r   intrB   r=   r3   rC   r4   r>   r?   rD   downloadr   )r   r   rG   rH   rI   checkpoint_noignore_emptyrJ   r=   rN   rO   rK   	load_pathrP   s                 r   load_checkpointzCheckpointSaver.load_checkpointr   s     11$77F <{{{$;{{{zzt"MMmS11111 A%%%%======7998((** 		,,cct/FcccccJ% *99Z99
$$%566 2 0111  ,, ,
+++GGd5GGGG		8((** 	#Hi444"I 	% 	%AMM)$$$$8((** 	(z 	(OOJ'''r   c                 J   g }| j                             |          }|D ]o}|                    d          }t          |          dk    r+|d         | j        k    r=	 t          |d                   }|                    |           i#  Y mxY w|                                 |S )Nr;      r$   r9   )r3   	list_dirssplitlenr4   rS   appendsort)r   	root_pathadirsdgns          r   get_checkpoint_noz!CheckpointSaver.get_checkpoint_no   s    x!!),, 	 	AA1vv{{tt...!II	s   *BBc                 f    |                      |          }t          |          dk    r|d         S dS )z*
        only get the first depth
        r$   r8   )rf   r]   )r   r`   ra   s      r   rA   z'CheckpointSaver._get_last_checkpoint_no   s4     ""9--q66A::R5Lrr   )Nr6   )r6   NT)r   r   r   r"   rQ   rX   rf   rA   r   r   r   r0   r0   9   s|        : : :
 ?G2! 2! 2! 2!r "5 5 5 5n  (    r   r0   N)compilerr   r   r   r0   r   r   r   <module>ri      s    ( ' ' ' ' '" " " " " " " "
 
 
 
 
" 
 
 
>L L L L L L L L L Lr   