o
    ‹¨ÊhŽ  ã                   @   sL   d dl mZmZmZ d dlmZ d dlmZ ddl	mZ
 G dd„ de
ƒZdS )é    )Úabsolute_importÚdivisionÚunicode_literals)ÚTrie)Ú	text_typeé   c                   @   sV   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zddd„Zdd„ Z	dd„ Z
dd„ ZdS )r   c                 C   sj   t ƒ }| ¡ D ]}t|tƒstdƒ‚|D ]}| |¡ qqtd |¡ƒ| _| 	¡ D ]	\}}|| j|< q)d S )NzAll keys must be stringsÚ )
ÚsetÚkeysÚ
isinstancer   Ú	TypeErrorÚaddÚDATrieÚjoinÚ_dataÚitems)ÚselfÚdataÚcharsÚkeyÚcharÚvalue© r   úG/var/www/html/env/lib/python3.10/site-packages/html5lib/_trie/datrie.pyÚ__init__
   s   
ÿÿzTrie.__init__c                 C   s
   || j v S ©N©r   ©r   r   r   r   r   Ú__contains__   ó   
zTrie.__contains__c                 C   s
   t | jƒS r   )Úlenr   ©r   r   r   r   Ú__len__   r   zTrie.__len__c                 C   s   t ƒ ‚r   )ÚNotImplementedErrorr!   r   r   r   Ú__iter__   s   zTrie.__iter__c                 C   s
   | j | S r   r   r   r   r   r   Ú__getitem__   r   zTrie.__getitem__Nc                 C   ó   | j  |¡S r   )r   r
   ©r   Úprefixr   r   r   r
   "   ó   z	Trie.keysc                 C   r&   r   )r   Úhas_keys_with_prefixr'   r   r   r   r*   %   r)   zTrie.has_keys_with_prefixc                 C   r&   r   )r   Úlongest_prefixr'   r   r   r   r+   (   r)   zTrie.longest_prefixc                 C   r&   r   )r   Úlongest_prefix_itemr'   r   r   r   r,   +   r)   zTrie.longest_prefix_itemr   )Ú__name__Ú
__module__Ú__qualname__r   r   r"   r$   r%   r
   r*   r+   r,   r   r   r   r   r   	   s    
r   N)Ú
__future__r   r   r   Údatrier   r   Úsixr   Ú_baseÚABCTrier   r   r   r   Ú<module>   s
    