123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # coding: utf-8
- """
- Helper for formatting exception messages. Exports the following items:
- - unwrap()
- """
- from __future__ import unicode_literals, division, absolute_import, print_function
- import re
- import textwrap
- def unwrap(string, *params):
- """
- Takes a multi-line string and does the following:
- - dedents
- - converts newlines with text before and after into a single line
- - strips leading and trailing whitespace
- :param string:
- The string to format
- :param *params:
- Params to interpolate into the string
- :return:
- The formatted string
- """
- output = textwrap.dedent(string)
- # Unwrap lines, taking into account bulleted lists, ordered lists and
- # underlines consisting of = signs
- if output.find('\n') != -1:
- output = re.sub('(?<=\\S)\n(?=[^ \n\t\\d\\*\\-=])', ' ', output)
- if params:
- output = output % params
- output = output.strip()
- return output
|