o
    i                     @   s   d Z ddlZddlZddlZ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lmZ dd	lmZ ed
 ZdedefddZdefddZedefddZdd Zdedeeef fddZdS )
    N)cache)Path)uuid4)Any   )ZEROGPU_HOME)Configcleanupspid
target_dirc                 C   s6   t |   }|jddd |t   }|j|dd d S )NT)parentsexist_ok)target_is_directory)CLEANUPS_BASE_DIRmkdirr   
symlink_to)r   r   cleanups_dircleanup r   E/home/ubuntu/.local/lib/python3.10/site-packages/spaces/zero/utils.pyregister_cleanup   s   
r   c                 C   s`   t |   }zdd | D }W n
 ty   Y d S w |D ]	}tj|dd qtj|dd d S )Nc                 S   s   g | ]}|  qS r   )readlink).0r   r   r   r   
<listcomp>   s    z"apply_cleanups.<locals>.<listcomp>T)ignore_errors)r   iterdirFileNotFoundErrorshutilrmtree)r   r   targetstargetr   r   r   apply_cleanups   s   
r"   returnc                  C   s\   t tj } |   }|D ]}|d}t|dkrq|d   S dd |D d d S )Nz	:devices:r      c                 S   s   g | ]}| d qS )z::)split)r   liner   r   r   r   0   s    z+self_cgroup_device_path.<locals>.<listcomp>r   )r   r	   zerogpu_proc_self_cgroup_path	read_textstrip
splitlinesr%   len)cgroup_contentcgroup_proc_linesr&   contentsr   r   r   self_cgroup_device_path%   s   
r/   c                   C   s   t dd d S )Nz	libc.so.6r   )ctypesCDLLmalloc_trimr   r   r   r   r2   3   s   r2   tokenc                 C   s&   |  d\}}}tt| dS )N.z==)r%   jsonloadsbase64urlsafe_b64decode)r3   _payloadr   r   r   jwt_payload7   s   r;   )__doc__r7   r0   r5   r   	functoolsr   pathlibr   uuidr   typingr   configr   r	   r   intr   r"   strr/   r2   dictr;   r   r   r   r   <module>   s$    