File tree Expand file tree Collapse file tree 3 files changed +21
-6
lines changed Expand file tree Collapse file tree 3 files changed +21
-6
lines changed Original file line number Diff line number Diff line change 20
20
)
21
21
from ..exceptions import APIError , APIErrorFromJSON , generate_default_error_message
22
22
from ..types import ReturnMethod
23
- from ..utils import get_origin_and_cast
23
+ from ..utils import get_origin_and_cast , model_validate_json
24
24
25
25
_ReturnT = TypeVar ("_ReturnT" )
26
26
@@ -74,7 +74,7 @@ async def execute(self) -> APIResponse[_ReturnT]:
74
74
return body
75
75
return APIResponse [_ReturnT ].from_http_request_response (r )
76
76
else :
77
- json_obj = APIErrorFromJSON . model_validate_json (r .content )
77
+ json_obj = model_validate_json (APIErrorFromJSON , r .content )
78
78
raise APIError (dict (json_obj ))
79
79
except ValidationError as e :
80
80
raise APIError (generate_default_error_message (r ))
@@ -122,7 +122,7 @@ async def execute(self) -> SingleAPIResponse[_ReturnT]:
122
122
): # Response.ok from JS (https://developer.mozilla.org/en-US/docs/Web/API/Response/ok)
123
123
return SingleAPIResponse [_ReturnT ].from_http_request_response (r )
124
124
else :
125
- json_obj = APIErrorFromJSON . model_validate_json (r .content )
125
+ json_obj = model_validate_json (APIErrorFromJSON , r .content )
126
126
raise APIError (dict (json_obj ))
127
127
except ValidationError as e :
128
128
raise APIError (generate_default_error_message (r ))
Original file line number Diff line number Diff line change 20
20
)
21
21
from ..exceptions import APIError , APIErrorFromJSON , generate_default_error_message
22
22
from ..types import ReturnMethod
23
- from ..utils import get_origin_and_cast
23
+ from ..utils import get_origin_and_cast , model_validate_json
24
24
25
25
_ReturnT = TypeVar ("_ReturnT" )
26
26
@@ -74,7 +74,7 @@ def execute(self) -> APIResponse[_ReturnT]:
74
74
return body
75
75
return APIResponse [_ReturnT ].from_http_request_response (r )
76
76
else :
77
- json_obj = APIErrorFromJSON . model_validate_json (r .content )
77
+ json_obj = model_validate_json (APIErrorFromJSON , r .content )
78
78
raise APIError (dict (json_obj ))
79
79
except ValidationError as e :
80
80
raise APIError (generate_default_error_message (r ))
@@ -122,7 +122,7 @@ def execute(self) -> SingleAPIResponse[_ReturnT]:
122
122
): # Response.ok from JS (https://developer.mozilla.org/en-US/docs/Web/API/Response/ok)
123
123
return SingleAPIResponse [_ReturnT ].from_http_request_response (r )
124
124
else :
125
- json_obj = APIErrorFromJSON . model_validate_json (r .content )
125
+ json_obj = model_validate_json (APIErrorFromJSON , r .content )
126
126
raise APIError (dict (json_obj ))
127
127
except ValidationError as e :
128
128
raise APIError (generate_default_error_message (r ))
Original file line number Diff line number Diff line change 7
7
from deprecation import deprecated
8
8
from httpx import AsyncClient # noqa: F401
9
9
from httpx import Client as BaseClient # noqa: F401
10
+ from pydantic import BaseModel
10
11
11
12
from .version import __version__
12
13
@@ -81,3 +82,17 @@ def is_valid_jwt(value: str) -> bool:
81
82
return False
82
83
83
84
return True
85
+
86
+
87
+ TBaseModel = TypeVar ("TBaseModel" , bound = BaseModel )
88
+
89
+
90
+ def model_validate_json (model : Type [TBaseModel ], contents ) -> TBaseModel :
91
+ """Compatibility layer between pydantic 1 and 2 for parsing an instance
92
+ of a BaseModel from varied"""
93
+ try :
94
+ # pydantic > 2
95
+ return model .model_validate_json (contents )
96
+ except AttributeError :
97
+ # pydantic < 2
98
+ return model .parse_raw (contents )
You can’t perform that action at this time.
0 commit comments