o
ai @ sL d dl mZmZmZ d dlmZ d dlmZ ddlm Z
G dd de
Z dS ) )absolute_importdivisionunicode_literals) text_type)bisect_left )Triec @ sF e Zd Zdd Zdd Zdd Zdd Zd d
Zddd
Zdd Z dS )r c C sJ t dd | D std|| _t| | _d| _dt|f| _d S )Nc s s | ]}t |tV qd S N)
isinstancer ).0x r
/builddir/build/BUILDROOT/alt-python310-pip-21.3.1-5.el8.x86_64/opt/alt/python310/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/py.py s z Trie.__init__..zAll keys must be strings r ) allkeys TypeError_datasorted_keys _cachestrlen_cachepoints)selfdatar
r
r __init__
s z
Trie.__init__c C s
|| j v S r r r keyr
r
r __contains__
zTrie.__contains__c C
t | jS r )r r r r
r
r __len__ r! zTrie.__len__c C r" r )iterr r# r
r
r __iter__ r! z
Trie.__iter__c C s
| j | S r r r r
r
r __getitem__ r! zTrie.__getitem__Nc C s |d u s|dks| j st| j S || jr&| j\}}t| j ||| }}nt| j | }}t }|t| j kr:|S | j | |rV|| j | |d7 }| j | |sB|| _||f| _|S )Nr r )r set
startswithr r r r add)r prefixlohistartir r
r
r r s
z Trie.keysc C sd || j v rdS || jr| j\}}t| j|||}nt| j|}|t| jkr*dS | j| |S )NTF)r r) r r r r r )r r+ r, r- r/ r
r
r has_keys_with_prefix6 s
zTrie.has_keys_with_prefixr )
__name__
__module____qualname__r r r$ r&