diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/starlette/exceptions.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/starlette/exceptions.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/starlette/exceptions.py b/.venv/lib/python3.12/site-packages/starlette/exceptions.py new file mode 100644 index 00000000..9ad3527b --- /dev/null +++ b/.venv/lib/python3.12/site-packages/starlette/exceptions.py @@ -0,0 +1,33 @@ +from __future__ import annotations + +import http +from collections.abc import Mapping + + +class HTTPException(Exception): + def __init__(self, status_code: int, detail: str | None = None, headers: Mapping[str, str] | None = None) -> None: + if detail is None: + detail = http.HTTPStatus(status_code).phrase + self.status_code = status_code + self.detail = detail + self.headers = headers + + def __str__(self) -> str: + return f"{self.status_code}: {self.detail}" + + def __repr__(self) -> str: + class_name = self.__class__.__name__ + return f"{class_name}(status_code={self.status_code!r}, detail={self.detail!r})" + + +class WebSocketException(Exception): + def __init__(self, code: int, reason: str | None = None) -> None: + self.code = code + self.reason = reason or "" + + def __str__(self) -> str: + return f"{self.code}: {self.reason}" + + def __repr__(self) -> str: + class_name = self.__class__.__name__ + return f"{class_name}(code={self.code!r}, reason={self.reason!r})" |