OXIESEC PANEL
- Current Dir:
/
/
lib
/
python2.7
/
site-packages
/
pip
/
_vendor
/
html5lib
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/16/2023 12:45:09 PM
rwxr-xr-x
📄
__init__.py
780 bytes
04/21/2022 06:08:21 PM
rw-r--r--
📄
__init__.pyc
1.07 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
__init__.pyo
1.07 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
_ihatexml.py
16.31 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
_ihatexml.pyc
15.18 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
_ihatexml.pyo
15.11 KB
04/21/2022 06:08:35 PM
rw-r--r--
📄
_inputstream.py
31.77 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
_inputstream.pyc
27.13 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
_inputstream.pyo
26.59 KB
04/21/2022 06:08:35 PM
rw-r--r--
📄
_tokenizer.py
74.79 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
_tokenizer.pyc
52.61 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
_tokenizer.pyo
52.57 KB
04/21/2022 06:08:35 PM
rw-r--r--
📁
_trie
-
03/16/2023 12:45:09 PM
rwxr-xr-x
📄
_utils.py
4 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
_utils.pyc
4.35 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
_utils.pyo
4.27 KB
04/21/2022 06:08:35 PM
rw-r--r--
📄
constants.py
81.43 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
constants.pyc
81 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
constants.pyo
81 KB
04/21/2022 06:08:34 PM
rw-r--r--
📁
filters
-
03/16/2023 12:45:09 PM
rwxr-xr-x
📄
html5parser.py
114.42 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
html5parser.pyc
120.75 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
html5parser.pyo
119.79 KB
04/21/2022 06:08:35 PM
rw-r--r--
📄
serializer.py
13.84 KB
04/21/2022 06:08:21 PM
rw-r--r--
📄
serializer.pyc
11.57 KB
04/21/2022 06:08:34 PM
rw-r--r--
📄
serializer.pyo
11.48 KB
04/21/2022 06:08:35 PM
rw-r--r--
📁
treeadapters
-
03/16/2023 12:45:09 PM
rwxr-xr-x
📁
treebuilders
-
03/16/2023 12:45:09 PM
rwxr-xr-x
📁
treewalkers
-
03/16/2023 12:45:09 PM
rwxr-xr-x
Editing: _utils.py
Close
from __future__ import absolute_import, division, unicode_literals import sys from types import ModuleType from pip._vendor.six import text_type try: import xml.etree.cElementTree as default_etree except ImportError: import xml.etree.ElementTree as default_etree __all__ = ["default_etree", "MethodDispatcher", "isSurrogatePair", "surrogatePairToCodepoint", "moduleFactoryFactory", "supports_lone_surrogates", "PY27"] PY27 = sys.version_info[0] == 2 and sys.version_info[1] >= 7 # Platforms not supporting lone surrogates (\uD800-\uDFFF) should be # caught by the below test. In general this would be any platform # using UTF-16 as its encoding of unicode strings, such as # Jython. This is because UTF-16 itself is based on the use of such # surrogates, and there is no mechanism to further escape such # escapes. try: _x = eval('"\\uD800"') # pylint:disable=eval-used if not isinstance(_x, text_type): # We need this with u"" because of http://bugs.jython.org/issue2039 _x = eval('u"\\uD800"') # pylint:disable=eval-used assert isinstance(_x, text_type) except: # pylint:disable=bare-except supports_lone_surrogates = False else: supports_lone_surrogates = True class MethodDispatcher(dict): """Dict with 2 special properties: On initiation, keys that are lists, sets or tuples are converted to multiple keys so accessing any one of the items in the original list-like object returns the matching value md = MethodDispatcher({("foo", "bar"):"baz"}) md["foo"] == "baz" A default value which can be set through the default attribute. """ def __init__(self, items=()): # Using _dictEntries instead of directly assigning to self is about # twice as fast. Please do careful performance testing before changing # anything here. _dictEntries = [] for name, value in items: if isinstance(name, (list, tuple, frozenset, set)): for item in name: _dictEntries.append((item, value)) else: _dictEntries.append((name, value)) dict.__init__(self, _dictEntries) assert len(self) == len(_dictEntries) self.default = None def __getitem__(self, key): return dict.get(self, key, self.default) # Some utility functions to deal with weirdness around UCS2 vs UCS4 # python builds def isSurrogatePair(data): return (len(data) == 2 and ord(data[0]) >= 0xD800 and ord(data[0]) <= 0xDBFF and ord(data[1]) >= 0xDC00 and ord(data[1]) <= 0xDFFF) def surrogatePairToCodepoint(data): char_val = (0x10000 + (ord(data[0]) - 0xD800) * 0x400 + (ord(data[1]) - 0xDC00)) return char_val # Module Factory Factory (no, this isn't Java, I know) # Here to stop this being duplicated all over the place. def moduleFactoryFactory(factory): moduleCache = {} def moduleFactory(baseModule, *args, **kwargs): if isinstance(ModuleType.__name__, type("")): name = "_%s_factory" % baseModule.__name__ else: name = b"_%s_factory" % baseModule.__name__ kwargs_tuple = tuple(kwargs.items()) try: return moduleCache[name][args][kwargs_tuple] except KeyError: mod = ModuleType(name) objs = factory(baseModule, *args, **kwargs) mod.__dict__.update(objs) if "name" not in moduleCache: moduleCache[name] = {} if "args" not in moduleCache[name]: moduleCache[name][args] = {} if "kwargs" not in moduleCache[name][args]: moduleCache[name][args][kwargs_tuple] = {} moduleCache[name][args][kwargs_tuple] = mod return mod return moduleFactory def memoize(func): cache = {} def wrapped(*args, **kwargs): key = (tuple(args), tuple(kwargs.items())) if key not in cache: cache[key] = func(*args, **kwargs) return cache[key] return wrapped