o
    5ti                     @   s   d dl Z d dlZd dlZd dlZeeZejej	e
ZedZer(ene dZdZe ed Zde dZdd	ed
efddZdd ZddefddZdS )    NLM_HARNESS_CACHE_PATHz/.cachez EleutherAI-lm-evaluation-harnesszutf-8.z.pickleF	file_namecachec                 C   s   |sd S z+t  d|  t }t|d}t| }|W  d    W S 1 s(w   Y  W d S  tyA   t|  d Y d S w )N/rbz is not cached, generating...)	PATHFILE_SUFFIXopendillloadsread	Exceptioneval_loggerdebug)r   r   pathfilecached_task_dict r   I/home/ubuntu/.local/lib/python3.10/site-packages/lm_eval/caching/cache.pyload_from_cache   s   (r   c                 C   sz   t jtst t t d|  t }td| d t|d}|	t
| W d    d S 1 s6w   Y  d S )Nr   zSaving z to cache...wb)osr   existsr   mkdirr	   r   r   r
   writer   dumps)r   obj	file_pathr   r   r   r   save_to_cache)   s   
"r    keyc                 C   sD   t t}|D ]}|| r|trt d| }t | qd S )Nr   )r   listdirr   
startswithendswithr	   unlink)r!   filesr   r   r   r   r   delete_cache5   s   

r'   )F)r    )hashlibloggingr   r   	getLogger__name__r   r   dirnamerealpath__file__
MODULE_DIRgetenvOVERRIDE_PATHr   
HASH_INPUTsha256encode	hexdigestHASH_PREFIXr	   strboolr   r   r'   r   r   r   r   <module>   s    

