U oÏ aïã@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 ú^C:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\html5lib\_trie\py.pyÚ sz 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 ||jkSr ©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²|dks|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||jkrdS| |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