# Path: breadability/utils.py
# def is_blank(text):
#     """
#     Returns ``True`` if string contains only whitespace characters
#     or is empty. Otherwise ``False`` is returned.
#     """
#     return not text or text.isspace()
# 
# def shrink_text(text):
#     return normalize_whitespace(text.strip())
# 
# Path: breadability/_compat.py
# def to_unicode(object):
#     try:
#         if isinstance(object, unicode):
#             return object
#         elif isinstance(object, bytes):
#             return object.decode("utf8")
#         else:
#             # try decode instance to unicode
#             return instance_to_unicode(object)
#     except UnicodeError:
#         # recover from codec error and use 'repr' function
#         return to_unicode(repr(object))


from itertools import groupby
from lxml.sax import saxify, ContentHandler
from .utils import is_blank, shrink_text
from ._compat import to_unicode
# -*- coding: utf8 -*-

from __future__ import absolute_import
from __future__ import division, print_function, unicode_literals



_SEMANTIC_TAGS = frozenset((

# Path: breadability/utils.py
# def is_blank(text):
#     """
#     Returns ``True`` if string contains only whitespace characters
#     or is empty. Otherwise ``False`` is returned.
#     """
#     return not text or text.isspace()
# 
# def shrink_text(text):
#     return normalize_whitespace(text.strip())
# 
# Path: breadability/_compat.py
# def to_unicode(object):
#     try:
#         if isinstance(object, unicode):
#             return object
#         elif isinstance(object, bytes):
#             return object.decode("utf8")
#         else:
#             # try decode instance to unicode
#             return instance_to_unicode(object)
#     except UnicodeError:
#         # recover from codec error and use 'repr' function
#         return to_unicode(repr(object))


# Path: breadability/annotated_text.py
from itertools import groupby
from lxml.sax import saxify, ContentHandler
from .utils import is_blank, shrink_text
from ._compat import to_unicode

# -*- coding: utf8 -*-

from __future__ import absolute_import
from __future__ import division, print_function, unicode_literals



_SEMANTIC_TAGS = frozenset((

    "a", "abbr", "acronym", "b", "big", "blink", "blockquote", "cite", "code",