o
    CŒhI  ã                   @   s4   d Z dZdZdZG dd„ deƒZG dd„ deƒZdS )	zArtur Barseghyanz2013-2025 Artur Barseghyanz,MPL-1.1 OR GPL-2.0-only OR LGPL-2.1-or-later)ÚTrieÚTrieNodec                   @   s   e Zd ZdZdZdd„ ZdS )r   z&Class representing a single Trie node.©ÚchildrenÚ	exceptionÚleafÚprivatec                 C   s   d | _ d | _d| _d| _d S )NFr   ©Úself© r
   úI/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/tld/trie.pyÚ__init__   s   
zTrieNode.__init__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r
   r
   r
   r   r   
   s    r   c                   @   s8   e Zd ZdZdd„ Zdd„ Zddeded	d
fdd„Zd
S )r   zEAn adhoc Trie data structure to store tlds in reverse notation order.c                 C   s   t ƒ | _d| _d S )Né    )r   ÚrootÚ_Trie__nodesr   r
   r
   r   r      s   
zTrie.__init__c                 C   s   | j S )N)r   r   r
   r
   r   Ú__len__   s   zTrie.__len__FÚtldr   ÚreturnNc                 C   s    | j }| d¡}| ¡  |D ]0}| d¡r|dd … |_ n!|jd u r*i |_tƒ }n|j |¡}|d u r7tƒ }||j|< |}qd|_|rGd|_	|  j
d7  _
d S )NÚ.ú!é   T)r   ÚsplitÚreverseÚ
startswithr   r   r   Úgetr   r   r   )r	   r   r   ÚnodeÚ	tld_splitÚpartÚchildr
   r
   r   Úadd    s&   



zTrie.add)F)	r   r   r   r   r   r   ÚstrÚboolr#   r
   r
   r
   r   r      s
    r   N)Ú
__author__Ú__copyright__Ú__license__Ú__all__Úobjectr   r   r
   r
   r
   r   Ú<module>   s    