Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/tomlkit/_compat.py: 64%

14 statements  

« prev     ^ index     » next       coverage.py v7.2.2, created at 2023-03-26 07:01 +0000

1import contextlib 

2import sys 

3 

4from typing import Any 

5from typing import List 

6from typing import Optional 

7 

8 

9PY38 = sys.version_info >= (3, 8) 

10 

11 

12def decode(string: Any, encodings: Optional[List[str]] = None): 

13 if not isinstance(string, bytes): 

14 return string 

15 

16 encodings = encodings or ["utf-8", "latin1", "ascii"] 

17 

18 for encoding in encodings: 

19 with contextlib.suppress(UnicodeEncodeError, UnicodeDecodeError): 

20 return string.decode(encoding) 

21 

22 return string.decode(encodings[0], errors="ignore")