Spaces:
Running
Running
from __future__ import annotations | |
import typing | |
from types import TracebackType | |
def to_bytes( | |
x: str | bytes, encoding: str | None = None, errors: str | None = None | |
) -> bytes: | |
if isinstance(x, bytes): | |
return x | |
elif not isinstance(x, str): | |
raise TypeError(f"not expecting type {type(x).__name__}") | |
if encoding or errors: | |
return x.encode(encoding or "utf-8", errors=errors or "strict") | |
return x.encode() | |
def to_str( | |
x: str | bytes, encoding: str | None = None, errors: str | None = None | |
) -> str: | |
if isinstance(x, str): | |
return x | |
elif not isinstance(x, bytes): | |
raise TypeError(f"not expecting type {type(x).__name__}") | |
if encoding or errors: | |
return x.decode(encoding or "utf-8", errors=errors or "strict") | |
return x.decode() | |
def reraise( | |
tp: type[BaseException] | None, | |
value: BaseException, | |
tb: TracebackType | None = None, | |
) -> typing.NoReturn: | |
try: | |
if value.__traceback__ is not tb: | |
raise value.with_traceback(tb) | |
raise value | |
finally: | |
value = None # type: ignore[assignment] | |
tb = None | |