o
    پiX                     @   sZ   d dl Z d dlZd dlmZ d dlmZ e eZde	fddZ
ede	de	fd	d
ZdS )    N)contextmanager)Pathstemc                    sD   t tj} fdd||jfD }t|dksJ d| |d S )Nc                    s&   g | ]}|   d D ]}|qqS )z.*.so)glob).0dpr    L/home/ubuntu/.local/lib/python3.10/site-packages/torch_memory_saver/utils.py
<listcomp>   s   & z0get_binary_path_from_package.<locals>.<listcomp>   z<Expected exactly one torch_memory_saver_cpp library, found: r   )r   __file__parentlen)r   dir_package
candidatesr
   r	   r   get_binary_path_from_package	   s   
r   keyvaluec                 c   s    t j| d}|t j| < td|  d|  zd V  W t j|  |ks&J |t j| < td|  d|  d S t j|  |ksAJ |t j| < td|  d|  w )N zchange_env set key=z value=zchange_env restore key=)osenvirongetloggerdebug)r   r   	old_valuer
   r
   r   
change_env   s   


r   )loggingr   
contextlibr   pathlibr   	getLogger__name__r   strr   r   r
   r
   r
   r   <module>   s    
