aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/python_http_client/exceptions.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/python_http_client/exceptions.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-4a52a71956a8d46fcb7294ac71734504bb09bcc2.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/python_http_client/exceptions.py')
-rw-r--r--.venv/lib/python3.12/site-packages/python_http_client/exceptions.py97
1 files changed, 97 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/python_http_client/exceptions.py b/.venv/lib/python3.12/site-packages/python_http_client/exceptions.py
new file mode 100644
index 00000000..2a8c179b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/python_http_client/exceptions.py
@@ -0,0 +1,97 @@
+import json
+
+
+class HTTPError(Exception):
+ """ Base of all other errors"""
+
+ def __init__(self, *args):
+ if len(args) == 4:
+ self.status_code = args[0]
+ self.reason = args[1]
+ self.body = args[2]
+ self.headers = args[3]
+ else:
+ self.status_code = args[0].code
+ self.reason = args[0].reason
+ self.body = args[0].read()
+ self.headers = args[0].hdrs
+
+ def __reduce__(self):
+ return (
+ HTTPError,
+ (self.status_code, self.reason, self.body, self.headers)
+ )
+
+ @property
+ def to_dict(self):
+ """
+ :return: dict of response error from the API
+ """
+ return json.loads(self.body.decode('utf-8'))
+
+
+class BadRequestsError(HTTPError):
+ pass
+
+
+class UnauthorizedError(HTTPError):
+ pass
+
+
+class ForbiddenError(HTTPError):
+ pass
+
+
+class NotFoundError(HTTPError):
+ pass
+
+
+class MethodNotAllowedError(HTTPError):
+ pass
+
+
+class PayloadTooLargeError(HTTPError):
+ pass
+
+
+class UnsupportedMediaTypeError(HTTPError):
+ pass
+
+
+class TooManyRequestsError(HTTPError):
+ pass
+
+
+class InternalServerError(HTTPError):
+ pass
+
+
+class ServiceUnavailableError(HTTPError):
+ pass
+
+
+class GatewayTimeoutError(HTTPError):
+ pass
+
+
+err_dict = {
+ 400: BadRequestsError,
+ 401: UnauthorizedError,
+ 403: ForbiddenError,
+ 404: NotFoundError,
+ 405: MethodNotAllowedError,
+ 413: PayloadTooLargeError,
+ 415: UnsupportedMediaTypeError,
+ 429: TooManyRequestsError,
+ 500: InternalServerError,
+ 503: ServiceUnavailableError,
+ 504: GatewayTimeoutError
+}
+
+
+def handle_error(error):
+ try:
+ exc = err_dict[error.code](error)
+ except KeyError:
+ return HTTPError(error)
+ return exc