|
- # coding: utf-8
-
- """
- Exports the following items:
-
- - unwrap()
- - APIException()
- """
-
- from __future__ import unicode_literals, division, absolute_import, print_function
-
- import re
- import textwrap
-
-
- class APIException(Exception):
- """
- An exception indicating an API has been removed from asn1crypto
- """
-
- pass
-
-
- 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
|