SILENT KILLERPanel

Current Path: > > lib > python2.7 > site-packages > pip > _vendor > html5lib > _trie >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/

NameTypeSizeLast ModifiedActions
__init__.py File 289 bytes April 21 2022 18:08:21.
__init__.pyc File 442 bytes April 21 2022 18:08:34.
__init__.pyo File 442 bytes April 21 2022 18:08:34.
_base.py File 979 bytes April 21 2022 18:08:21.
_base.pyc File 1762 bytes April 21 2022 18:08:34.
_base.pyo File 1762 bytes April 21 2022 18:08:34.
datrie.py File 1178 bytes April 21 2022 18:08:21.
datrie.pyc File 2779 bytes April 21 2022 18:08:34.
datrie.pyo File 2779 bytes April 21 2022 18:08:34.
py.py File 1775 bytes April 21 2022 18:08:21.
py.pyc File 3019 bytes April 21 2022 18:08:34.
py.pyo File 3019 bytes April 21 2022 18:08:34.

Reading File: //lib/python2.7/site-packages/pip/_vendor/html5lib/_trie//py.py

from __future__ import absolute_import, division, unicode_literals
from pip._vendor.six import text_type

from bisect import bisect_left

from ._base import Trie as ABCTrie


class Trie(ABCTrie):
    def __init__(self, data):
        if not all(isinstance(x, text_type) for x in data.keys()):
            raise TypeError("All keys must be strings")

        self._data = data
        self._keys = sorted(data.keys())
        self._cachestr = ""
        self._cachepoints = (0, len(data))

    def __contains__(self, key):
        return key in self._data

    def __len__(self):
        return len(self._data)

    def __iter__(self):
        return iter(self._data)

    def __getitem__(self, key):
        return self._data[key]

    def keys(self, prefix=None):
        if prefix is None or prefix == "" or not self._keys:
            return set(self._keys)

        if prefix.startswith(self._cachestr):
            lo, hi = self._cachepoints
            start = i = bisect_left(self._keys, prefix, lo, hi)
        else:
            start = i = bisect_left(self._keys, prefix)

        keys = set()
        if start == len(self._keys):
            return keys

        while self._keys[i].startswith(prefix):
            keys.add(self._keys[i])
            i += 1

        self._cachestr = prefix
        self._cachepoints = (start, i)

        return keys

    def has_keys_with_prefix(self, prefix):
        if prefix in self._data:
            return True

        if prefix.startswith(self._cachestr):
            lo, hi = self._cachepoints
            i = bisect_left(self._keys, prefix, lo, hi)
        else:
            i = bisect_left(self._keys, prefix)

        if i == len(self._keys):
            return False

        return self._keys[i].startswith(prefix)

SILENT KILLER Tool