/usr/lib/python3/dist-packages/bleach/utils.py is in python3-bleach 2.1.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | from collections import OrderedDict
import six
def _attr_key(attr):
"""Returns appropriate key for sorting attribute names
Attribute names are a tuple of ``(namespace, name)`` where namespace can be
``None`` or a string. These can't be compared in Python 3, so we conver the
``None`` to an empty string.
"""
key = (attr[0][0] or ''), attr[0][1]
return key
def alphabetize_attributes(attrs):
"""Takes a dict of attributes (or None) and returns them alphabetized"""
if not attrs:
return attrs
return OrderedDict(
[(k, v) for k, v in sorted(attrs.items(), key=_attr_key)]
)
def force_unicode(text):
"""Takes a text (Python 2: str/unicode; Python 3: unicode) and converts to unicode
:arg str/unicode text: the text in question
:returns: text as unicode
:raises UnicodeDecodeError: if the text was a Python 2 str and isn't in
utf-8
"""
# If it's already unicode, then return it
if isinstance(text, six.text_type):
return text
# If not, convert it
return six.text_type(text, 'utf-8', 'strict')
|