from zope.interface import Interface, implementer from six import unichr, text_type, string_types, iteritems from six.moves import filter from clldutils.misc import to_binary from clldutils.source import Source from clld.util import DeclEnum from clld.lib.bibutils import convert from clld.lib import latex __all__ = [ 'u_unescape', 'unescape', 'stripctrlchars', 'EntryType', 'FIELDS', 'IRecord', 'Record', 'IDatabase', 'Database' ] latex.register() UU_PATTERN = re.compile(r'\?\[\\u(?P<number>[0-9]{3,5})\]') def u_unescape(s): """Unencode Unicode escape sequences. Match all 3-5-digit sequences with unicode character replace all '?[\\u....]' with corresponding unicode There are some decimal/octal mismatches in unicode encodings in bibtex """ def iterchunks(s): end = 0 for m in UU_PATTERN.finditer(s):
from collections import OrderedDict import re from zope.interface import Interface, implementer from six import unichr, text_type, string_types, iteritems from six.moves import filter from clldutils.path import Path from clldutils.misc import UnicodeMixin, to_binary from clldutils.source import Source from clld.util import DeclEnum from clld.lib.bibutils import convert from clld.lib import latex latex.register() UU_PATTERN = re.compile(r"\?\[\\u(?P<number>[0-9]{3,5})\]") def u_unescape(s): """Unencode Unicode escape sequences. Match all 3-5-digit sequences with unicode character replace all '?[\\u....]' with corresponding unicode There are some decimal/octal mismatches in unicode encodings in bibtex """ def iterchunks(s):