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

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

13 statements  

1from __future__ import annotations 

2 

3import contextlib 

4import sys 

5 

6 

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

8 

9 

10def decode(string: str | bytes, encodings: list[str] | None = None) -> str: 

11 if not isinstance(string, bytes): 

12 return string 

13 

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

15 

16 for encoding in encodings: 

17 with contextlib.suppress(UnicodeEncodeError, UnicodeDecodeError): 

18 return string.decode(encoding) 

19 

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