
    9i/
              	           S SK JrJrJrJr  S SKJr  SSSS.SSS.S	S
0/0rSSSSS.rS\4S jr	S\S\\   4S jr
S\S\4S jrS\S\S\S\\   4S jrS\S\S\S\4S jrS\S\\\4   4S jrg)    )DictListOptionalTuple)Configztrain.hooksCheckpointHook   )typeintervalTextLoggerHook
   r
   IterTimerHookztrain.loggingztrain.checkpoint.periodztrain.checkpoint.bestzevaluation.period)r   r   BestCkptSaverHookEvaluationHookcfgc                 ,    U R                  [        SS9  g)zMerge the default config into the input cfg.

This function will pop the default CheckpointHook when the BestCkptSaverHook exists in the input cfg.

Aegs:
    cfg: The input cfg to be merged into.
FforceN)merge_from_dictDEFAULT_HOOKS_CONFIG)r   s    b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/trainers/default_config.py	merge_cfgr      s     ,E:    returnc                     [        U R                  S/ 5      R                  5       n[        R	                  5        H'  u  p#[        XU5      nUc  M  UR                  U5        M)     U$ )Nhooks)getattrtraincopy_HOOK_KEY_CHAIN_MAPitems_key_chain_to_hookappend)r   r   	hook_type	key_chainhooks        r   merge_hooksr'   &   sX    CIIw+002E 3 9 9 ;	!#)<LL !< Lr   c                 z   SU R                   ;  a  U $ 0 nU R                   R                   H@  nU(       d  M  [        U5      u  p4U[        ;  a  M%  XA[        U   '   UR	                  5         MB     [        [        [        U R                   R                  5      5      U R                   l        U R                  USS9  U $ )Nr   Fr   )	r   r   _hook_splitr    clearlistfilterboolr   )r   key_chain_mapr&   keyvalues        r   
update_cfgr1   /   s    cii
M		 &
))27)#./

   6$		89CIIOU3Jr   r%   r$   c                 v    [        XU5      (       d  g U R                  U5      nSU0nUR                  U5        U$ Nr
   )_check_basic_hooksafe_getupdate)r   r%   r$   hook_paramsr&   s        r   r"   r"   @   s;    SY77Y/KIDKKKr   c           
         ^ U R                  U5      c  g[        [        U4S j[        U R                  S/ 5      5      5      n[        U5      S:X  d   SU ST S35       eg)	NFc                    > U S   T:H  $ r3    )r&   r$   s    r   <lambda>#_check_basic_hook.<locals>.<lambda>N   s    DLI5r   r   r   zThe key_chain zG and the traditional hook cannot exist at the same time, please delete z in the configuration file.T)r5   r+   r,   r   r   len)r   r%   r$   r   s     ` r   r4   r4   J   ss    
||I&5syy'2.	01E u:? TnYK 8--6K7RT T? r   r&   c                 H    U R                  5       n U R                  S5      U 4$ r3   )r   pop)r&   s    r   r)   r)   V   s!    99;D88FT!!r   N)typingr   r   r   r   modelscope.utils.configr   r   r    r   r'   r1   strr"   r-   r4   r)   r:   r   r   <module>rC      s    / . *   ! 	
  &/0)	 ;6 ;V T
 F v "F s "%*24.	6 	c 	c 	d 	"d "uS$Y/ "r   