
    vj/
              	           d dl mZmZmZmZ d dlmZ dddddddd	d
igiZdddddZdefdZ	dedee         fdZ
dedefdZdedededee         fdZdedededefdZdedeeef         fdZdS )    )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                 >    |                      t          d           dS )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    r/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/modelscope/trainers/default_config.py	merge_cfgr      s$     ,E:::::    returnc                     t          | j        dg                                           }t                                          D ]-\  }}t          | ||          }||                    |           .|S )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'   &   sp    CIw++0022E 3 9 9 ; ;  	9!#y)<<LLLr   c                 ^   d| j         vr| S i }| j         j        D ]E}|st          |          \  }}|t          vr!||t          |         <   |                                 Ft          t          t          | j         j                            | j         _        |                     |d           | S )Nr   Fr   )	r   r   _hook_splitr    clearlistfilterboolr   )r   key_chain_mapr&   keyvalues        r   
update_cfgr1   /   s    ci
M	   	 &&
U)))27)#./

6$	8899CIOU333Jr   r%   r$   c                     t          | ||          sd S |                     |          }d|i}|                    |           |S Nr
   )_check_basic_hooksafe_getupdate)r   r%   r$   hook_paramsr&   s        r   r"   r"   @   sM    S)Y77 tY//KIDKKKr   c           
          |                      |          dS t          t          fdt          | j        dg                               }t          |          dk    sJ d| d d            dS )	NFc                     | d         k    S r3    )r&   r$   s    r   <lambda>z#_check_basic_hook.<locals>.<lambda>N   s    DLI5 r   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   s    
||I&u5555sy'2..	0 	01 1E u::??? TY T T-6T T T??? 4r   r&   c                 X    |                                  } |                     d          | fS 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>rB      s   / . . . . . . . . . . . * * * * * *    !  	
  &/0)	  ;6 ; ; ; ;V T
    F v    "F s "%*24.   	6 	c 	c 	d 	 	 	 	"d "uS$Y/ " " " " " "r   