compass_api_sdk 0.9.13__py3-none-any.whl → 0.9.14__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.

@@ -86,11 +86,39 @@ def _populate_form(
86
86
  return form
87
87
 
88
88
 
89
+ def _extract_file_properties(file_obj: Any) -> Tuple[str, Any, Any]:
90
+ """Extract file name, content, and content type from a file object."""
91
+ file_fields: Dict[str, FieldInfo] = file_obj.__class__.model_fields
92
+
93
+ file_name = ""
94
+ content = None
95
+ content_type = None
96
+
97
+ for file_field_name in file_fields:
98
+ file_field = file_fields[file_field_name]
99
+
100
+ file_metadata = find_field_metadata(file_field, MultipartFormMetadata)
101
+ if file_metadata is None:
102
+ continue
103
+
104
+ if file_metadata.content:
105
+ content = getattr(file_obj, file_field_name, None)
106
+ elif file_field_name == "content_type":
107
+ content_type = getattr(file_obj, file_field_name, None)
108
+ else:
109
+ file_name = getattr(file_obj, file_field_name)
110
+
111
+ if file_name == "" or content is None:
112
+ raise ValueError("invalid multipart/form-data file")
113
+
114
+ return file_name, content, content_type
115
+
116
+
89
117
  def serialize_multipart_form(
90
118
  media_type: str, request: Any
91
- ) -> Tuple[str, Dict[str, Any], Dict[str, Any]]:
119
+ ) -> Tuple[str, Dict[str, Any], List[Tuple[str, Any]]]:
92
120
  form: Dict[str, Any] = {}
93
- files: Dict[str, Any] = {}
121
+ files: List[Tuple[str, Any]] = []
94
122
 
95
123
  if not isinstance(request, BaseModel):
96
124
  raise TypeError("invalid request body type")
@@ -112,39 +140,32 @@ def serialize_multipart_form(
112
140
  f_name = field.alias if field.alias else name
113
141
 
114
142
  if field_metadata.file:
115
- file_fields: Dict[str, FieldInfo] = val.__class__.model_fields
116
-
117
- file_name = ""
118
- content = None
119
- content_type = None
120
-
121
- for file_field_name in file_fields:
122
- file_field = file_fields[file_field_name]
143
+ if isinstance(val, List):
144
+ # Handle array of files
145
+ for file_obj in val:
146
+ if not _is_set(file_obj):
147
+ continue
148
+
149
+ file_name, content, content_type = _extract_file_properties(file_obj)
123
150
 
124
- file_metadata = find_field_metadata(file_field, MultipartFormMetadata)
125
- if file_metadata is None:
126
- continue
151
+ if content_type is not None:
152
+ files.append((f_name + "[]", (file_name, content, content_type)))
153
+ else:
154
+ files.append((f_name + "[]", (file_name, content)))
155
+ else:
156
+ # Handle single file
157
+ file_name, content, content_type = _extract_file_properties(val)
127
158
 
128
- if file_metadata.content:
129
- content = getattr(val, file_field_name, None)
130
- elif file_field_name == "content_type":
131
- content_type = getattr(val, file_field_name, None)
159
+ if content_type is not None:
160
+ files.append((f_name, (file_name, content, content_type)))
132
161
  else:
133
- file_name = getattr(val, file_field_name)
134
-
135
- if file_name == "" or content is None:
136
- raise ValueError("invalid multipart/form-data file")
137
-
138
- if content_type is not None:
139
- files[f_name] = (file_name, content, content_type)
140
- else:
141
- files[f_name] = (file_name, content)
162
+ files.append((f_name, (file_name, content)))
142
163
  elif field_metadata.json:
143
- files[f_name] = (
164
+ files.append((f_name, (
144
165
  None,
145
166
  marshal_json(val, request_field_types[name]),
146
167
  "application/json",
147
- )
168
+ )))
148
169
  else:
149
170
  if isinstance(val, List):
150
171
  values = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: compass_api_sdk
3
- Version: 0.9.13
3
+ Version: 0.9.14
4
4
  Summary: Compass API SDK.
5
5
  Author: royalnine
6
6
  Requires-Python: >=3.9.2
@@ -268,6 +268,12 @@ with CompassAPI(
268
268
  * [balance](https://github.com/CompassLabs/mono/blob/master/docs/sdks/tokensdk/README.md#balance) - Token Balance
269
269
  * [transfer](https://github.com/CompassLabs/mono/blob/master/docs/sdks/tokensdk/README.md#transfer) - Transfer ETH or ERC20 Tokens.
270
270
 
271
+ ### [transaction_batching](https://github.com/CompassLabs/mono/blob/master/docs/sdks/transactionbatching/README.md)
272
+
273
+ * [authorization](https://github.com/CompassLabs/mono/blob/master/docs/sdks/transactionbatching/README.md#authorization) - Enable transaction bundling.
274
+ * [execute](https://github.com/CompassLabs/mono/blob/master/docs/sdks/transactionbatching/README.md#execute) - Construct Bundled Transaction
275
+ * [aave_loop](https://github.com/CompassLabs/mono/blob/master/docs/sdks/transactionbatching/README.md#aave_loop) - AAVE leverage long/short
276
+
271
277
  ### [uniswap_v3](https://github.com/CompassLabs/mono/blob/master/docs/sdks/uniswapv3/README.md)
272
278
 
273
279
  * [quote_buy_exactly](https://github.com/CompassLabs/mono/blob/master/docs/sdks/uniswapv3/README.md#quote_buy_exactly) - Get quote - to specified amount
@@ -2,7 +2,7 @@ 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=vsLqHuq0E2RWXbpXtdEsY0kH6fz_WA8KvCa2Lm2HBqU,474
5
+ compass_api_sdk/_version.py,sha256=6bdElqixoKU5pExPNNw9hyaFTTdgCtzrPUTNOr0PbZo,474
6
6
  compass_api_sdk/aave_v3.py,sha256=RmNPcYy3tmtbufL_UaZ6inLtUOnSqidAZIIyxXeKd-g,126400
7
7
  compass_api_sdk/aerodrome_slipstream.py,sha256=zPbCz8ySxnjBGoy2DjqpN6Np5kmjE4rqKzmKZScMRbY,83443
8
8
  compass_api_sdk/basesdk.py,sha256=xDxC-X-LHCwtVy8SPM6nckSu1NmF8uKhHUUQd3X-syo,11810
@@ -10,7 +10,7 @@ compass_api_sdk/errors/__init__.py,sha256=V3vSSmUvxXtgwHL60IBI0MzLWll8h373LvT3el
10
10
  compass_api_sdk/errors/apierror.py,sha256=9mTyJSyvUAOnSfW_1HWt9dGl8IDlpQ68DebwYsDNdug,528
11
11
  compass_api_sdk/errors/httpvalidationerror.py,sha256=KBdpK3fYQoeMB-3m9dLKiMYimFN7B9VLma6YqMKX5k0,671
12
12
  compass_api_sdk/httpclient.py,sha256=Eu73urOAiZQtdUIyOUnPccxCiBbWEKrXG-JrRG3SLM4,3946
13
- compass_api_sdk/models/__init__.py,sha256=N3fpWPAiRL4UKgdf96Bu3dII-Nzx59bP28LWxZgQ5SA,116094
13
+ compass_api_sdk/models/__init__.py,sha256=3MlgH3S7zKwPVZljmyfdD3VVcs6DAAS6j1dJoWr7xp4,118275
14
14
  compass_api_sdk/models/aave_avg_rateop.py,sha256=Qn7IkBwZv5zY_L15V_LONkANzQPTbtmK2Wwhc2iqYz8,3718
15
15
  compass_api_sdk/models/aave_historical_transactionsop.py,sha256=7Ghmin3AWvh2knbC-M0CZ0chL8q3fJU-GeDgXeoY0s4,1789
16
16
  compass_api_sdk/models/aave_liquidity_changeop.py,sha256=o9G4dD2foyhbunziTv_177Qr2AK37KTIQsQfvPxo5Fs,2785
@@ -25,6 +25,7 @@ compass_api_sdk/models/aaveborrowparams.py,sha256=Sb_i4KtK1ZVGGzkt7WU391cJzCryRp
25
25
  compass_api_sdk/models/aaveborrowrequest.py,sha256=IUHTHTa3icfr9esg4owq98SyckK2rzOX-odpVFn6l8w,3568
26
26
  compass_api_sdk/models/aavehistoricaltransactionsresponse.py,sha256=G9yw8V7UHQL9m8mJZgHSqhvdymo5mJbJoIKtbtRSzlg,2504
27
27
  compass_api_sdk/models/aaveliquiditychangeresponse.py,sha256=G_fjNFMMAViJVXUejTdqNDyNrv-BieQDDpT6iwtwCwg,811
28
+ compass_api_sdk/models/aavelooprequest.py,sha256=AfqNPvHRaCCrZPlqcQ5KG8qcEB52SkKV0zHDLElBmEs,3874
28
29
  compass_api_sdk/models/aaverateresponse.py,sha256=7Ra_FKYbGrm7ZqzNi8-1T0v2xDAGyZf6Iw5Juh1bXBI,1156
29
30
  compass_api_sdk/models/aaverepayparams.py,sha256=CJxfD0lckwHMqvoEqGvJFCS0yN4ADsgMLbaD0ajdOTg,3293
30
31
  compass_api_sdk/models/aaverepayrequest.py,sha256=wAT4zqxF_FlFj_QycGKXRr-aenw3AQlHSVr6J6maXCo,3552
@@ -65,7 +66,7 @@ compass_api_sdk/models/compass_api_backend_models_morpho_read_response_check_use
65
66
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_check_user_position_vaultstate.py,sha256=d35pPUuS2S2PS92QMcswYRqRx6qbr_gyDC-O-_4SNaY,642
66
67
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_market_apydata.py,sha256=p6oN-4Dh-4JNjG3048l6mu5oApqvpVWLe7mYEPaWWJI,753
67
68
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_market_asset.py,sha256=dcnk2hsf77NhGtZA8wGZwjqnEoPhwoFZ5qvseMdpibw,1663
68
- compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_market_marketstate.py,sha256=B_xxWuQ4rhl3Zjt_FyTajFe9B4wrYnuQUU5VFLSls_Y,2424
69
+ compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_market_marketstate.py,sha256=DZ5p29aIf1KoeTe1wGc-mYy8fZ7mhsJ4Sov1ewoX42g,2982
69
70
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_markets_asset.py,sha256=pMWAh-oYo4YBmeVpoh2XoPn8PmFWSrvRH0Gg7sPT8xQ,488
70
71
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_markets_marketstate.py,sha256=wour5BGvKGddpI_qfs7WHfDewE5-cLdRjq7L-QTAQLg,2133
71
72
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_vault_asset.py,sha256=bWO0t2sKFS3Cx3j7zUXPgGK9i1QIUcrdnyQksunbNQU,1661
@@ -92,7 +93,7 @@ compass_api_sdk/models/liquidity.py,sha256=WOPaK4SXj2C5TBLZlfoaQbcnzhcmFCEUFz59m
92
93
  compass_api_sdk/models/lpbalance.py,sha256=8IxmblTajQs3EZgSqZXD1WOd8Adkzib08iJzxqZryVw,464
93
94
  compass_api_sdk/models/market.py,sha256=GHeU1pdGnyGNDxyx2aSvMfLeUTW1s_wLEkMY5SqBPRg,368
94
95
  compass_api_sdk/models/marketposition.py,sha256=X-qOGEKxLfk-aLWMweaWraTh5G2x_ImBSZCg8_mPUEo,2151
95
- compass_api_sdk/models/metadata.py,sha256=0LfppbQTqyZSbbIlhd5jZfHQq3R5TTxg15DdMoEaMdY,1634
96
+ compass_api_sdk/models/metadata.py,sha256=QtYhxd8PZdJOC2T2SkaKmcAwxg8cfRMjVvpj-D4dytg,1496
96
97
  compass_api_sdk/models/morpho_market_positionop.py,sha256=Oq1MpGNsCsNNrKRVATDpmC9nJO2TKwYi_dSUswuu-iI,1484
97
98
  compass_api_sdk/models/morpho_marketop.py,sha256=xxr06QlU1xkjje5jCFmRT7fg_QDyvaD3c0HsMoDs_I4,1130
98
99
  compass_api_sdk/models/morpho_marketsop.py,sha256=HQZpncW9JeH-8jtKQAqcrQ5yVkE3h4r5_Sk9khU0Viw,2377
@@ -124,6 +125,9 @@ compass_api_sdk/models/morphowithdrawcollateralrequest.py,sha256=0i6sFnv2YRWCzi_
124
125
  compass_api_sdk/models/morphowithdrawparams.py,sha256=Tm_uYiD04bl7ZOxyfubRk0pmTup_EtNM8sb0lVHbLqA,2511
125
126
  compass_api_sdk/models/morphowithdrawrequest.py,sha256=9xEVCTNG9yxffOODyX3UtNaULL70TmdcDm07v1JHRBY,2868
126
127
  compass_api_sdk/models/movement10percent.py,sha256=z_GUd5GJyXpqsLM3X01GShe7Uwg3uwp8LOy7sjiOUgw,767
128
+ compass_api_sdk/models/multicallauthorizationrequest.py,sha256=h5-2acLlhV9assgIIHyVIgTak1IJathqa-viS-PkvMA,1155
129
+ compass_api_sdk/models/multicallauthorizationresponse.py,sha256=3jjdz9Mz-tKjhBzZbVaJW51no58HSqcxfHJwuZsgnhg,914
130
+ compass_api_sdk/models/multicallexecuterequest.py,sha256=iVCfkarzlLYQrdo2sCRB9YJyJ-dayaf321j0Hh4Fit8,1095
127
131
  compass_api_sdk/models/openposition.py,sha256=jd5t6ku3f7J0PA-1LmfWyrNYrQybGF68ebfVKgkSzdc,1013
128
132
  compass_api_sdk/models/pendle_marketop.py,sha256=HYn46j-GhbEhuLoN0yWgaRUlgGs8n8OHYmGpO6K7VB0,1124
129
133
  compass_api_sdk/models/pendle_marketsop.py,sha256=k4G89uNzGBzBNYSqdmlDM1PierxtEjC4_e_hbD2XjPI,830
@@ -218,11 +222,12 @@ compass_api_sdk/models/yieldrange.py,sha256=WEpZR24JddnCS1_13y2P1CdD0lBi6dPktysC
218
222
  compass_api_sdk/morpho.py,sha256=JtcZoP-M_V0fw2zCCbxejmPrgrXZOiLDZILW1W0J2oQ,134352
219
223
  compass_api_sdk/pendle.py,sha256=BQ2SQn3jtaVjsmaU2fpqi_gj8mwCGL5zY7aSz3GwoJ0,97156
220
224
  compass_api_sdk/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
221
- compass_api_sdk/sdk.py,sha256=S1HG4x3TWzARXyognplU_20az1zI0NdfpxIFtr9_snU,7439
225
+ compass_api_sdk/sdk.py,sha256=AGJs2VvvUdJ2wo29jEA2UpER8kd3mJ9HooZVlKzqpxw,7692
222
226
  compass_api_sdk/sdkconfiguration.py,sha256=5nec4ViMLCsNWBd3DyEv8zWqU5Z77YZfzwX69jkdSnM,1607
223
227
  compass_api_sdk/sky.py,sha256=oZcj2VX26yc-nMTo5WIktz97mAjZT1J0K2IHvi_m3oM,43965
224
228
  compass_api_sdk/smart_account.py,sha256=iUrXLNi0QyPUNYBCP92PHziUFQ0qkRYdhyvfHVXvQWQ,9150
225
229
  compass_api_sdk/token_sdk.py,sha256=v53jnPVuIb5mRblmEncDWFP3ZZQ0-EsH-mFDXpV4HLU,34602
230
+ compass_api_sdk/transaction_batching.py,sha256=w4mJU9kdeufmOKxHrcZJcEFglyoBjWz-51ufz42dhXI,32233
226
231
  compass_api_sdk/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
227
232
  compass_api_sdk/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
228
233
  compass_api_sdk/uniswap_v3.py,sha256=oCVz-gLG3uNMd_3QhFSkgmEtyEtXUrVjCYnt8C-3J_o,109087
@@ -232,7 +237,7 @@ compass_api_sdk/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4s
232
237
  compass_api_sdk/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
233
238
  compass_api_sdk/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
234
239
  compass_api_sdk/utils/eventstreaming.py,sha256=LtcrfJYw4nP2Oe4Wl0-cEURLzRGYReRGWNFY5wYECIE,6186
235
- compass_api_sdk/utils/forms.py,sha256=YSSijXrsM2nfrRHlPQejh1uRRKfoILomHL3d9xpJiy8,6058
240
+ compass_api_sdk/utils/forms.py,sha256=EJdnrfIkuwpDtekyHutla0HjI_FypTYcmYNyPKEu_W0,6874
236
241
  compass_api_sdk/utils/headers.py,sha256=cPxWSmUILrefTGDzTH1Hdj7_Hlsj-EY6K5Tyc4iH4dk,3663
237
242
  compass_api_sdk/utils/logger.py,sha256=9nUtlKHo3RFsIVyMw5jq3wEKZMVwHnZMSc6xLp-otC0,520
238
243
  compass_api_sdk/utils/metadata.py,sha256=Per2KFXXOqOtoUWXrlIfjrSrBg199KrRW0nKQDgHIBU,3136
@@ -243,6 +248,6 @@ compass_api_sdk/utils/security.py,sha256=ktep3HKwbFs-MLxUYTM8Jd4v-ZBum5_Z0u1PFId
243
248
  compass_api_sdk/utils/serializers.py,sha256=hiHBXM1AY8_N2Z_rvFfNSYwvLBkSQlPGFp8poasdU4s,5986
244
249
  compass_api_sdk/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
245
250
  compass_api_sdk/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
246
- compass_api_sdk-0.9.13.dist-info/METADATA,sha256=BsutiesZAXKQuIAhTvAnubrIiQO1FW0k2bObwnx2wIY,26099
247
- compass_api_sdk-0.9.13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
248
- compass_api_sdk-0.9.13.dist-info/RECORD,,
251
+ compass_api_sdk-0.9.14.dist-info/METADATA,sha256=MN6Mazh7E7NgWN45OI2UAU16EwansyR6OHA6rnfv6po,26650
252
+ compass_api_sdk-0.9.14.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
253
+ compass_api_sdk-0.9.14.dist-info/RECORD,,