Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/asn1crypto/_errors.py: 47%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

15 statements  

1# coding: utf-8 

2 

3""" 

4Exports the following items: 

5 

6 - unwrap() 

7 - APIException() 

8""" 

9 

10from __future__ import unicode_literals, division, absolute_import, print_function 

11 

12import re 

13import textwrap 

14 

15 

16class APIException(Exception): 

17 """ 

18 An exception indicating an API has been removed from asn1crypto 

19 """ 

20 

21 pass 

22 

23 

24def unwrap(string, *params): 

25 """ 

26 Takes a multi-line string and does the following: 

27 

28 - dedents 

29 - converts newlines with text before and after into a single line 

30 - strips leading and trailing whitespace 

31 

32 :param string: 

33 The string to format 

34 

35 :param *params: 

36 Params to interpolate into the string 

37 

38 :return: 

39 The formatted string 

40 """ 

41 

42 output = textwrap.dedent(string) 

43 

44 # Unwrap lines, taking into account bulleted lists, ordered lists and 

45 # underlines consisting of = signs 

46 if output.find('\n') != -1: 

47 output = re.sub('(?<=\\S)\n(?=[^ \n\t\\d\\*\\-=])', ' ', output) 

48 

49 if params: 

50 output = output % params 

51 

52 output = output.strip() 

53 

54 return output