a €™Reïã@sLddlmZmZmZddlmZddlmZddlm Z Gdd„de ƒZ dS) é)Úabsolute_importÚdivisionÚunicode_literals)Ú text_type)Ú bisect_lefté)ÚTriec@sFeZdZdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Zdd„Z d S)rcCsJtdd„| ¡Dƒƒstdƒ‚||_t| ¡ƒ|_d|_dt|ƒf|_dS)Ncss|]}t|tƒVqdS©N)Ú isinstancer)Ú.0Úx©r úŒ/builddir/build/BUILDROOT/alt-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.pyÚ óz Trie.__init__..zAll keys must be stringsÚr) ÚallÚkeysÚ TypeErrorÚ_dataÚsortedÚ_keysÚ _cachestrÚlenÚ _cachepoints)ÚselfÚdatar r rÚ__init__ s z Trie.__init__cCs ||jvSr ©r©rÚkeyr r rÚ __contains__szTrie.__contains__cCs t|jƒSr )rr©rr r rÚ__len__sz Trie.__len__cCs t|jƒSr )Úiterrr"r r rÚ__iter__sz Trie.__iter__cCs |j|Sr rrr r rÚ __getitem__szTrie.__getitem__NcCs²|dus|dks|js t|jƒS| |j¡rL|j\}}t|j|||ƒ}}nt|j|ƒ}}tƒ}|t|jƒkrt|S|j| |¡rž| |j|¡|d7}qt||_||f|_|S)Nrr)rÚsetÚ startswithrrrrÚadd)rÚprefixÚloÚhiÚstartÚirr r rrs     z Trie.keyscCsd||jvrdS| |j¡r6|j\}}t|j|||ƒ}n t|j|ƒ}|t|jƒkrTdS|j| |¡S)NTF)rr(rrrrr)rr*r+r,r.r r rÚhas_keys_with_prefix6s    zTrie.has_keys_with_prefix)N) Ú__name__Ú __module__Ú __qualname__rr!r#r%r&rr/r r r rr s  rN) Ú __future__rrrZpip._vendor.sixrÚbisectrÚ_baserÚABCTrier r r rÚs