U ��.e��@sLddlmZmZmZddlmZddlmZddl mZ Gdd�de �ZdS)�)�absolute_import�division�unicode_literals)�Trie)� text_type�c@sVeZdZdd�Zdd�Zdd�Zdd�Zd d �Zdd d �Zdd�Z dd�Z dd�Z d S)rcCsjt�}|��D]*}t|t�s$td��|D]}|�|�q(qtd�|��|_|� �D]\}}||j|<qRdS)NzAll keys must be strings�) �set�keys� isinstancer� TypeError�add�DATrie�join�_data�items)�self�data�chars�key�char�value�r�E/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/datrie.py�__init__ s  z Trie.__init__cCs ||jkS�N�r�rrrrr� __contains__szTrie.__contains__cCs t|j�Sr)�lenr�rrrr�__len__sz Trie.__len__cCs t��dSr)�NotImplementedErrorr rrr�__iter__sz Trie.__iter__cCs |j|Srrrrrr� __getitem__szTrie.__getitem__NcCs |j�|�Sr)rr �r�prefixrrrr "sz Trie.keyscCs |j�|�Sr)r�has_keys_with_prefixr%rrrr'%szTrie.has_keys_with_prefixcCs |j�|�Sr)r�longest_prefixr%rrrr((szTrie.longest_prefixcCs |j�|�Sr)r�longest_prefix_itemr%rrrr)+szTrie.longest_prefix_item)N) �__name__� __module__� __qualname__rrr!r#r$r r'r(r)rrrrr s  rN) Z __future__rrrZdatrierrZpip._vendor.sixrZ_baseZABCTrierrrr�s