architect-py 5.0.0b3__py3-none-any.whl → 5.1.0b1__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.
Files changed (74) hide show
  1. architect_py/__init__.py +432 -5
  2. architect_py/async_client.py +72 -38
  3. architect_py/client.py +11 -4
  4. architect_py/client.pyi +504 -0
  5. architect_py/common_types/__init__.py +2 -1
  6. architect_py/common_types/time_in_force.py +94 -0
  7. architect_py/common_types/tradable_product.py +9 -0
  8. architect_py/graphql_client/__init__.py +1 -216
  9. architect_py/graphql_client/client.py +2 -1043
  10. architect_py/graphql_client/enums.py +0 -72
  11. architect_py/graphql_client/fragments.py +4 -152
  12. architect_py/grpc/__init__.py +0 -143
  13. architect_py/grpc/client.py +6 -1
  14. architect_py/grpc/models/Core/RestartCptyRequest.py +40 -0
  15. architect_py/grpc/models/Core/RestartCptyResponse.py +20 -0
  16. architect_py/grpc/models/Marketdata/Liquidation.py +0 -1
  17. architect_py/grpc/models/Marketdata/TickersRequest.py +38 -12
  18. architect_py/grpc/models/Marketdata/Trade.py +0 -1
  19. architect_py/grpc/models/Oms/Order.py +33 -24
  20. architect_py/grpc/models/Oms/PlaceOrderRequest.py +33 -24
  21. architect_py/grpc/models/__init__.py +113 -2
  22. architect_py/grpc/models/definitions.py +2 -32
  23. architect_py/grpc/utils.py +1 -4
  24. architect_py/tests/test_order_entry.py +1 -2
  25. architect_py/tests/test_orderflow.py +1 -1
  26. architect_py/utils/pandas.py +4 -3
  27. architect_py-5.1.0b1.dist-info/METADATA +66 -0
  28. {architect_py-5.0.0b3.dist-info → architect_py-5.1.0b1.dist-info}/RECORD +47 -66
  29. {architect_py-5.0.0b3.dist-info → architect_py-5.1.0b1.dist-info}/WHEEL +1 -1
  30. examples/book_subscription.py +1 -2
  31. examples/candles.py +1 -3
  32. examples/common.py +1 -2
  33. examples/external_cpty.py +2 -2
  34. examples/funding_rate_mean_reversion_algo.py +9 -6
  35. examples/order_sending.py +27 -7
  36. examples/stream_l1_marketdata.py +1 -2
  37. examples/stream_l2_marketdata.py +1 -2
  38. examples/trades.py +1 -2
  39. examples/tutorial_async.py +5 -7
  40. examples/tutorial_sync.py +5 -6
  41. scripts/add_imports_to_inits.py +146 -0
  42. scripts/correct_sync_interface.py +143 -0
  43. scripts/postprocess_grpc.py +57 -11
  44. scripts/preprocess_grpc_schema.py +2 -0
  45. scripts/prune_graphql_schema.py +187 -0
  46. architect_py/client_interface.py +0 -63
  47. architect_py/common_types/scalars.py +0 -25
  48. architect_py/graphql_client/cancel_all_orders_mutation.py +0 -17
  49. architect_py/graphql_client/cancel_order_mutation.py +0 -23
  50. architect_py/graphql_client/create_jwt.py +0 -17
  51. architect_py/graphql_client/get_account_history_query.py +0 -27
  52. architect_py/graphql_client/get_account_query.py +0 -23
  53. architect_py/graphql_client/get_account_summaries_query.py +0 -27
  54. architect_py/graphql_client/get_account_summary_query.py +0 -25
  55. architect_py/graphql_client/get_candle_snapshot_query.py +0 -27
  56. architect_py/graphql_client/get_fills_query.py +0 -69
  57. architect_py/graphql_client/get_historical_orders_query.py +0 -27
  58. architect_py/graphql_client/get_l_1_book_snapshot_query.py +0 -21
  59. architect_py/graphql_client/get_l_1_book_snapshots_query.py +0 -23
  60. architect_py/graphql_client/get_l_2_book_snapshot_query.py +0 -25
  61. architect_py/graphql_client/get_market_status_query.py +0 -25
  62. architect_py/graphql_client/get_open_orders_query.py +0 -25
  63. architect_py/graphql_client/list_accounts_query.py +0 -23
  64. architect_py/graphql_client/place_order_mutation.py +0 -23
  65. architect_py/graphql_client/subscribe_candles.py +0 -16
  66. architect_py/graphql_client/subscribe_orderflow.py +0 -100
  67. architect_py/graphql_client/subscribe_trades.py +0 -27
  68. architect_py/graphql_client/user_email_query.py +0 -17
  69. architect_py/internal_utils/__init__.py +0 -0
  70. architect_py/internal_utils/no_pandas.py +0 -3
  71. architect_py-5.0.0b3.dist-info/METADATA +0 -123
  72. scripts/generate_sync_interface.py +0 -226
  73. {architect_py-5.0.0b3.dist-info → architect_py-5.1.0b1.dist-info}/licenses/LICENSE +0 -0
  74. {architect_py-5.0.0b3.dist-info → architect_py-5.1.0b1.dist-info}/top_level.txt +0 -0
@@ -4,78 +4,6 @@
4
4
  from enum import Enum
5
5
 
6
6
 
7
- class CancelStatus(str, Enum):
8
- PENDING = "PENDING"
9
- ACKED = "ACKED"
10
- REJECTED = "REJECTED"
11
- OUT = "OUT"
12
-
13
-
14
- class CandleWidth(str, Enum):
15
- ONE_SECOND = "ONE_SECOND"
16
- FIVE_SECOND = "FIVE_SECOND"
17
- ONE_MINUTE = "ONE_MINUTE"
18
- FIFTEEN_MINUTE = "FIFTEEN_MINUTE"
19
- ONE_HOUR = "ONE_HOUR"
20
- ONE_DAY = "ONE_DAY"
21
-
22
-
23
- class FillKind(str, Enum):
24
- NORMAL = "NORMAL"
25
- REVERSAL = "REVERSAL"
26
- CORRECTION = "CORRECTION"
27
-
28
-
29
7
  class MinOrderQuantityUnit(str, Enum):
30
8
  BASE = "BASE"
31
9
  QUOTE = "QUOTE"
32
-
33
-
34
- class OrderSource(str, Enum):
35
- API = "API"
36
- GUI = "GUI"
37
- ALGO = "ALGO"
38
- RECONCILED = "RECONCILED"
39
- CLI = "CLI"
40
- TELEGRAM = "TELEGRAM"
41
- OTHER = "OTHER"
42
-
43
-
44
- class OrderStatus(str, Enum):
45
- PENDING = "PENDING"
46
- OPEN = "OPEN"
47
- REJECTED = "REJECTED"
48
- OUT = "OUT"
49
- CANCELING = "CANCELING"
50
- CANCELED = "CANCELED"
51
- RECONCILED_OUT = "RECONCILED_OUT"
52
- STALE = "STALE"
53
- UNKNOWN = "UNKNOWN"
54
-
55
-
56
- class OrderType(str, Enum):
57
- LIMIT = "LIMIT"
58
- STOP_LOSS_LIMIT = "STOP_LOSS_LIMIT"
59
- TAKE_PROFIT_LIMIT = "TAKE_PROFIT_LIMIT"
60
-
61
-
62
- class PutOrCall(str, Enum):
63
- PUT = "PUT"
64
- CALL = "CALL"
65
-
66
-
67
- class SortTickersBy(str, Enum):
68
- VOLUME_DESC = "VOLUME_DESC"
69
- CHANGE_ASC = "CHANGE_ASC"
70
- CHANGE_DESC = "CHANGE_DESC"
71
- ABS_CHANGE_DESC = "ABS_CHANGE_DESC"
72
-
73
-
74
- class TimeInForce(str, Enum):
75
- GTC = "GTC"
76
- GTD = "GTD"
77
- DAY = "DAY"
78
- IOC = "IOC"
79
- FOK = "FOK"
80
- ATO = "ATO"
81
- ATC = "ATC"
@@ -1,93 +1,14 @@
1
1
  # Generated by ariadne-codegen
2
2
  # Source: queries.graphql
3
3
 
4
- from datetime import date, datetime
4
+ from datetime import date
5
5
  from decimal import Decimal
6
- from typing import Annotated, List, Optional
7
- from uuid import UUID
6
+ from typing import List, Optional
8
7
 
9
- from pydantic import BeforeValidator, Field
10
-
11
- from architect_py.common_types import OrderDir, TradableProduct
12
- from architect_py.common_types.order_dir import graphql_parse_order_dir
13
- from architect_py.common_types.tradable_product import parse_tradable_product
8
+ from pydantic import Field
14
9
 
15
10
  from .base_model import BaseModel
16
- from .enums import (
17
- CancelStatus,
18
- CandleWidth,
19
- MinOrderQuantityUnit,
20
- OrderSource,
21
- OrderStatus,
22
- OrderType,
23
- TimeInForce,
24
- )
25
-
26
-
27
- class AccountSummaryFields(BaseModel):
28
- account: UUID
29
- timestamp: datetime
30
- balances: List["AccountSummaryFieldsBalances"]
31
- positions: List["AccountSummaryFieldsPositions"]
32
- unrealized_pnl: Optional[Decimal] = Field(alias="unrealizedPnl")
33
- realized_pnl: Optional[Decimal] = Field(alias="realizedPnl")
34
- equity: Optional[Decimal]
35
- yesterday_equity: Optional[Decimal] = Field(alias="yesterdayEquity")
36
- cash_excess: Optional[Decimal] = Field(alias="cashExcess")
37
- purchasing_power: Optional[Decimal] = Field(alias="purchasingPower")
38
- total_margin: Optional[Decimal] = Field(alias="totalMargin")
39
- position_margin: Optional[Decimal] = Field(alias="positionMargin")
40
-
41
-
42
- class AccountSummaryFieldsBalances(BaseModel):
43
- product: str
44
- balance: Decimal
45
-
46
-
47
- class AccountSummaryFieldsPositions(BaseModel):
48
- symbol: Annotated[TradableProduct, BeforeValidator(parse_tradable_product)]
49
- quantity: Decimal
50
- trade_time: Optional[datetime] = Field(alias="tradeTime")
51
- cost_basis: Optional[Decimal] = Field(alias="costBasis")
52
- break_even_price: Optional[Decimal] = Field(alias="breakEvenPrice")
53
- liquidation_price: Optional[Decimal] = Field(alias="liquidationPrice")
54
-
55
-
56
- class AccountWithPermissionsFields(BaseModel):
57
- account: "AccountWithPermissionsFieldsAccount"
58
- trader: str
59
- permissions: "AccountWithPermissionsFieldsPermissions"
60
-
61
-
62
- class AccountWithPermissionsFieldsAccount(BaseModel):
63
- id: UUID
64
- name: str
65
-
66
-
67
- class AccountWithPermissionsFieldsPermissions(BaseModel):
68
- list: bool
69
- view: bool
70
- trade: bool
71
- reduce_or_close: bool = Field(alias="reduceOrClose")
72
- set_limits: bool = Field(alias="setLimits")
73
-
74
-
75
- class CancelFields(BaseModel):
76
- cancel_id: UUID = Field(alias="cancelId")
77
- order_id: str = Field(alias="orderId")
78
- recv_time: Optional[datetime] = Field(alias="recvTime")
79
- status: CancelStatus
80
- reject_reason: Optional[str] = Field(alias="rejectReason")
81
-
82
-
83
- class CandleFields(BaseModel):
84
- timestamp: Optional[datetime]
85
- width: CandleWidth
86
- open: Optional[Decimal]
87
- high: Optional[Decimal]
88
- low: Optional[Decimal]
89
- close: Optional[Decimal]
90
- volume: Decimal
11
+ from .enums import MinOrderQuantityUnit
91
12
 
92
13
 
93
14
  class ExecutionInfoFields(BaseModel):
@@ -102,66 +23,6 @@ class ExecutionInfoFields(BaseModel):
102
23
  maintenance_margin: Optional[Decimal] = Field(alias="maintenanceMargin")
103
24
 
104
25
 
105
- class L2BookLevelFields(BaseModel):
106
- price: Decimal
107
- size: Decimal
108
-
109
-
110
- class L2BookFields(BaseModel):
111
- timestamp: Optional[datetime]
112
- bids: List["L2BookFieldsBids"]
113
- asks: List["L2BookFieldsAsks"]
114
-
115
-
116
- class L2BookFieldsBids(L2BookLevelFields):
117
- pass
118
-
119
-
120
- class L2BookFieldsAsks(L2BookLevelFields):
121
- pass
122
-
123
-
124
- class MarketStatusFields(BaseModel):
125
- symbol: str
126
- is_trading: Optional[bool] = Field(alias="isTrading")
127
- is_quoting: Optional[bool] = Field(alias="isQuoting")
128
-
129
-
130
- class MarketTickerFields(BaseModel):
131
- symbol: str
132
- timestamp: Optional[datetime]
133
- bid_price: Optional[Decimal] = Field(alias="bidPrice")
134
- bid_size: Optional[Decimal] = Field(alias="bidSize")
135
- ask_price: Optional[Decimal] = Field(alias="askPrice")
136
- ask_size: Optional[Decimal] = Field(alias="askSize")
137
- last_price: Optional[Decimal] = Field(alias="lastPrice")
138
- last_size: Optional[Decimal] = Field(alias="lastSize")
139
-
140
-
141
- class OrderFields(BaseModel):
142
- id: str
143
- parent_id: Optional[str] = Field(alias="parentId")
144
- recv_time: Optional[datetime] = Field(alias="recvTime")
145
- status: OrderStatus
146
- reject_reason: Optional[str] = Field(alias="rejectReason")
147
- reject_message: Optional[str] = Field(alias="rejectMessage")
148
- symbol: str
149
- trader: str
150
- account: UUID
151
- dir: Annotated[OrderDir, BeforeValidator(graphql_parse_order_dir)]
152
- quantity: Decimal
153
- filled_quantity: Decimal = Field(alias="filledQuantity")
154
- average_fill_price: Optional[Decimal] = Field(alias="averageFillPrice")
155
- order_type: OrderType = Field(alias="orderType")
156
- limit_price: Optional[Decimal] = Field(alias="limitPrice")
157
- post_only: Optional[bool] = Field(alias="postOnly")
158
- trigger_price: Optional[Decimal] = Field(alias="triggerPrice")
159
- time_in_force: TimeInForce = Field(alias="timeInForce")
160
- good_til_date: Optional[datetime] = Field(alias="goodTilDate")
161
- source: OrderSource
162
- execution_venue: str = Field(alias="executionVenue")
163
-
164
-
165
26
  class SpreadLegFields(BaseModel):
166
27
  product: str
167
28
  quantity: Decimal
@@ -186,15 +47,6 @@ class ProductInfoFieldsSpreadLegs(SpreadLegFields):
186
47
  pass
187
48
 
188
49
 
189
- AccountSummaryFields.model_rebuild()
190
- AccountWithPermissionsFields.model_rebuild()
191
- CancelFields.model_rebuild()
192
- CandleFields.model_rebuild()
193
50
  ExecutionInfoFields.model_rebuild()
194
- L2BookLevelFields.model_rebuild()
195
- L2BookFields.model_rebuild()
196
- MarketStatusFields.model_rebuild()
197
- MarketTickerFields.model_rebuild()
198
- OrderFields.model_rebuild()
199
51
  SpreadLegFields.model_rebuild()
200
52
  ProductInfoFields.model_rebuild()
@@ -1,143 +0,0 @@
1
- from .models.Accounts.AccountsRequest import AccountsRequest
2
- from .models.Accounts.AccountsResponse import AccountsResponse
3
- from .models.Auth.CreateJwtRequest import CreateJwtRequest
4
- from .models.Auth.CreateJwtResponse import CreateJwtResponse
5
- from .models.Core.ConfigRequest import ConfigRequest
6
- from .models.Core.ConfigResponse import ConfigResponse
7
- from .models.Cpty.CptyRequest import CptyRequest
8
- from .models.Cpty.CptyResponse import CptyResponse
9
- from .models.Cpty.CptysRequest import CptysRequest
10
- from .models.Cpty.CptysResponse import CptysResponse
11
- from .models.Cpty.CptyStatus import CptyStatus
12
- from .models.Cpty.CptyStatusRequest import CptyStatusRequest
13
- from .models.definitions import (
14
- Account,
15
- AccountIdOrName,
16
- AccountPosition,
17
- AccountStatistics,
18
- AccountWithPermissions,
19
- CandleWidth,
20
- L2BookDiff,
21
- OrderId,
22
- OrderSource,
23
- OrderType,
24
- SortTickersBy,
25
- TimeInForce,
26
- TimeInForceEnum,
27
- TraderIdOrEmail,
28
- )
29
- from .models.Folio.AccountHistoryRequest import AccountHistoryRequest
30
- from .models.Folio.AccountHistoryResponse import AccountHistoryResponse
31
- from .models.Folio.AccountSummariesRequest import AccountSummariesRequest
32
- from .models.Folio.AccountSummariesResponse import AccountSummariesResponse
33
- from .models.Folio.AccountSummary import AccountSummary
34
- from .models.Folio.AccountSummaryRequest import AccountSummaryRequest
35
- from .models.Folio.HistoricalFillsRequest import HistoricalFillsRequest
36
- from .models.Folio.HistoricalFillsResponse import HistoricalFillsResponse
37
- from .models.Folio.HistoricalOrdersRequest import HistoricalOrdersRequest
38
- from .models.Folio.HistoricalOrdersResponse import HistoricalOrdersResponse
39
- from .models.Marketdata.ArrayOfL1BookSnapshot import ArrayOfL1BookSnapshot
40
- from .models.Marketdata.Candle import Candle
41
- from .models.Marketdata.HistoricalCandlesRequest import HistoricalCandlesRequest
42
- from .models.Marketdata.HistoricalCandlesResponse import HistoricalCandlesResponse
43
- from .models.Marketdata.L1BookSnapshot import L1BookSnapshot
44
- from .models.Marketdata.L1BookSnapshotRequest import L1BookSnapshotRequest
45
- from .models.Marketdata.L1BookSnapshotsRequest import L1BookSnapshotsRequest
46
- from .models.Marketdata.L2BookSnapshot import L2BookSnapshot
47
- from .models.Marketdata.L2BookSnapshotRequest import L2BookSnapshotRequest
48
- from .models.Marketdata.L2BookUpdate import L2BookUpdate
49
- from .models.Marketdata.Liquidation import Liquidation
50
- from .models.Marketdata.MarketStatus import MarketStatus
51
- from .models.Marketdata.MarketStatusRequest import MarketStatusRequest
52
- from .models.Marketdata.SubscribeCandlesRequest import SubscribeCandlesRequest
53
- from .models.Marketdata.SubscribeCurrentCandlesRequest import (
54
- SubscribeCurrentCandlesRequest,
55
- )
56
- from .models.Marketdata.SubscribeL1BookSnapshotsRequest import (
57
- SubscribeL1BookSnapshotsRequest,
58
- )
59
- from .models.Marketdata.SubscribeL2BookUpdatesRequest import (
60
- SubscribeL2BookUpdatesRequest,
61
- )
62
- from .models.Marketdata.SubscribeLiquidationsRequest import SubscribeLiquidationsRequest
63
- from .models.Marketdata.SubscribeManyCandlesRequest import SubscribeManyCandlesRequest
64
- from .models.Marketdata.SubscribeTickersRequest import SubscribeTickersRequest
65
- from .models.Marketdata.SubscribeTradesRequest import SubscribeTradesRequest
66
- from .models.Marketdata.Ticker import Ticker
67
- from .models.Marketdata.TickerRequest import TickerRequest
68
- from .models.Marketdata.TickersRequest import TickersRequest
69
- from .models.Marketdata.TickersResponse import TickersResponse
70
- from .models.Marketdata.TickerUpdate import TickerUpdate
71
- from .models.Marketdata.Trade import Trade
72
- from .models.Symbology.SymbolsRequest import SymbolsRequest
73
- from .models.Symbology.SymbolsResponse import SymbolsResponse
74
- from .resolve_endpoint import resolve_endpoint
75
-
76
- __all__ = [
77
- "Account",
78
- "AccountHistoryRequest",
79
- "AccountHistoryResponse",
80
- "AccountIdOrName",
81
- "AccountPosition",
82
- "AccountStatistics",
83
- "AccountsRequest",
84
- "AccountsResponse",
85
- "AccountSummaryRequest",
86
- "AccountSummary",
87
- "AccountSummariesRequest",
88
- "AccountSummariesResponse",
89
- "AccountWithPermissions",
90
- "ArrayOfL1BookSnapshot",
91
- "Candle",
92
- "CandleWidth",
93
- "CreateJwtRequest",
94
- "CreateJwtResponse",
95
- "ConfigRequest",
96
- "ConfigResponse",
97
- "CptyRequest",
98
- "CptyResponse",
99
- "CptysRequest",
100
- "CptysResponse",
101
- "CptyStatus",
102
- "CptyStatusRequest",
103
- "HistoricalFillsRequest",
104
- "HistoricalFillsResponse",
105
- "HistoricalOrdersRequest",
106
- "HistoricalOrdersResponse",
107
- "HistoricalCandlesRequest",
108
- "HistoricalCandlesResponse",
109
- "L1BookSnapshot",
110
- "L1BookSnapshotRequest",
111
- "L1BookSnapshotsRequest",
112
- "L2BookSnapshot",
113
- "L2BookSnapshotRequest",
114
- "L2BookUpdate",
115
- "L2BookDiff",
116
- "Liquidation",
117
- "MarketStatus",
118
- "MarketStatusRequest",
119
- "OrderId",
120
- "OrderSource",
121
- "OrderType",
122
- "SortTickersBy",
123
- "SubscribeCandlesRequest",
124
- "SubscribeCurrentCandlesRequest",
125
- "SubscribeL1BookSnapshotsRequest",
126
- "SubscribeL2BookUpdatesRequest",
127
- "SubscribeLiquidationsRequest",
128
- "SubscribeManyCandlesRequest",
129
- "SubscribeTickersRequest",
130
- "SubscribeTradesRequest",
131
- "Ticker",
132
- "TickerRequest",
133
- "TickersRequest",
134
- "TickersResponse",
135
- "TickerUpdate",
136
- "TimeInForce",
137
- "TimeInForceEnum",
138
- "Trade",
139
- "TraderIdOrEmail",
140
- "resolve_endpoint",
141
- "SymbolsRequest",
142
- "SymbolsResponse",
143
- ]
@@ -8,6 +8,11 @@ from . import *
8
8
  from .utils import RequestType, ResponseTypeGeneric, decoders, encoder
9
9
 
10
10
 
11
+ def dec_hook(type, obj):
12
+ # type should have a static method deserialize
13
+ return type.deserialize(obj)
14
+
15
+
11
16
  class GrpcClient:
12
17
  endpoint: str
13
18
  channel: grpc.aio.Channel
@@ -35,7 +40,7 @@ class GrpcClient:
35
40
  try:
36
41
  return decoders[response_type]
37
42
  except KeyError:
38
- decoder = msgspec.json.Decoder(type=response_type)
43
+ decoder = msgspec.json.Decoder(type=response_type, dec_hook=dec_hook)
39
44
  decoders[response_type] = decoder
40
45
  return decoder
41
46
 
@@ -0,0 +1,40 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: Core/RestartCptyRequest.json
3
+
4
+ from __future__ import annotations
5
+ from architect_py.grpc.models.Core.RestartCptyResponse import RestartCptyResponse
6
+
7
+ from msgspec import Struct
8
+
9
+
10
+ class RestartCptyRequest(Struct, omit_defaults=True):
11
+ cpty: str
12
+
13
+ # Constructor that takes all field titles as arguments for convenience
14
+ @classmethod
15
+ def new(
16
+ cls,
17
+ cpty: str,
18
+ ):
19
+ return cls(
20
+ cpty,
21
+ )
22
+
23
+ def __str__(self) -> str:
24
+ return f"RestartCptyRequest(cpty={self.cpty})"
25
+
26
+ @staticmethod
27
+ def get_response_type():
28
+ return RestartCptyResponse
29
+
30
+ @staticmethod
31
+ def get_unannotated_response_type():
32
+ return RestartCptyResponse
33
+
34
+ @staticmethod
35
+ def get_route() -> str:
36
+ return "/json.architect.Core/RestartCpty"
37
+
38
+ @staticmethod
39
+ def get_rpc_method():
40
+ return "unary"
@@ -0,0 +1,20 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: Core/RestartCptyResponse.json
3
+
4
+ from __future__ import annotations
5
+
6
+ from msgspec import Struct
7
+
8
+
9
+ class RestartCptyResponse(Struct, omit_defaults=True):
10
+ pass
11
+
12
+ # Constructor that takes all field titles as arguments for convenience
13
+ @classmethod
14
+ def new(
15
+ cls,
16
+ ):
17
+ return cls()
18
+
19
+ def __str__(self) -> str:
20
+ return f"RestartCptyResponse()"
@@ -10,7 +10,6 @@ from typing import Annotated
10
10
 
11
11
  from msgspec import Meta, Struct
12
12
 
13
- from .. import definitions
14
13
 
15
14
 
16
15
  class Liquidation(Struct, omit_defaults=True):
@@ -4,17 +4,19 @@
4
4
  from __future__ import annotations
5
5
  from architect_py.grpc.models.Marketdata.TickersResponse import TickersResponse
6
6
 
7
- from typing import List, Optional
7
+ from typing import Annotated, List, Optional
8
8
 
9
- from msgspec import Struct
9
+ from msgspec import Meta, Struct
10
10
 
11
11
  from .. import definitions
12
12
 
13
13
 
14
14
  class TickersRequest(Struct, omit_defaults=True):
15
- i: Optional[int] = None
16
- k: Optional[definitions.SortTickersBy] = None
17
- n: Optional[int] = None
15
+ i: Optional[Annotated[Optional[int], Meta(title="offset")]] = None
16
+ k: Optional[
17
+ Annotated[Optional[definitions.SortTickersBy], Meta(title="sort_by")]
18
+ ] = None
19
+ n: Optional[Annotated[Optional[int], Meta(title="limit")]] = None
18
20
  symbols: Optional[List[str]] = None
19
21
  venue: Optional[str] = None
20
22
 
@@ -22,22 +24,46 @@ class TickersRequest(Struct, omit_defaults=True):
22
24
  @classmethod
23
25
  def new(
24
26
  cls,
25
- i: Optional[int] = None,
26
- k: Optional[definitions.SortTickersBy] = None,
27
- n: Optional[int] = None,
27
+ offset: Optional[int] = None,
28
+ sort_by: Optional[definitions.SortTickersBy] = None,
29
+ limit: Optional[int] = None,
28
30
  symbols: Optional[List[str]] = None,
29
31
  venue: Optional[str] = None,
30
32
  ):
31
33
  return cls(
32
- i,
33
- k,
34
- n,
34
+ offset,
35
+ sort_by,
36
+ limit,
35
37
  symbols,
36
38
  venue,
37
39
  )
38
40
 
39
41
  def __str__(self) -> str:
40
- return f"TickersRequest(i={self.i},k={self.k},n={self.n},symbols={self.symbols},venue={self.venue})"
42
+ return f"TickersRequest(offset={self.i},sort_by={self.k},limit={self.n},symbols={self.symbols},venue={self.venue})"
43
+
44
+ @property
45
+ def offset(self) -> Optional[int]:
46
+ return self.i
47
+
48
+ @offset.setter
49
+ def offset(self, value: Optional[int]) -> None:
50
+ self.i = value
51
+
52
+ @property
53
+ def sort_by(self) -> Optional[definitions.SortTickersBy]:
54
+ return self.k
55
+
56
+ @sort_by.setter
57
+ def sort_by(self, value: Optional[definitions.SortTickersBy]) -> None:
58
+ self.k = value
59
+
60
+ @property
61
+ def limit(self) -> Optional[int]:
62
+ return self.n
63
+
64
+ @limit.setter
65
+ def limit(self, value: Optional[int]) -> None:
66
+ self.n = value
41
67
 
42
68
  @staticmethod
43
69
  def get_response_type():
@@ -10,7 +10,6 @@ from typing import Annotated, Optional
10
10
 
11
11
  from msgspec import Meta, Struct
12
12
 
13
- from .. import definitions
14
13
 
15
14
 
16
15
  class Trade(Struct, omit_defaults=True):