diff options
Diffstat (limited to 'venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie')
4 files changed, 0 insertions, 162 deletions
diff --git a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py b/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py deleted file mode 100644 index ccc70bd..0000000 --- a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | from __future__ import absolute_import, division, unicode_literals | ||
2 | |||
3 | from .py import Trie as PyTrie | ||
4 | |||
5 | Trie = PyTrie | ||
6 | |||
7 | # pylint:disable=wrong-import-position | ||
8 | try: | ||
9 | from .datrie import Trie as DATrie | ||
10 | except ImportError: | ||
11 | pass | ||
12 | else: | ||
13 | Trie = DATrie | ||
14 | # pylint:enable=wrong-import-position | ||
diff --git a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py b/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py deleted file mode 100644 index ecfff32..0000000 --- a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | from __future__ import absolute_import, division, unicode_literals | ||
2 | |||
3 | from collections import Mapping | ||
4 | |||
5 | |||
6 | class Trie(Mapping): | ||
7 | """Abstract base class for tries""" | ||
8 | |||
9 | def keys(self, prefix=None): | ||
10 | # pylint:disable=arguments-differ | ||
11 | keys = super(Trie, self).keys() | ||
12 | |||
13 | if prefix is None: | ||
14 | return set(keys) | ||
15 | |||
16 | return {x for x in keys if x.startswith(prefix)} | ||
17 | |||
18 | def has_keys_with_prefix(self, prefix): | ||
19 | for key in self.keys(): | ||
20 | if key.startswith(prefix): | ||
21 | return True | ||
22 | |||
23 | return False | ||
24 | |||
25 | def longest_prefix(self, prefix): | ||
26 | if prefix in self: | ||
27 | return prefix | ||
28 | |||
29 | for i in range(1, len(prefix) + 1): | ||
30 | if prefix[:-i] in self: | ||
31 | return prefix[:-i] | ||
32 | |||
33 | raise KeyError(prefix) | ||
34 | |||
35 | def longest_prefix_item(self, prefix): | ||
36 | lprefix = self.longest_prefix(prefix) | ||
37 | return (lprefix, self[lprefix]) | ||
diff --git a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py b/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py deleted file mode 100644 index cb1af60..0000000 --- a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | from __future__ import absolute_import, division, unicode_literals | ||
2 | |||
3 | from datrie import Trie as DATrie | ||
4 | from pip._vendor.six import text_type | ||
5 | |||
6 | from ._base import Trie as ABCTrie | ||
7 | |||
8 | |||
9 | class Trie(ABCTrie): | ||
10 | def __init__(self, data): | ||
11 | chars = set() | ||
12 | for key in data.keys(): | ||
13 | if not isinstance(key, text_type): | ||
14 | raise TypeError("All keys must be strings") | ||
15 | for char in key: | ||
16 | chars.add(char) | ||
17 | |||
18 | self._data = DATrie("".join(chars)) | ||
19 | for key, value in data.items(): | ||
20 | self._data[key] = value | ||
21 | |||
22 | def __contains__(self, key): | ||
23 | return key in self._data | ||
24 | |||
25 | def __len__(self): | ||
26 | return len(self._data) | ||
27 | |||
28 | def __iter__(self): | ||
29 | raise NotImplementedError() | ||
30 | |||
31 | def __getitem__(self, key): | ||
32 | return self._data[key] | ||
33 | |||
34 | def keys(self, prefix=None): | ||
35 | return self._data.keys(prefix) | ||
36 | |||
37 | def has_keys_with_prefix(self, prefix): | ||
38 | return self._data.has_keys_with_prefix(prefix) | ||
39 | |||
40 | def longest_prefix(self, prefix): | ||
41 | return self._data.longest_prefix(prefix) | ||
42 | |||
43 | def longest_prefix_item(self, prefix): | ||
44 | return self._data.longest_prefix_item(prefix) | ||
diff --git a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/py.py b/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/py.py deleted file mode 100644 index 5531263..0000000 --- a/venv/lib/python3.7/site-packages/pip-10.0.1-py3.7.egg/pip/_vendor/html5lib/_trie/py.py +++ /dev/null | |||
@@ -1,67 +0,0 @@ | |||
1 | from __future__ import absolute_import, division, unicode_literals | ||
2 | from pip._vendor.six import text_type | ||
3 | |||
4 | from bisect import bisect_left | ||
5 | |||
6 | from ._base import Trie as ABCTrie | ||
7 | |||
8 | |||
9 | class Trie(ABCTrie): | ||
10 | def __init__(self, data): | ||
11 | if not all(isinstance(x, text_type) for x in data.keys()): | ||
12 | raise TypeError("All keys must be strings") | ||
13 | |||
14 | self._data = data | ||
15 | self._keys = sorted(data.keys()) | ||
16 | self._cachestr = "" | ||
17 | self._cachepoints = (0, len(data)) | ||
18 | |||
19 | def __contains__(self, key): | ||
20 | return key in self._data | ||
21 | |||
22 | def __len__(self): | ||
23 | return len(self._data) | ||
24 | |||
25 | def __iter__(self): | ||
26 | return iter(self._data) | ||
27 | |||
28 | def __getitem__(self, key): | ||
29 | return self._data[key] | ||
30 | |||
31 | def keys(self, prefix=None): | ||
32 | if prefix is None or prefix == "" or not self._keys: | ||
33 | return set(self._keys) | ||
34 | |||
35 | if prefix.startswith(self._cachestr): | ||
36 | lo, hi = self._cachepoints | ||
37 | start = i = bisect_left(self._keys, prefix, lo, hi) | ||
38 | else: | ||
39 | start = i = bisect_left(self._keys, prefix) | ||
40 | |||
41 | keys = set() | ||
42 | if start == len(self._keys): | ||
43 | return keys | ||
44 | |||
45 | while self._keys[i].startswith(prefix): | ||
46 | keys.add(self._keys[i]) | ||
47 | i += 1 | ||
48 | |||
49 | self._cachestr = prefix | ||
50 | self._cachepoints = (start, i) | ||
51 | |||
52 | return keys | ||
53 | |||
54 | def has_keys_with_prefix(self, prefix): | ||
55 | if prefix in self._data: | ||
56 | return True | ||
57 | |||
58 | if prefix.startswith(self._cachestr): | ||
59 | lo, hi = self._cachepoints | ||
60 | i = bisect_left(self._keys, prefix, lo, hi) | ||
61 | else: | ||
62 | i = bisect_left(self._keys, prefix) | ||
63 | |||
64 | if i == len(self._keys): | ||
65 | return False | ||
66 | |||
67 | return self._keys[i].startswith(prefix) | ||