3 ÝPfšã@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)rcCsvtƒ}x:|jƒD].}t|tƒs&tdƒ‚x|D]}|j|ƒq,WqWtdj|ƒƒ|_x|j ƒD]\}}||j|<q\WdS)NzAll keys must be stringsÚ) ÚsetÚkeysÚ isinstancerÚ TypeErrorÚaddÚDATrieÚjoinÚ_dataÚitems)ÚselfÚdataÚcharsÚkeyÚcharÚvalue©rú/usr/lib/python3.6/datrie.pyÚ__init__ s  z Trie.__init__cCs ||jkS)N)r)rrrrrÚ __contains__szTrie.__contains__cCs t|jƒS)N)Úlenr)rrrrÚ__len__sz Trie.__len__cCs tƒ‚dS)N)ÚNotImplementedError)rrrrÚ__iter__sz Trie.__iter__cCs |j|S)N)r)rrrrrÚ __getitem__szTrie.__getitem__NcCs |jj|ƒS)N)rr )rÚprefixrrrr "sz Trie.keyscCs |jj|ƒS)N)rÚhas_keys_with_prefix)rr!rrrr"%szTrie.has_keys_with_prefixcCs |jj|ƒS)N)rÚlongest_prefix)rr!rrrr#(szTrie.longest_prefixcCs |jj|ƒS)N)rÚlongest_prefix_item)rr!rrrr$+szTrie.longest_prefix_item)N) Ú__name__Ú __module__Ú __qualname__rrrrr r r"r#r$rrrrr s  rN) Z __future__rrrZdatrierrZpip._vendor.sixrZ_baseZABCTrierrrrÚs