File: //snap/core18/2952/usr/lib/python3/dist-packages/asn1crypto/_errors.py
# 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