from itertools import groupby from .exceptions import WrongLengthException, UnicodeException, \ EmptyStringError def translation(first, second): """Create an index of mapped letters (zip to dict).""" if len(first) != len(second): raise WrongLengthException('The lists are not of the same length!') return dict(zip(first, second)) def squeeze(word): """Squeeze the given sequence by dropping consecutive duplicates.""" return ''.join(x[0] for x in groupby(word)) def check_str(word): """Throw exception at non-string input.""" if not isinstance(word, str): raise UnicodeException('Expected a unicode string!') def check_empty(word): """Throw exception at empty string input.""" if not len(word): raise EmptyStringError('The given string is empty.')