| 12345678910111213141516171819202122 |
- from __future__ import annotations
- import contextlib
- import sys
- from typing import Any
- PY38 = sys.version_info >= (3, 8)
- def decode(string: Any, encodings: list[str] | None = None):
- if not isinstance(string, bytes):
- return string
- encodings = encodings or ["utf-8", "latin1", "ascii"]
- for encoding in encodings:
- with contextlib.suppress(UnicodeEncodeError, UnicodeDecodeError):
- return string.decode(encoding)
- return string.decode(encodings[0], errors="ignore")
|