mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2025-01-01 10:21:44 +01:00
55 lines
1 KiB
Python
55 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
|