U
    ÅmœdJ  ã                   @   s   d d„ Z dd„ ZdS )c                    sX   |d kr|d n|}| j |  d¡}d |¡d ‰ ‡ fdd„| d¡D ƒ}||j|< |S )NZ_RÚUú-ú,c                    s   g | ]}ˆ | ‘qS © r   )Ú.0Úg©Úprefixr   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scanpy/tools/_utils_clustering.pyÚ
<listcomp>   s     z!rename_groups.<locals>.<listcomp>)ÚobsZastypeÚjoinZiloc)ÚadataZ	key_addedÚrestrict_keyÚrestrict_categoriesÚrestrict_indicesÚgroupsZ
all_groupsZ
new_groupsr   r   r	   Úrename_groups   s    
r   c                 C   s|   t |d tƒstdƒ‚|D ]&}|| j| jjkrtd ||¡ƒ‚q| j|  |¡j}||d d …f }|d d …|f }||fS )Né    zCYou need to use strings to label categories, e.g. '1' instead of 1.z%'{}' is not a valid category for '{}')	Ú
isinstanceÚstrÚ
ValueErrorr   ÚcatÚ
categoriesÚformatÚisinÚvalues)r   r   r   Z	adjacencyÚcr   r   r   r	   Úrestrict_adjacency   s    ÿ
ÿr   N)r   r   r   r   r   r	   Ú<module>   s   