Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions giskard/client/giskard_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
from mlflow.store.artifact.artifact_repo import verify_artifact_path
from mlflow.utils.file_utils import relative_path_to_artifact_path
from mlflow.utils.rest_utils import augmented_raise_for_status
from requests import Response
from requests.adapters import HTTPAdapter
from requests.auth import AuthBase
from requests_toolbelt import sessions
from requests import Response
from typing import List

import giskard
Expand All @@ -34,10 +34,7 @@ def __init__(self, message: str, status: int, code: str) -> None:


def explain_error(resp):
if isinstance(resp, Response):
status = resp.status_code
else:
status = resp.status
status = _get_status(resp)

message = "Unknown error"
code = f"error.http.{status}"
Expand All @@ -60,13 +57,22 @@ def explain_error(resp):
return GiskardError(status=status, code=code, message=message)


def _get_status(resp):
if isinstance(resp, Response):
status = resp.status_code
else:
status = resp.status

return status


class ErrorHandlingAdapter(HTTPAdapter):
def __init__(self, *args, **kwargs):
super(ErrorHandlingAdapter, self).__init__(*args, **kwargs)

def build_response(self, req, resp):
resp = super(ErrorHandlingAdapter, self).build_response(req, resp)
if resp.status >= 400:
if _get_status(resp) >= 400:
raise explain_error(resp)

return resp
Expand Down