Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/bleach/utils.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.7/site-packages/bleach/utils.py Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,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')