
    Mwg                     ^    d dl mZmZmZ 	 d dlmZ  G d de      Zy# e$ r	 d dlmZ Y w xY w)    )absolute_importdivisionunicode_literals)Mappingc                   6     e Zd ZdZd fd	Zd Zd Zd Z xZS )TriezAbstract base class for triesc                     t         t        |          }|t        |      S |D ch c]  }|j	                  |      s| c}S c c}w N)superr   keysset
startswith)selfprefixr   x	__class__s       K/var/www/horilla/myenv/lib/python3.12/site-packages/html5lib/_trie/_base.pyr   z	Trie.keys   s@    T4%'>t98a1<<#7888s
   AAc                 T    | j                         D ]  }|j                  |      s y y)NTF)r   r   )r   r   keys      r   has_keys_with_prefixzTrie.has_keys_with_prefix   s+    99; 	C~~f%	     c                 ~    || v r|S t        dt        |      dz         D ]  }|d |  | v s|d |  c S  t        |      )N   )rangelenKeyError)r   r   is      r   longest_prefixzTrie.longest_prefix   sW    T>Mq#f+/* 	#Acr{d"cr{"	# vr   c                 2    | j                  |      }|| |   fS r
   )r   )r   r   lprefixs      r   longest_prefix_itemzTrie.longest_prefix_item&   s!    %%f-g''r   r
   )	__name__
__module____qualname____doc__r   r   r   r!   __classcell__)r   s   @r   r   r   	   s    '9(r   r   N)	
__future__r   r   r   collections.abcr   ImportErrorcollectionsr    r   r   <module>r,      s3    B B$'
(7 (	  $#$s    ,,