
    x-js                    d    d dl mZ d dlmZ d dlmZ g Z G d d          Z G d de          ZdS )	    )annotations)Any)corec                      e Zd ZddZdS )IndexnamestrreturnNonec                    || _         d S N)_name)selfr   s     n/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/distributed/fleet/dataset/index_dataset.py__init__zIndex.__init__   s    


    N)r   r	   r
   r   )__name__
__module____qualname__r    r   r   r   r      s(             r   r   c                       e Zd Zd+ fdZd,dZd,d	Zd,d
Zd,dZd-dZd.dZ	d/dZ
d0d1dZd2dZd3dZd4dZd5dZ	 	 d6d7d#Z	 d8d9d*Z xZS ):	TreeIndexr   r	   pathr
   r   c                   t                                          |           t          j                    | _        | j                            ||           | j                            |          | _        | j                                        | _	        | j        
                                | _        | j                                        | _        | j                                        | _        d | _        d S r   )superr   r   IndexWrapper_wrapperinsert_tree_indexget_tree_index_treeheight_heightbranch_branchtotal_node_nums_total_node_numsemb_size	_emb_size_layerwise_sampler)r   r   r   	__class__s      r   r   zTreeIndex.__init__   s    )++''d333]11$77
z((**z((** $
 : : < <,,.."&r   intc                    | j         S r   )r"   r   s    r   r!   zTreeIndex.height)   
    |r   c                    | j         S r   )r$   r-   s    r   r#   zTreeIndex.branch,   r.   r   c                    | j         S r   )r&   r-   s    r   r%   zTreeIndex.total_node_nums/   s    $$r   c                    | j         S r   )r(   r-   s    r   r'   zTreeIndex.emb_size2   s
    ~r   	list[Any]c                4    | j                                         S r   )r    get_all_leavesr-   s    r   r4   zTreeIndex.get_all_leaves5   s    z((***r   codes	list[int]c                6    | j                             |          S r   )r    	get_nodes)r   r5   s     r   r8   zTreeIndex.get_nodes8   s    z##E***r   levelc                6    | j                             |          S r   )r    get_layer_codes)r   r9   s     r   r;   zTreeIndex.get_layer_codes;   s    z))%000r   r   idstart_levelc                8    | j                             ||          S r   )r    get_travel_codes)r   r<   r=   s      r   r?   zTreeIndex.get_travel_codes>   s    z**2{;;;r   idsc                8    | j                             ||          S r   )r    get_ancestor_codes)r   r@   r9   s      r   rB   zTreeIndex.get_ancestor_codesA   s    z,,S%888r   ancestorc                8    | j                             ||          S r   )r    get_children_codes)r   rC   r9   s      r   rE   zTreeIndex.get_children_codesD   s    z,,Xu===r   childc                    g }||k    r5|                     |           t          |dz
  | j        z            }||k    5|S )N   )appendr+   r$   )r   rF   rC   ress       r   get_travel_pathzTreeIndex.get_travel_pathG   sP    hJJudl233E h 
r   dict[int, int]c                h    |                      ||          }t          t          ||                    S r   )rB   dictzip)r   r@   r9   r5   s       r   get_pi_relationzTreeIndex.get_pi_relationN   s-    ''U33CUOO$$$r   rH   layer_sample_countsstart_sample_layerseedc                    | j         J t          j        d| j                  | _         | j                             |||           d S )Nby_layerwise)r)   r   IndexSamplerr   init_layerwise_conf)r   rQ   rR   rS   s       r   init_layerwise_samplerz TreeIndex.init_layerwise_samplerR   sW     &..."&"3NDJ"O"O33!3T	
 	
 	
 	
 	
r   F
user_inputlist[list[int]]index_inputwith_hierarchyboolc                f    | j         t          d          | j                             |||          S )Nz$please init layerwise_sampler first.)r)   
ValueErrorsample)r   rY   r[   r\   s       r   layerwise_samplezTreeIndex.layerwise_sample^   s>     "*CDDD&--^
 
 	
r   )r   r	   r   r	   r
   r   )r
   r+   )r
   r2   )r5   r6   r
   r2   )r9   r+   r
   r6   )r   )r<   r+   r=   r+   r
   r6   )r@   r6   r9   r+   r
   r6   )rC   r+   r9   r+   r
   r6   )rF   r+   rC   r+   r
   r6   )r@   r6   r9   r+   r
   rL   )rH   r   )rQ   r6   rR   r+   rS   r+   r
   r   )F)rY   rZ   r[   r6   r\   r]   r
   rZ   )r   r   r   r   r!   r#   r%   r'   r4   r8   r;   r?   rB   rE   rK   rP   rX   ra   __classcell__)r*   s   @r   r   r      sq       	' 	' 	' 	' 	' 	'      % % % %   + + + ++ + + +1 1 1 1< < < < <9 9 9 9> > > >   % % % % #$	

 

 

 

 

   %	

 

 

 

 

 

 

 

 

r   r   N)	
__future__r   typingr   paddle.baser   __all__r   r   r   r   r   <module>rg      s    # " " " " "            
       
K
 K
 K
 K
 K
 K
 K
 K
 K
 K
r   