compass_api_sdk 0.9.35__py3-none-any.whl → 0.9.37__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of compass_api_sdk might be problematic. Click here for more details.
- compass_api_sdk/_version.py +3 -3
- compass_api_sdk/aave_v3.py +196 -478
- compass_api_sdk/aerodrome_slipstream.py +102 -256
- compass_api_sdk/basesdk.py +4 -4
- compass_api_sdk/erc_4626_vaults.py +42 -108
- compass_api_sdk/errors/__init__.py +15 -2
- compass_api_sdk/errors/apierror.py +30 -14
- compass_api_sdk/errors/compassapierror.py +26 -0
- compass_api_sdk/errors/httpvalidationerror.py +11 -6
- compass_api_sdk/errors/no_response_error.py +13 -0
- compass_api_sdk/errors/responsevalidationerror.py +25 -0
- compass_api_sdk/models/apy.py +3 -0
- compass_api_sdk/models/morpho_vaultop.py +65 -7
- compass_api_sdk/morpho.py +224 -482
- compass_api_sdk/pendle.py +166 -400
- compass_api_sdk/sky.py +74 -180
- compass_api_sdk/smart_account.py +16 -38
- compass_api_sdk/token_sdk.py +56 -144
- compass_api_sdk/transaction_bundler.py +48 -114
- compass_api_sdk/uniswap_v3.py +152 -368
- compass_api_sdk/universal.py +112 -288
- compass_api_sdk/utils/__init__.py +3 -0
- compass_api_sdk/utils/serializers.py +21 -3
- {compass_api_sdk-0.9.35.dist-info → compass_api_sdk-0.9.37.dist-info}/METADATA +42 -24
- {compass_api_sdk-0.9.35.dist-info → compass_api_sdk-0.9.37.dist-info}/RECORD +26 -23
- {compass_api_sdk-0.9.35.dist-info → compass_api_sdk-0.9.37.dist-info}/WHEEL +0 -0
|
@@ -4,7 +4,7 @@ from decimal import Decimal
|
|
|
4
4
|
import functools
|
|
5
5
|
import json
|
|
6
6
|
import typing
|
|
7
|
-
from typing import Any, Dict, List, Tuple, Union, get_args
|
|
7
|
+
from typing import Any, Dict, List, Optional, Tuple, Union, get_args
|
|
8
8
|
import typing_extensions
|
|
9
9
|
from typing_extensions import get_origin
|
|
10
10
|
|
|
@@ -13,6 +13,7 @@ from pydantic import ConfigDict, create_model
|
|
|
13
13
|
from pydantic_core import from_json
|
|
14
14
|
|
|
15
15
|
from ..types.basemodel import BaseModel, Nullable, OptionalNullable, Unset
|
|
16
|
+
from compass_api_sdk import errors
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
def serialize_decimal(as_str: bool):
|
|
@@ -140,6 +141,22 @@ def unmarshal_json(raw, typ: Any) -> Any:
|
|
|
140
141
|
return unmarshal(from_json(raw), typ)
|
|
141
142
|
|
|
142
143
|
|
|
144
|
+
def unmarshal_json_response(
|
|
145
|
+
typ: Any, http_res: httpx.Response, body: Optional[str] = None
|
|
146
|
+
) -> Any:
|
|
147
|
+
if body is None:
|
|
148
|
+
body = http_res.text
|
|
149
|
+
try:
|
|
150
|
+
return unmarshal_json(body, typ)
|
|
151
|
+
except Exception as e:
|
|
152
|
+
raise errors.ResponseValidationError(
|
|
153
|
+
"Response validation failed",
|
|
154
|
+
http_res,
|
|
155
|
+
e,
|
|
156
|
+
body,
|
|
157
|
+
) from e
|
|
158
|
+
|
|
159
|
+
|
|
143
160
|
def unmarshal(val, typ: Any) -> Any:
|
|
144
161
|
unmarshaller = create_model(
|
|
145
162
|
"Unmarshaller",
|
|
@@ -192,7 +209,9 @@ def is_union(obj: object) -> bool:
|
|
|
192
209
|
"""
|
|
193
210
|
Returns True if the given object is a typing.Union or typing_extensions.Union.
|
|
194
211
|
"""
|
|
195
|
-
return any(
|
|
212
|
+
return any(
|
|
213
|
+
obj is typing_obj for typing_obj in _get_typing_objects_by_name_of("Union")
|
|
214
|
+
)
|
|
196
215
|
|
|
197
216
|
|
|
198
217
|
def stream_to_text(stream: httpx.Response) -> str:
|
|
@@ -245,4 +264,3 @@ def _get_typing_objects_by_name_of(name: str) -> Tuple[Any, ...]:
|
|
|
245
264
|
f"Neither typing nor typing_extensions has an object called {name!r}"
|
|
246
265
|
)
|
|
247
266
|
return result
|
|
248
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: compass_api_sdk
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.37
|
|
4
4
|
Summary: Compass API SDK.
|
|
5
5
|
Author: royalnine
|
|
6
6
|
Requires-Python: >=3.9.2
|
|
@@ -351,26 +351,18 @@ with CompassAPI(
|
|
|
351
351
|
<!-- Start Error Handling [errors] -->
|
|
352
352
|
## Error Handling
|
|
353
353
|
|
|
354
|
-
|
|
354
|
+
[`CompassAPIError`](https://github.com/CompassLabs/mono/blob/master/./src/compass_api_sdk/errors/compassapierror.py) is the base class for all HTTP error responses. It has the following properties:
|
|
355
355
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
|
359
|
-
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
363
|
-
|
|
|
364
|
-
|
|
365
|
-
When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `rate_async` method may raise the following exceptions:
|
|
366
|
-
|
|
367
|
-
| Error Type | Status Code | Content Type |
|
|
368
|
-
| -------------------------- | ----------- | ---------------- |
|
|
369
|
-
| errors.HTTPValidationError | 422 | application/json |
|
|
370
|
-
| errors.APIError | 4XX, 5XX | \*/\* |
|
|
356
|
+
| Property | Type | Description |
|
|
357
|
+
| ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
|
|
358
|
+
| `err.message` | `str` | Error message |
|
|
359
|
+
| `err.status_code` | `int` | HTTP response status code eg `404` |
|
|
360
|
+
| `err.headers` | `httpx.Headers` | HTTP response headers |
|
|
361
|
+
| `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
|
|
362
|
+
| `err.raw_response` | `httpx.Response` | Raw HTTP response |
|
|
363
|
+
| `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](https://github.com/CompassLabs/mono/blob/master/#error-classes). |
|
|
371
364
|
|
|
372
365
|
### Example
|
|
373
|
-
|
|
374
366
|
```python
|
|
375
367
|
from compass_api_sdk import CompassAPI, errors, models
|
|
376
368
|
|
|
@@ -386,13 +378,39 @@ with CompassAPI(
|
|
|
386
378
|
# Handle response
|
|
387
379
|
print(res)
|
|
388
380
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
381
|
+
|
|
382
|
+
except errors.CompassAPIError as e:
|
|
383
|
+
# The base class for HTTP error responses
|
|
384
|
+
print(e.message)
|
|
385
|
+
print(e.status_code)
|
|
386
|
+
print(e.body)
|
|
387
|
+
print(e.headers)
|
|
388
|
+
print(e.raw_response)
|
|
389
|
+
|
|
390
|
+
# Depending on the method different errors may be thrown
|
|
391
|
+
if isinstance(e, errors.HTTPValidationError):
|
|
392
|
+
print(e.data.detail) # Optional[List[models.ValidationError]]
|
|
395
393
|
```
|
|
394
|
+
|
|
395
|
+
### Error Classes
|
|
396
|
+
**Primary errors:**
|
|
397
|
+
* [`CompassAPIError`](https://github.com/CompassLabs/mono/blob/master/./src/compass_api_sdk/errors/compassapierror.py): The base class for HTTP error responses.
|
|
398
|
+
* [`HTTPValidationError`](https://github.com/CompassLabs/mono/blob/master/./src/compass_api_sdk/errors/httpvalidationerror.py): Validation Error. Status code `422`.
|
|
399
|
+
|
|
400
|
+
<details><summary>Less common errors (5)</summary>
|
|
401
|
+
|
|
402
|
+
<br />
|
|
403
|
+
|
|
404
|
+
**Network errors:**
|
|
405
|
+
* [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
|
|
406
|
+
* [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
|
|
407
|
+
* [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
**Inherit from [`CompassAPIError`](https://github.com/CompassLabs/mono/blob/master/./src/compass_api_sdk/errors/compassapierror.py)**:
|
|
411
|
+
* [`ResponseValidationError`](https://github.com/CompassLabs/mono/blob/master/./src/compass_api_sdk/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
|
|
412
|
+
|
|
413
|
+
</details>
|
|
396
414
|
<!-- End Error Handling [errors] -->
|
|
397
415
|
|
|
398
416
|
<!-- Start Server Selection [server] -->
|
|
@@ -2,14 +2,17 @@ compass_api_sdk/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,4
|
|
|
2
2
|
compass_api_sdk/_hooks/__init__.py,sha256=p5J13DeYuISQyQWirjJAObHIf2VtIlOtFqnIpvjjVwk,118
|
|
3
3
|
compass_api_sdk/_hooks/sdkhooks.py,sha256=eVxHB2Q_JG6zZx5xn74i208ij-fpTHqq2jod6fbghRQ,2503
|
|
4
4
|
compass_api_sdk/_hooks/types.py,sha256=4qXm6dEntJOC2QeOdTklcc53oFzTU3HBb1xGdZ-kBXY,3059
|
|
5
|
-
compass_api_sdk/_version.py,sha256=
|
|
6
|
-
compass_api_sdk/aave_v3.py,sha256=
|
|
7
|
-
compass_api_sdk/aerodrome_slipstream.py,sha256=
|
|
8
|
-
compass_api_sdk/basesdk.py,sha256=
|
|
9
|
-
compass_api_sdk/erc_4626_vaults.py,sha256=
|
|
10
|
-
compass_api_sdk/errors/__init__.py,sha256=
|
|
11
|
-
compass_api_sdk/errors/apierror.py,sha256=
|
|
12
|
-
compass_api_sdk/errors/
|
|
5
|
+
compass_api_sdk/_version.py,sha256=IS85_6A1bVK8V8KyLpr-ZCv2_xsp6cj-JrZIecVLwhY,474
|
|
6
|
+
compass_api_sdk/aave_v3.py,sha256=HGztClaMj2E00gESokwbsZ9aiNGV1-okkrDzxUIZtJA,117024
|
|
7
|
+
compass_api_sdk/aerodrome_slipstream.py,sha256=_-tqCHmWlvbMfVl2hHvMpJfRKJVHAHEhB30oYwcqEY8,78375
|
|
8
|
+
compass_api_sdk/basesdk.py,sha256=PQNcMD7BiLruZwOuU2TeWIE_zQ0iO--XYUFmIDr5zX0,11844
|
|
9
|
+
compass_api_sdk/erc_4626_vaults.py,sha256=6AXf8H9SIpbmlbBSlkZwtT8ApcgyE3RyRFMRdtY6VhI,26193
|
|
10
|
+
compass_api_sdk/errors/__init__.py,sha256=UZYQ_CPi1cQkYcHe6n00nfKPIRwbmcufTY-FmMJGmk8,1693
|
|
11
|
+
compass_api_sdk/errors/apierror.py,sha256=y1lf-8zwQhv1JGntxj03ViMUyHN_Uewe0oZoH8MhwSM,1235
|
|
12
|
+
compass_api_sdk/errors/compassapierror.py,sha256=VqVzBWmwoS3OvoKbgBNh2WFFhrM3K5Kbz_5q4bupD7o,717
|
|
13
|
+
compass_api_sdk/errors/httpvalidationerror.py,sha256=ebdzfILwY0BltW3MqxCpHipluRS1eOe5R_dYrBKVZ-k,801
|
|
14
|
+
compass_api_sdk/errors/no_response_error.py,sha256=FQG44Lq6uF7uUlzbUYfM3dJon6sbqXzJ0Ri6YrDdsEs,380
|
|
15
|
+
compass_api_sdk/errors/responsevalidationerror.py,sha256=baMAkfmUhcPt_cxzyOCBCGBOzlXAeTHwcn5AUCsAgOw,702
|
|
13
16
|
compass_api_sdk/httpclient.py,sha256=Eu73urOAiZQtdUIyOUnPccxCiBbWEKrXG-JrRG3SLM4,3946
|
|
14
17
|
compass_api_sdk/models/__init__.py,sha256=YLnHHzpGW3EY6QieXMs9GwSGI9H7vaNmoTExjGJdO4s,120038
|
|
15
18
|
compass_api_sdk/models/aave_avg_rateop.py,sha256=Qn7IkBwZv5zY_L15V_LONkANzQPTbtmK2Wwhc2iqYz8,3718
|
|
@@ -55,7 +58,7 @@ compass_api_sdk/models/aerodromeslipstreamsellexactlyrequest.py,sha256=8fTTSQkqx
|
|
|
55
58
|
compass_api_sdk/models/aerodromeslipstreamwithdrawliquidityprovisionparams.py,sha256=7Oi6Z9Vb4VSAZsvj8j50f6wdcAhzTbwFY6schYwrayA,2871
|
|
56
59
|
compass_api_sdk/models/aerodromeslipstreamwithdrawliquidityprovisionrequest.py,sha256=VbyHw3IAyF80M4qNEaSDnoiKOCKISO3Ecy814j1481Q,2344
|
|
57
60
|
compass_api_sdk/models/allowanceinforesponse.py,sha256=uFIiq6V_cnP6mmpItormvRkNspvD1lsRQ4nzSXguJeI,1021
|
|
58
|
-
compass_api_sdk/models/apy.py,sha256=
|
|
61
|
+
compass_api_sdk/models/apy.py,sha256=ZWw-pHNb7ZJcKVHAwWezWOhj6FCTJzh7yqFv_BPV37U,402
|
|
59
62
|
compass_api_sdk/models/batcheduseroperationsrequest.py,sha256=diV1jBsKWflKAXPQvzYH9ZAtWnL9aUV8O3g3K4DOj-M,920
|
|
60
63
|
compass_api_sdk/models/batcheduseroperationsresponse.py,sha256=RB_xJG3Itpm5DIbPjAt5_mX02hbMklqsWyao7shRiiI,679
|
|
61
64
|
compass_api_sdk/models/borrow.py,sha256=YQxBejrFjAvfjrYC7kmQRsQL2q6bb6MZxLzFuVHZEFg,2140
|
|
@@ -101,7 +104,7 @@ compass_api_sdk/models/morpho_marketop.py,sha256=mRcswMLi9ggpwJHNMYGwP67YRx_6Bkk
|
|
|
101
104
|
compass_api_sdk/models/morpho_marketsop.py,sha256=0bt1iUYA5CRB4V59wFCUMzFCt6WXw9uIlbh1jlSi0Tc,2373
|
|
102
105
|
compass_api_sdk/models/morpho_user_positionop.py,sha256=ZI3tLwWXQ7eiSdLrQFszepA8PCW3lHKy8dH9DbtZAlo,1042
|
|
103
106
|
compass_api_sdk/models/morpho_vault_positionop.py,sha256=8fTCRPEBon3eMr4Uc6eTdLwai7w8QyJnrTPeyKryenY,1344
|
|
104
|
-
compass_api_sdk/models/morpho_vaultop.py,sha256=
|
|
107
|
+
compass_api_sdk/models/morpho_vaultop.py,sha256=BpoKp0tHGhgzEf7RxxrgB5qloslryVDoW-7FrygIbU4,2989
|
|
105
108
|
compass_api_sdk/models/morpho_vaultsop.py,sha256=Ed-0gPaMEnMvMHs_fN5MwrCOUZGMbnR_PnrX3NAekBs,2082
|
|
106
109
|
compass_api_sdk/models/morphoborrowparams.py,sha256=njOr9MsXmDkD2JTVrTCJKXQuBi6cCagBMgoeGl9X5LM,3167
|
|
107
110
|
compass_api_sdk/models/morphoborrowrequest.py,sha256=tFgzQ7SyuvwzFCc4pVkcPUbAje4MtYsi_EBuiEHQ6dA,3530
|
|
@@ -226,20 +229,20 @@ compass_api_sdk/models/weeklyapys.py,sha256=AaGjDD4NeGsZQBwdRW1G09Pmx17pLPe2oUA9
|
|
|
226
229
|
compass_api_sdk/models/wrapethparams.py,sha256=nw1fZiDrj5wZnI25Vmg0DcNI01k-uhot68lG1_H7xrY,1223
|
|
227
230
|
compass_api_sdk/models/wrapethrequest.py,sha256=pjo0BZtzdOZKuwgnc05LsCWO1A6ZAGLwFixLuXQNKDg,1476
|
|
228
231
|
compass_api_sdk/models/yieldrange.py,sha256=WEpZR24JddnCS1_13y2P1CdD0lBi6dPktysCNu3TUic,324
|
|
229
|
-
compass_api_sdk/morpho.py,sha256=
|
|
230
|
-
compass_api_sdk/pendle.py,sha256=
|
|
232
|
+
compass_api_sdk/morpho.py,sha256=Qplxxh6-0EkOunmbo1BQOvxhDDf8hMS3K1zHvH3sURc,116464
|
|
233
|
+
compass_api_sdk/pendle.py,sha256=mkvwj1dlhzEpsvh98iOZ0DdRaD47bVv5pbf-9_2TtGQ,92356
|
|
231
234
|
compass_api_sdk/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
|
|
232
235
|
compass_api_sdk/sdk.py,sha256=rQ3ANGf0BxHoZc9hCQvsxkNc9qOW3DbGAuOz_sy3o7g,7865
|
|
233
236
|
compass_api_sdk/sdkconfiguration.py,sha256=5nec4ViMLCsNWBd3DyEv8zWqU5Z77YZfzwX69jkdSnM,1607
|
|
234
|
-
compass_api_sdk/sky.py,sha256=
|
|
235
|
-
compass_api_sdk/smart_account.py,sha256
|
|
236
|
-
compass_api_sdk/token_sdk.py,sha256=
|
|
237
|
-
compass_api_sdk/transaction_bundler.py,sha256=
|
|
237
|
+
compass_api_sdk/sky.py,sha256=aELi_jmvjUqBxaEmnc4FPiX9k4hffHzY7vHgdhaG8bE,40405
|
|
238
|
+
compass_api_sdk/smart_account.py,sha256=gEgiIopK9TrRD_BmLy2lw1voh24khfsZYrtwF5913d0,8646
|
|
239
|
+
compass_api_sdk/token_sdk.py,sha256=vgA-JAvoFx7yQ90pQBl34W0mEWUdwLQWmv6z0agM_OY,31704
|
|
240
|
+
compass_api_sdk/transaction_bundler.py,sha256=nF2XiAwEt0F96TvsY3PscNs0V92x5exL6touYrMSFqA,30268
|
|
238
241
|
compass_api_sdk/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
|
|
239
242
|
compass_api_sdk/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
|
|
240
|
-
compass_api_sdk/uniswap_v3.py,sha256=
|
|
241
|
-
compass_api_sdk/universal.py,sha256=
|
|
242
|
-
compass_api_sdk/utils/__init__.py,sha256=
|
|
243
|
+
compass_api_sdk/uniswap_v3.py,sha256=AGWvQXXc_fZHbzbHDLF6cdImd_ysppta8I9NfLI5tLQ,101907
|
|
244
|
+
compass_api_sdk/universal.py,sha256=fRSgrX_orXpxxef2q_GyCWT5L7dX3vYaEyCW5PKILhE,65223
|
|
245
|
+
compass_api_sdk/utils/__init__.py,sha256=0DMA5cjPQY-KsQvHbPOpeyt6Q_iiMP3eCVSusijyXZ4,5452
|
|
243
246
|
compass_api_sdk/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4sek5Z_5Y,1699
|
|
244
247
|
compass_api_sdk/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
|
|
245
248
|
compass_api_sdk/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
|
|
@@ -252,9 +255,9 @@ compass_api_sdk/utils/queryparams.py,sha256=MTK6inMS1_WwjmMJEJmAn67tSHHJyarpdGRl
|
|
|
252
255
|
compass_api_sdk/utils/requestbodies.py,sha256=ySjEyjcLi731LNUahWvLOrES2HihuA8VrOJx4eQ7Qzg,2101
|
|
253
256
|
compass_api_sdk/utils/retries.py,sha256=6yhfZifqIat9i76xF0lTR2jLj1IN9BNGyqqxATlEFPU,6348
|
|
254
257
|
compass_api_sdk/utils/security.py,sha256=ktep3HKwbFs-MLxUYTM8Jd4v-ZBum5_Z0u1PFIdYBX0,5516
|
|
255
|
-
compass_api_sdk/utils/serializers.py,sha256=
|
|
258
|
+
compass_api_sdk/utils/serializers.py,sha256=_I2LpPIXnaN9LFxgBFUKj5w38Dd9TcOhNYL_sH6bIo8,6439
|
|
256
259
|
compass_api_sdk/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
257
260
|
compass_api_sdk/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
|
258
|
-
compass_api_sdk-0.9.
|
|
259
|
-
compass_api_sdk-0.9.
|
|
260
|
-
compass_api_sdk-0.9.
|
|
261
|
+
compass_api_sdk-0.9.37.dist-info/METADATA,sha256=hWTYQPCy4L0M4LQVhOAGVQSv1vLwYPUC8slFzFN36mE,28654
|
|
262
|
+
compass_api_sdk-0.9.37.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
263
|
+
compass_api_sdk-0.9.37.dist-info/RECORD,,
|
|
File without changes
|