mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-14 02:58:16 +01:00
54 lines
1 KiB
Python
54 lines
1 KiB
Python
# 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
|