o
    à¥µiU  ã                   @   s,   d dl mZ G dd„ dƒZG dd„ dƒZdS )é    )Údefaultdictc                   @   s   e Zd Zdd„ ZdS )ÚTreeNodec                 C   s   t tƒ| _d S ©N)r   r   Úchild)Úself© r   úI/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/utils/trie.pyÚ__init__   s   zTreeNode.__init__N)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r      s    r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTriec                 C   s   t ƒ | _|| _d S r   )r   ÚrootÚeos)r   r   r   r   r   r	      s   
zTrie.__init__c                 C   s   | j }|D ]}|j| }qd S r   )r   r   ©r   ÚwordÚcurÚcr   r   r   Úinsert   s   ÿzTrie.insertc                 C   s>   | j }|D ]}|j |¡}|d u r| jg  S qt|j ¡ ƒS r   )r   r   Úgetr   ÚlistÚkeysr   r   r   r   Úget_next_layer   s   ÿzTrie.get_next_layerN)r
   r   r   r	   r   r   r   r   r   r   r      s    r   N)Úcollectionsr   r   r   r   r   r   r   Ú<module>   s   