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

Files changed (69) hide show
  1. compass_api_sdk/_version.py +2 -2
  2. compass_api_sdk/aave_v3.py +38 -104
  3. compass_api_sdk/aerodrome_slipstream.py +8 -28
  4. compass_api_sdk/models/__init__.py +107 -230
  5. compass_api_sdk/models/aave_avg_rateop.py +44 -16
  6. compass_api_sdk/models/aave_historical_transactionsop.py +45 -20
  7. compass_api_sdk/models/aave_liquidity_changeop.py +44 -18
  8. compass_api_sdk/models/aave_rateop.py +44 -16
  9. compass_api_sdk/models/aave_reserve_overviewop.py +44 -18
  10. compass_api_sdk/models/aave_std_rateop.py +44 -16
  11. compass_api_sdk/models/aave_token_priceop.py +44 -18
  12. compass_api_sdk/models/aave_user_position_per_tokenop.py +44 -20
  13. compass_api_sdk/models/aave_user_position_summaryop.py +44 -20
  14. compass_api_sdk/models/aerodrome_slipstream_liquidity_provision_positionsop.py +45 -20
  15. compass_api_sdk/models/aerodrome_slipstream_pool_priceop.py +45 -20
  16. compass_api_sdk/models/{tokenbalance.py → compass_api_backend_models_generic_read_response_portfolio_tokenbalance.py} +4 -2
  17. compass_api_sdk/models/compass_api_backend_models_pendle_read_response_positions_tokenbalance.py +18 -0
  18. compass_api_sdk/models/details.py +39 -0
  19. compass_api_sdk/models/generic_allowanceop.py +45 -18
  20. compass_api_sdk/models/generic_ensop.py +45 -16
  21. compass_api_sdk/models/generic_portfolioop.py +45 -18
  22. compass_api_sdk/models/generic_supported_tokensop.py +44 -20
  23. compass_api_sdk/models/generic_visualize_portfolioop.py +45 -20
  24. compass_api_sdk/models/increaseallowanceparams.py +20 -16
  25. compass_api_sdk/models/increaseallowancerequest.py +20 -16
  26. compass_api_sdk/models/lpbalance.py +20 -0
  27. compass_api_sdk/models/morpho_market_positionop.py +44 -18
  28. compass_api_sdk/models/morpho_marketop.py +44 -18
  29. compass_api_sdk/models/morpho_marketsop.py +7 -18
  30. compass_api_sdk/models/morpho_user_positionop.py +44 -18
  31. compass_api_sdk/models/morpho_vault_positionop.py +44 -18
  32. compass_api_sdk/models/morpho_vaultop.py +44 -16
  33. compass_api_sdk/models/morpho_vaultsop.py +7 -18
  34. compass_api_sdk/models/movement10percent.py +23 -0
  35. compass_api_sdk/models/multicallactiontype.py +0 -1
  36. compass_api_sdk/models/multicallauthorizationrequest.py +1 -15
  37. compass_api_sdk/models/openposition.py +28 -0
  38. compass_api_sdk/models/pendle_marketop.py +45 -19
  39. compass_api_sdk/models/pendle_marketsop.py +73 -0
  40. compass_api_sdk/models/pendle_positionop.py +45 -19
  41. compass_api_sdk/models/pendle_positionsop.py +80 -0
  42. compass_api_sdk/models/pendlelistmarketsresponse.py +17 -0
  43. compass_api_sdk/models/pendlelistuserpositionsresponse.py +17 -0
  44. compass_api_sdk/models/pendlemarket.py +46 -0
  45. compass_api_sdk/models/portfolio.py +10 -3
  46. compass_api_sdk/models/position.py +41 -0
  47. compass_api_sdk/models/sky_positionop.py +45 -16
  48. compass_api_sdk/models/syposition.py +17 -0
  49. compass_api_sdk/models/token_addressop.py +44 -18
  50. compass_api_sdk/models/token_balanceop.py +44 -17
  51. compass_api_sdk/models/uniswap_liquidity_provision_in_rangeop.py +44 -20
  52. compass_api_sdk/models/uniswap_liquidity_provision_positionsop.py +45 -20
  53. compass_api_sdk/models/uniswap_pool_priceop.py +44 -18
  54. compass_api_sdk/models/uniswap_quote_buy_exactlyop.py +44 -19
  55. compass_api_sdk/models/uniswap_quote_sell_exactlyop.py +44 -19
  56. compass_api_sdk/models/useroperation.py +20 -26
  57. compass_api_sdk/models/yieldrange.py +16 -0
  58. compass_api_sdk/morpho.py +28 -72
  59. compass_api_sdk/pendle.py +423 -21
  60. compass_api_sdk/sky.py +4 -8
  61. compass_api_sdk/token_sdk.py +8 -16
  62. compass_api_sdk/transaction_batching.py +0 -6
  63. compass_api_sdk/uniswap_v3.py +20 -64
  64. compass_api_sdk/universal.py +34 -60
  65. {compass_api_sdk-0.6.0.dist-info → compass_api_sdk-0.6.2.dist-info}/METADATA +5 -3
  66. {compass_api_sdk-0.6.0.dist-info → compass_api_sdk-0.6.2.dist-info}/RECORD +67 -56
  67. compass_api_sdk/models/contractname.py +0 -41
  68. compass_api_sdk/models/increaseallowanceanyparams.py +0 -58
  69. {compass_api_sdk-0.6.0.dist-info → compass_api_sdk-0.6.2.dist-info}/WHEEL +0 -0
@@ -1,11 +1,17 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
15
 
10
16
 
11
17
  class AaveAvgRateChain(str, Enum):
@@ -16,14 +22,6 @@ class AaveAvgRateChain(str, Enum):
16
22
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
23
 
18
24
 
19
- AaveAvgRateBlockTypedDict = TypeAliasType("AaveAvgRateBlockTypedDict", Union[int, str])
20
- r"""The block number you want to get this data at."""
21
-
22
-
23
- AaveAvgRateBlock = TypeAliasType("AaveAvgRateBlock", Union[int, str])
24
- r"""The block number you want to get this data at."""
25
-
26
-
27
25
  class AaveAvgRateToken(str, Enum):
28
26
  r"""A class representing the token.
29
27
 
@@ -80,8 +78,8 @@ class AaveAvgRateToken(str, Enum):
80
78
  class AaveAvgRateRequestTypedDict(TypedDict):
81
79
  chain: AaveAvgRateChain
82
80
  r"""The chain to use."""
83
- block: NotRequired[AaveAvgRateBlockTypedDict]
84
- r"""The block number you want to get this data at."""
81
+ block: NotRequired[Nullable[int]]
82
+ r"""Optional block number (defaults to latest)."""
85
83
  token: AaveAvgRateToken
86
84
  r"""The symbol of the token.."""
87
85
  days: int
@@ -96,10 +94,10 @@ class AaveAvgRateRequest(BaseModel):
96
94
  r"""The chain to use."""
97
95
 
98
96
  block: Annotated[
99
- Optional[AaveAvgRateBlock],
97
+ OptionalNullable[int],
100
98
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
101
- ] = None
102
- r"""The block number you want to get this data at."""
99
+ ] = UNSET
100
+ r"""Optional block number (defaults to latest)."""
103
101
 
104
102
  token: Annotated[
105
103
  AaveAvgRateToken,
@@ -111,3 +109,33 @@ class AaveAvgRateRequest(BaseModel):
111
109
  int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
112
110
  ] = 7
113
111
  r"""The number of days for which the average shall be calculated."""
112
+
113
+ @model_serializer(mode="wrap")
114
+ def serialize_model(self, handler):
115
+ optional_fields = ["block"]
116
+ nullable_fields = ["block"]
117
+ null_default_fields = []
118
+
119
+ serialized = handler(self)
120
+
121
+ m = {}
122
+
123
+ for n, f in type(self).model_fields.items():
124
+ k = f.alias or n
125
+ val = serialized.get(k)
126
+ serialized.pop(k, None)
127
+
128
+ optional_nullable = k in optional_fields and k in nullable_fields
129
+ is_set = (
130
+ self.__pydantic_fields_set__.intersection({n})
131
+ or k in null_default_fields
132
+ ) # pylint: disable=no-member
133
+
134
+ if val is not None and val != UNSET_SENTINEL:
135
+ m[k] = val
136
+ elif val != UNSET_SENTINEL and (
137
+ not k in optional_fields or (optional_nullable and is_set)
138
+ ):
139
+ m[k] = val
140
+
141
+ return m
@@ -1,11 +1,18 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
16
 
10
17
 
11
18
  class AaveHistoricalTransactionsChain(str, Enum):
@@ -16,18 +23,6 @@ class AaveHistoricalTransactionsChain(str, Enum):
16
23
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
24
 
18
25
 
19
- AaveHistoricalTransactionsBlockTypedDict = TypeAliasType(
20
- "AaveHistoricalTransactionsBlockTypedDict", Union[int, str]
21
- )
22
- r"""The block number you want to get this data at."""
23
-
24
-
25
- AaveHistoricalTransactionsBlock = TypeAliasType(
26
- "AaveHistoricalTransactionsBlock", Union[int, str]
27
- )
28
- r"""The block number you want to get this data at."""
29
-
30
-
31
26
  class AaveHistoricalTransactionsRequestTypedDict(TypedDict):
32
27
  offset: NotRequired[int]
33
28
  r"""The offset of the first item to return."""
@@ -35,8 +30,8 @@ class AaveHistoricalTransactionsRequestTypedDict(TypedDict):
35
30
  r"""The number of items to return."""
36
31
  chain: AaveHistoricalTransactionsChain
37
32
  r"""The chain to use."""
38
- block: NotRequired[AaveHistoricalTransactionsBlockTypedDict]
39
- r"""The block number you want to get this data at."""
33
+ block: NotRequired[Nullable[int]]
34
+ r"""Optional block number (defaults to latest)."""
40
35
  user_address: str
41
36
  r"""The address of the user to get historical transactions for."""
42
37
 
@@ -61,12 +56,42 @@ class AaveHistoricalTransactionsRequest(BaseModel):
61
56
  r"""The chain to use."""
62
57
 
63
58
  block: Annotated[
64
- Optional[AaveHistoricalTransactionsBlock],
59
+ OptionalNullable[int],
65
60
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
66
- ] = None
67
- r"""The block number you want to get this data at."""
61
+ ] = UNSET
62
+ r"""Optional block number (defaults to latest)."""
68
63
 
69
64
  user_address: Annotated[
70
65
  str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
71
66
  ] = "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
72
67
  r"""The address of the user to get historical transactions for."""
68
+
69
+ @model_serializer(mode="wrap")
70
+ def serialize_model(self, handler):
71
+ optional_fields = ["offset", "limit", "block"]
72
+ nullable_fields = ["block"]
73
+ null_default_fields = []
74
+
75
+ serialized = handler(self)
76
+
77
+ m = {}
78
+
79
+ for n, f in type(self).model_fields.items():
80
+ k = f.alias or n
81
+ val = serialized.get(k)
82
+ serialized.pop(k, None)
83
+
84
+ optional_nullable = k in optional_fields and k in nullable_fields
85
+ is_set = (
86
+ self.__pydantic_fields_set__.intersection({n})
87
+ or k in null_default_fields
88
+ ) # pylint: disable=no-member
89
+
90
+ if val is not None and val != UNSET_SENTINEL:
91
+ m[k] = val
92
+ elif val != UNSET_SENTINEL and (
93
+ not k in optional_fields or (optional_nullable and is_set)
94
+ ):
95
+ m[k] = val
96
+
97
+ return m
@@ -1,11 +1,17 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
15
 
10
16
 
11
17
  class AaveLiquidityChangeChain(str, Enum):
@@ -16,16 +22,6 @@ class AaveLiquidityChangeChain(str, Enum):
16
22
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
23
 
18
24
 
19
- AaveLiquidityChangeBlockTypedDict = TypeAliasType(
20
- "AaveLiquidityChangeBlockTypedDict", Union[int, str]
21
- )
22
- r"""The block number you want to get this data at."""
23
-
24
-
25
- AaveLiquidityChangeBlock = TypeAliasType("AaveLiquidityChangeBlock", Union[int, str])
26
- r"""The block number you want to get this data at."""
27
-
28
-
29
25
  class AaveLiquidityChangeToken(str, Enum):
30
26
  r"""A class representing the token.
31
27
 
@@ -82,8 +78,8 @@ class AaveLiquidityChangeToken(str, Enum):
82
78
  class AaveLiquidityChangeRequestTypedDict(TypedDict):
83
79
  chain: AaveLiquidityChangeChain
84
80
  r"""The chain to use."""
85
- block: NotRequired[AaveLiquidityChangeBlockTypedDict]
86
- r"""The block number you want to get this data at."""
81
+ block: NotRequired[Nullable[int]]
82
+ r"""Optional block number (defaults to latest)."""
87
83
  token: AaveLiquidityChangeToken
88
84
  r"""The symbol of the asset to get liquidity change for.."""
89
85
  start_block: int
@@ -100,10 +96,10 @@ class AaveLiquidityChangeRequest(BaseModel):
100
96
  r"""The chain to use."""
101
97
 
102
98
  block: Annotated[
103
- Optional[AaveLiquidityChangeBlock],
99
+ OptionalNullable[int],
104
100
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
105
- ] = None
106
- r"""The block number you want to get this data at."""
101
+ ] = UNSET
102
+ r"""Optional block number (defaults to latest)."""
107
103
 
108
104
  token: Annotated[
109
105
  AaveLiquidityChangeToken,
@@ -120,3 +116,33 @@ class AaveLiquidityChangeRequest(BaseModel):
120
116
  int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
121
117
  ] = 319407231
122
118
  r"""The end block to calculate liquidity change to."""
119
+
120
+ @model_serializer(mode="wrap")
121
+ def serialize_model(self, handler):
122
+ optional_fields = ["block"]
123
+ nullable_fields = ["block"]
124
+ null_default_fields = []
125
+
126
+ serialized = handler(self)
127
+
128
+ m = {}
129
+
130
+ for n, f in type(self).model_fields.items():
131
+ k = f.alias or n
132
+ val = serialized.get(k)
133
+ serialized.pop(k, None)
134
+
135
+ optional_nullable = k in optional_fields and k in nullable_fields
136
+ is_set = (
137
+ self.__pydantic_fields_set__.intersection({n})
138
+ or k in null_default_fields
139
+ ) # pylint: disable=no-member
140
+
141
+ if val is not None and val != UNSET_SENTINEL:
142
+ m[k] = val
143
+ elif val != UNSET_SENTINEL and (
144
+ not k in optional_fields or (optional_nullable and is_set)
145
+ ):
146
+ m[k] = val
147
+
148
+ return m
@@ -1,11 +1,17 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
15
 
10
16
 
11
17
  class AaveRateChain(str, Enum):
@@ -16,14 +22,6 @@ class AaveRateChain(str, Enum):
16
22
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
23
 
18
24
 
19
- AaveRateBlockTypedDict = TypeAliasType("AaveRateBlockTypedDict", Union[int, str])
20
- r"""The block number you want to get this data at."""
21
-
22
-
23
- AaveRateBlock = TypeAliasType("AaveRateBlock", Union[int, str])
24
- r"""The block number you want to get this data at."""
25
-
26
-
27
25
  class AaveRateToken(str, Enum):
28
26
  r"""A class representing the token.
29
27
 
@@ -80,8 +78,8 @@ class AaveRateToken(str, Enum):
80
78
  class AaveRateRequestTypedDict(TypedDict):
81
79
  chain: AaveRateChain
82
80
  r"""The chain to use."""
83
- block: NotRequired[AaveRateBlockTypedDict]
84
- r"""The block number you want to get this data at."""
81
+ block: NotRequired[Nullable[int]]
82
+ r"""Optional block number (defaults to latest)."""
85
83
  token: AaveRateToken
86
84
  r"""The symbol of the asset to fetch the users' position on.."""
87
85
 
@@ -94,13 +92,43 @@ class AaveRateRequest(BaseModel):
94
92
  r"""The chain to use."""
95
93
 
96
94
  block: Annotated[
97
- Optional[AaveRateBlock],
95
+ OptionalNullable[int],
98
96
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
99
- ] = None
100
- r"""The block number you want to get this data at."""
97
+ ] = UNSET
98
+ r"""Optional block number (defaults to latest)."""
101
99
 
102
100
  token: Annotated[
103
101
  AaveRateToken,
104
102
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
105
103
  ] = AaveRateToken.USDC
106
104
  r"""The symbol of the asset to fetch the users' position on.."""
105
+
106
+ @model_serializer(mode="wrap")
107
+ def serialize_model(self, handler):
108
+ optional_fields = ["block"]
109
+ nullable_fields = ["block"]
110
+ null_default_fields = []
111
+
112
+ serialized = handler(self)
113
+
114
+ m = {}
115
+
116
+ for n, f in type(self).model_fields.items():
117
+ k = f.alias or n
118
+ val = serialized.get(k)
119
+ serialized.pop(k, None)
120
+
121
+ optional_nullable = k in optional_fields and k in nullable_fields
122
+ is_set = (
123
+ self.__pydantic_fields_set__.intersection({n})
124
+ or k in null_default_fields
125
+ ) # pylint: disable=no-member
126
+
127
+ if val is not None and val != UNSET_SENTINEL:
128
+ m[k] = val
129
+ elif val != UNSET_SENTINEL and (
130
+ not k in optional_fields or (optional_nullable and is_set)
131
+ ):
132
+ m[k] = val
133
+
134
+ return m
@@ -1,11 +1,17 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
15
 
10
16
 
11
17
  class AaveReserveOverviewChain(str, Enum):
@@ -16,16 +22,6 @@ class AaveReserveOverviewChain(str, Enum):
16
22
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
23
 
18
24
 
19
- AaveReserveOverviewBlockTypedDict = TypeAliasType(
20
- "AaveReserveOverviewBlockTypedDict", Union[int, str]
21
- )
22
- r"""The block number you want to get this data at."""
23
-
24
-
25
- AaveReserveOverviewBlock = TypeAliasType("AaveReserveOverviewBlock", Union[int, str])
26
- r"""The block number you want to get this data at."""
27
-
28
-
29
25
  class AaveReserveOverviewToken(str, Enum):
30
26
  r"""A class representing the token.
31
27
 
@@ -82,8 +78,8 @@ class AaveReserveOverviewToken(str, Enum):
82
78
  class AaveReserveOverviewRequestTypedDict(TypedDict):
83
79
  chain: AaveReserveOverviewChain
84
80
  r"""The chain to use."""
85
- block: NotRequired[AaveReserveOverviewBlockTypedDict]
86
- r"""The block number you want to get this data at."""
81
+ block: NotRequired[Nullable[int]]
82
+ r"""Optional block number (defaults to latest)."""
87
83
  token: AaveReserveOverviewToken
88
84
  r"""The symbol of the asset.."""
89
85
 
@@ -96,13 +92,43 @@ class AaveReserveOverviewRequest(BaseModel):
96
92
  r"""The chain to use."""
97
93
 
98
94
  block: Annotated[
99
- Optional[AaveReserveOverviewBlock],
95
+ OptionalNullable[int],
100
96
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
101
- ] = None
102
- r"""The block number you want to get this data at."""
97
+ ] = UNSET
98
+ r"""Optional block number (defaults to latest)."""
103
99
 
104
100
  token: Annotated[
105
101
  AaveReserveOverviewToken,
106
102
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
107
103
  ] = AaveReserveOverviewToken.USDC
108
104
  r"""The symbol of the asset.."""
105
+
106
+ @model_serializer(mode="wrap")
107
+ def serialize_model(self, handler):
108
+ optional_fields = ["block"]
109
+ nullable_fields = ["block"]
110
+ null_default_fields = []
111
+
112
+ serialized = handler(self)
113
+
114
+ m = {}
115
+
116
+ for n, f in type(self).model_fields.items():
117
+ k = f.alias or n
118
+ val = serialized.get(k)
119
+ serialized.pop(k, None)
120
+
121
+ optional_nullable = k in optional_fields and k in nullable_fields
122
+ is_set = (
123
+ self.__pydantic_fields_set__.intersection({n})
124
+ or k in null_default_fields
125
+ ) # pylint: disable=no-member
126
+
127
+ if val is not None and val != UNSET_SENTINEL:
128
+ m[k] = val
129
+ elif val != UNSET_SENTINEL and (
130
+ not k in optional_fields or (optional_nullable and is_set)
131
+ ):
132
+ m[k] = val
133
+
134
+ return m
@@ -1,11 +1,17 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
15
 
10
16
 
11
17
  class AaveStdRateChain(str, Enum):
@@ -16,14 +22,6 @@ class AaveStdRateChain(str, Enum):
16
22
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
23
 
18
24
 
19
- AaveStdRateBlockTypedDict = TypeAliasType("AaveStdRateBlockTypedDict", Union[int, str])
20
- r"""The block number you want to get this data at."""
21
-
22
-
23
- AaveStdRateBlock = TypeAliasType("AaveStdRateBlock", Union[int, str])
24
- r"""The block number you want to get this data at."""
25
-
26
-
27
25
  class AaveStdRateToken(str, Enum):
28
26
  r"""A class representing the token.
29
27
 
@@ -80,8 +78,8 @@ class AaveStdRateToken(str, Enum):
80
78
  class AaveStdRateRequestTypedDict(TypedDict):
81
79
  chain: AaveStdRateChain
82
80
  r"""The chain to use."""
83
- block: NotRequired[AaveStdRateBlockTypedDict]
84
- r"""The block number you want to get this data at."""
81
+ block: NotRequired[Nullable[int]]
82
+ r"""Optional block number (defaults to latest)."""
85
83
  token: AaveStdRateToken
86
84
  r"""The symbol of the tokenn.."""
87
85
  days: int
@@ -96,10 +94,10 @@ class AaveStdRateRequest(BaseModel):
96
94
  r"""The chain to use."""
97
95
 
98
96
  block: Annotated[
99
- Optional[AaveStdRateBlock],
97
+ OptionalNullable[int],
100
98
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
101
- ] = None
102
- r"""The block number you want to get this data at."""
99
+ ] = UNSET
100
+ r"""Optional block number (defaults to latest)."""
103
101
 
104
102
  token: Annotated[
105
103
  AaveStdRateToken,
@@ -111,3 +109,33 @@ class AaveStdRateRequest(BaseModel):
111
109
  int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
112
110
  ] = 7
113
111
  r"""The number of days for which the standard deviation shall be calculated."""
112
+
113
+ @model_serializer(mode="wrap")
114
+ def serialize_model(self, handler):
115
+ optional_fields = ["block"]
116
+ nullable_fields = ["block"]
117
+ null_default_fields = []
118
+
119
+ serialized = handler(self)
120
+
121
+ m = {}
122
+
123
+ for n, f in type(self).model_fields.items():
124
+ k = f.alias or n
125
+ val = serialized.get(k)
126
+ serialized.pop(k, None)
127
+
128
+ optional_nullable = k in optional_fields and k in nullable_fields
129
+ is_set = (
130
+ self.__pydantic_fields_set__.intersection({n})
131
+ or k in null_default_fields
132
+ ) # pylint: disable=no-member
133
+
134
+ if val is not None and val != UNSET_SENTINEL:
135
+ m[k] = val
136
+ elif val != UNSET_SENTINEL and (
137
+ not k in optional_fields or (optional_nullable and is_set)
138
+ ):
139
+ m[k] = val
140
+
141
+ return m
@@ -1,11 +1,17 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from compass_api_sdk.types import BaseModel
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
5
11
  from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
6
12
  from enum import Enum
7
- from typing import Optional, Union
8
- from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
15
 
10
16
 
11
17
  class AaveTokenPriceChain(str, Enum):
@@ -16,16 +22,6 @@ class AaveTokenPriceChain(str, Enum):
16
22
  ARBITRUM_MAINNET = "arbitrum:mainnet"
17
23
 
18
24
 
19
- AaveTokenPriceBlockTypedDict = TypeAliasType(
20
- "AaveTokenPriceBlockTypedDict", Union[int, str]
21
- )
22
- r"""The block number you want to get this data at."""
23
-
24
-
25
- AaveTokenPriceBlock = TypeAliasType("AaveTokenPriceBlock", Union[int, str])
26
- r"""The block number you want to get this data at."""
27
-
28
-
29
25
  class AaveTokenPriceToken(str, Enum):
30
26
  r"""A class representing the token.
31
27
 
@@ -82,8 +78,8 @@ class AaveTokenPriceToken(str, Enum):
82
78
  class AaveTokenPriceRequestTypedDict(TypedDict):
83
79
  chain: AaveTokenPriceChain
84
80
  r"""The chain to use."""
85
- block: NotRequired[AaveTokenPriceBlockTypedDict]
86
- r"""The block number you want to get this data at."""
81
+ block: NotRequired[Nullable[int]]
82
+ r"""Optional block number (defaults to latest)."""
87
83
  token: AaveTokenPriceToken
88
84
  r"""The symbol of the asset whose price you want.."""
89
85
 
@@ -96,13 +92,43 @@ class AaveTokenPriceRequest(BaseModel):
96
92
  r"""The chain to use."""
97
93
 
98
94
  block: Annotated[
99
- Optional[AaveTokenPriceBlock],
95
+ OptionalNullable[int],
100
96
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
101
- ] = None
102
- r"""The block number you want to get this data at."""
97
+ ] = UNSET
98
+ r"""Optional block number (defaults to latest)."""
103
99
 
104
100
  token: Annotated[
105
101
  AaveTokenPriceToken,
106
102
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
107
103
  ] = AaveTokenPriceToken.USDC
108
104
  r"""The symbol of the asset whose price you want.."""
105
+
106
+ @model_serializer(mode="wrap")
107
+ def serialize_model(self, handler):
108
+ optional_fields = ["block"]
109
+ nullable_fields = ["block"]
110
+ null_default_fields = []
111
+
112
+ serialized = handler(self)
113
+
114
+ m = {}
115
+
116
+ for n, f in type(self).model_fields.items():
117
+ k = f.alias or n
118
+ val = serialized.get(k)
119
+ serialized.pop(k, None)
120
+
121
+ optional_nullable = k in optional_fields and k in nullable_fields
122
+ is_set = (
123
+ self.__pydantic_fields_set__.intersection({n})
124
+ or k in null_default_fields
125
+ ) # pylint: disable=no-member
126
+
127
+ if val is not None and val != UNSET_SENTINEL:
128
+ m[k] = val
129
+ elif val != UNSET_SENTINEL and (
130
+ not k in optional_fields or (optional_nullable and is_set)
131
+ ):
132
+ m[k] = val
133
+
134
+ return m