o
    àÙ·iÛ  ã                   @   s~   d dl Z d dlmZ ddlmZ ddlmZ ddlmZ 		dde jjeB dee	B d	eeB fd
d„Z
de jjeB fdd„ZdS )é    N)ÚAnyé   )ÚCachedContext)ÚCachedContextManager)ÚPrunedContextManagerÚmoduleÚcache_contextÚcontext_managerc                 C   s  | d u s|d u r
d S |d ur|  |¡ | ¡ | _| ¡ | _| ¡ | _| ¡ | _t	|t
ƒs.d S | ¡ | _| ¡ | _| ¡ | _| ¡ | _| ¡ | _| ¡ | _t| jƒdkrft| jƒdkrft| jƒt| jƒ | _nd | _t| jƒdkr„t| jƒdkr„t| jƒt| jƒ | _d S d | _d S )Nr   )Úset_contextÚget_cached_stepsÚ_cached_stepsÚget_residual_diffsÚ_residual_diffsÚget_cfg_cached_stepsÚ_cfg_cached_stepsÚget_cfg_residual_diffsÚ_cfg_residual_diffsÚ
isinstancer   Úget_pruned_stepsÚ_pruned_stepsÚget_cfg_pruned_stepsÚ_cfg_pruned_stepsÚget_pruned_blocksÚ_pruned_blocksÚget_cfg_pruned_blocksÚ_cfg_pruned_blocksÚget_actual_blocksÚ_actual_blocksÚget_cfg_actual_blocksÚ_cfg_actual_blocksÚlenÚsumÚ_pruned_ratioÚ_cfg_pruned_ratio)r   r   r	   © r$   ú`/home/ubuntu/.local/lib/python3.10/site-packages/cache_dit/caching/cache_blocks/pattern_utils.pyÚapply_stats	   s,   












r&   c                 C   s¼   | d u rd S t | dƒr| `t | dƒr| `t | dƒr| `t | dƒr"| `t | dƒr)| `t | dƒr0| `t | dƒr7| `t | dƒr>| `t | d	ƒrE| `	t | d
ƒrL| `
t | dƒrS| `t | dƒr\| `d S d S )Nr   r   r   r   r   r   r   r   r   r   r"   r#   )Úhasattrr   r   r   r   r   r   r   r   r   r   r"   r#   )r   r$   r$   r%   Úremove_stats/   s6   











ÿr(   )NN)ÚtorchÚtypingr   Úcache_contextsr   r   r   ÚnnÚModuleÚstrr&   r(   r$   r$   r$   r%   Ú<module>   s"    ý
ÿþ
ý&
ÿ