pmxt 1.3.3__py3-none-any.whl → 1.4.0__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.
pmxt/__init__.py CHANGED
@@ -33,7 +33,7 @@ from .models import (
33
33
  CreateOrderParams,
34
34
  )
35
35
 
36
- __version__ = "1.3.3"
36
+ __version__ = "1.4.0"
37
37
  __all__ = [
38
38
  # Exchanges
39
39
  "Polymarket",
@@ -24359,12 +24359,61 @@ var require_lib3 = __commonJS({
24359
24359
  }
24360
24360
  });
24361
24361
 
24362
+ // dist/utils/math.js
24363
+ var require_math = __commonJS({
24364
+ "dist/utils/math.js"(exports2) {
24365
+ "use strict";
24366
+ Object.defineProperty(exports2, "__esModule", { value: true });
24367
+ exports2.getExecutionPrice = getExecutionPrice;
24368
+ exports2.getExecutionPriceDetailed = getExecutionPriceDetailed;
24369
+ function getExecutionPrice(orderBook, side, amount) {
24370
+ const result = getExecutionPriceDetailed(orderBook, side, amount);
24371
+ return result.fullyFilled ? result.price : 0;
24372
+ }
24373
+ function getExecutionPriceDetailed(orderBook, side, amount) {
24374
+ if (amount <= 0) {
24375
+ throw new Error("Amount must be greater than 0");
24376
+ }
24377
+ let levels = (side === "buy" ? orderBook.asks : orderBook.bids).filter((l) => l.size > 0);
24378
+ levels.sort((a, b) => side === "buy" ? a.price - b.price : b.price - a.price);
24379
+ if (levels.length === 0) {
24380
+ return {
24381
+ price: 0,
24382
+ filledAmount: 0,
24383
+ fullyFilled: false
24384
+ };
24385
+ }
24386
+ let remainingAmount = amount;
24387
+ let totalCost = 0;
24388
+ let filledAmount = 0;
24389
+ const EPSILON = 1e-8;
24390
+ for (const level of levels) {
24391
+ if (remainingAmount <= EPSILON) {
24392
+ break;
24393
+ }
24394
+ const fillSize = Math.min(remainingAmount, level.size);
24395
+ totalCost += fillSize * level.price;
24396
+ filledAmount += fillSize;
24397
+ remainingAmount -= fillSize;
24398
+ }
24399
+ const fullyFilled = remainingAmount <= EPSILON;
24400
+ const executionPrice = filledAmount > EPSILON ? totalCost / filledAmount : 0;
24401
+ return {
24402
+ price: executionPrice,
24403
+ filledAmount,
24404
+ fullyFilled
24405
+ };
24406
+ }
24407
+ }
24408
+ });
24409
+
24362
24410
  // dist/BaseExchange.js
24363
24411
  var require_BaseExchange = __commonJS({
24364
24412
  "dist/BaseExchange.js"(exports2) {
24365
24413
  "use strict";
24366
24414
  Object.defineProperty(exports2, "__esModule", { value: true });
24367
24415
  exports2.PredictionMarketExchange = void 0;
24416
+ var math_1 = require_math();
24368
24417
  var PredictionMarketExchange = class {
24369
24418
  constructor(credentials) {
24370
24419
  this.credentials = credentials;
@@ -24438,6 +24487,12 @@ var require_BaseExchange = __commonJS({
24438
24487
  async fetchBalance() {
24439
24488
  throw new Error("Method fetchBalance not implemented.");
24440
24489
  }
24490
+ getExecutionPrice(orderBook, side, amount) {
24491
+ return (0, math_1.getExecutionPrice)(orderBook, side, amount);
24492
+ }
24493
+ getExecutionPriceDetailed(orderBook, side, amount) {
24494
+ return (0, math_1.getExecutionPriceDetailed)(orderBook, side, amount);
24495
+ }
24441
24496
  // ----------------------------------------------------------------------------
24442
24497
  // WebSocket Streaming Methods
24443
24498
  // ----------------------------------------------------------------------------
pmxt/client.py CHANGED
@@ -7,9 +7,10 @@ OpenAPI client, matching the JavaScript API exactly.
7
7
 
8
8
  import os
9
9
  import sys
10
- from typing import List, Optional, Dict, Any
10
+ from typing import List, Optional, Dict, Any, Literal
11
11
  from datetime import datetime
12
12
  from abc import ABC, abstractmethod
13
+ import json
13
14
 
14
15
  # Add generated client to path
15
16
  _GENERATED_PATH = os.path.join(os.path.dirname(__file__), "..", "generated")
@@ -35,6 +36,7 @@ from .models import (
35
36
  MarketFilterParams,
36
37
  HistoryFilterParams,
37
38
  CreateOrderParams,
39
+ ExecutionPriceResult,
38
40
  )
39
41
  from .server_manager import ServerManager
40
42
 
@@ -169,6 +171,15 @@ def _convert_balance(raw: Dict[str, Any]) -> Balance:
169
171
  )
170
172
 
171
173
 
174
+ def _convert_execution_result(raw: Dict[str, Any]) -> ExecutionPriceResult:
175
+ """Convert raw API response to ExecutionPriceResult."""
176
+ return ExecutionPriceResult(
177
+ price=raw.get("price", 0),
178
+ filled_amount=raw.get("filledAmount", 0),
179
+ fully_filled=raw.get("fullyFilled", False),
180
+ )
181
+
182
+
172
183
  class Exchange(ABC):
173
184
  """
174
185
  Base class for prediction market exchanges.
@@ -831,6 +842,77 @@ class Exchange(ABC):
831
842
  except ApiException as e:
832
843
  raise Exception(f"Failed to fetch balance: {e}")
833
844
 
845
+ def get_execution_price(
846
+ self,
847
+ order_book: OrderBook,
848
+ side: Literal["buy", "sell"],
849
+ amount: float
850
+ ) -> float:
851
+ """
852
+ Calculate the average execution price for a given amount.
853
+
854
+ Args:
855
+ order_book: The current order book
856
+ side: "buy" or "sell"
857
+ amount: The amount to execute
858
+
859
+ Returns:
860
+ The volume-weighted average price, or 0 if insufficient liquidity
861
+ """
862
+ result = self.get_execution_price_detailed(order_book, side, amount)
863
+ return result.price if result.fully_filled else 0
864
+
865
+ def get_execution_price_detailed(
866
+ self,
867
+ order_book: OrderBook,
868
+ side: Literal["buy", "sell"],
869
+ amount: float
870
+ ) -> ExecutionPriceResult:
871
+ """
872
+ Calculate detailed execution price information.
873
+
874
+ Args:
875
+ order_book: The current order book
876
+ side: "buy" or "sell"
877
+ amount: The amount to execute
878
+
879
+ Returns:
880
+ Detailed execution result
881
+ """
882
+ try:
883
+ # Convert order_book to dict for API call
884
+ bids = [{"price": b.price, "size": b.size} for b in order_book.bids]
885
+ asks = [{"price": a.price, "size": a.size} for a in order_book.asks]
886
+ ob_dict = {"bids": bids, "asks": asks, "timestamp": order_book.timestamp}
887
+
888
+ body = {
889
+ "args": [ob_dict, side, amount]
890
+ }
891
+
892
+ creds = self._get_credentials_dict()
893
+ if creds:
894
+ body["credentials"] = creds
895
+
896
+ url = f"{self._api_client.configuration.host}/api/{self.exchange_name}/getExecutionPriceDetailed"
897
+
898
+ headers = {"Content-Type": "application/json", "Accept": "application/json"}
899
+ headers.update(self._api_client.default_headers)
900
+
901
+ response = self._api_client.call_api(
902
+ method="POST",
903
+ url=url,
904
+ body=body,
905
+ header_params=headers
906
+ )
907
+
908
+ response.read()
909
+ data_json = json.loads(response.data)
910
+
911
+ data = self._handle_response(data_json)
912
+ return _convert_execution_result(data)
913
+ except Exception as e:
914
+ raise Exception(f"Failed to get execution price: {e}")
915
+
834
916
 
835
917
  class Polymarket(Exchange):
836
918
  """
pmxt/models.py CHANGED
@@ -9,6 +9,14 @@ from datetime import datetime
9
9
  from dataclasses import dataclass
10
10
 
11
11
 
12
+ # Parameter types
13
+ CandleInterval = Literal["1m", "5m", "15m", "1h", "6h", "1d"]
14
+ SortOption = Literal["volume", "liquidity", "newest"]
15
+ SearchIn = Literal["title", "description", "both"]
16
+ OrderSide = Literal["buy", "sell"]
17
+ OrderType = Literal["market", "limit"]
18
+
19
+
12
20
  @dataclass
13
21
  class MarketOutcome:
14
22
  """A single tradeable outcome within a market."""
@@ -146,6 +154,41 @@ class UnifiedEvent:
146
154
 
147
155
  tags: Optional[List[str]] = None
148
156
  """Event tags"""
157
+
158
+ def search_markets(self, query: str, search_in: SearchIn = "both") -> List[UnifiedMarket]:
159
+ """
160
+ Search for markets within this event by keyword.
161
+
162
+ Args:
163
+ query: Search query (case-insensitive)
164
+ search_in: Where to search - "title", "description", or "both"
165
+
166
+ Returns:
167
+ List of matching markets
168
+
169
+ Example:
170
+ >>> events = api.search_events('Fed Chair')
171
+ >>> event = events[0]
172
+ >>> warsh_markets = event.search_markets('Kevin Warsh')
173
+ """
174
+ query_lower = query.lower()
175
+ results = []
176
+
177
+ for market in self.markets:
178
+ match = False
179
+
180
+ if search_in in ("title", "both"):
181
+ if query_lower in market.title.lower():
182
+ match = True
183
+
184
+ if search_in in ("description", "both") and market.description:
185
+ if query_lower in market.description.lower():
186
+ match = True
187
+
188
+ if match:
189
+ results.append(market)
190
+
191
+ return results
149
192
 
150
193
 
151
194
 
@@ -174,6 +217,20 @@ class OrderBook:
174
217
  """Unix timestamp (milliseconds)"""
175
218
 
176
219
 
220
+ @dataclass
221
+ class ExecutionPriceResult:
222
+ """Result of an execution price calculation."""
223
+
224
+ price: float
225
+ """The volume-weighted average price"""
226
+
227
+ filled_amount: float
228
+ """The actual amount that can be filled"""
229
+
230
+ fully_filled: bool
231
+ """Whether the full requested amount can be filled"""
232
+
233
+
177
234
  @dataclass
178
235
  class Trade:
179
236
  """A historical trade."""
@@ -281,12 +338,6 @@ class Balance:
281
338
  """Locked in open orders"""
282
339
 
283
340
 
284
- # Parameter types
285
- CandleInterval = Literal["1m", "5m", "15m", "1h", "6h", "1d"]
286
- SortOption = Literal["volume", "liquidity", "newest"]
287
- SearchIn = Literal["title", "description", "both"]
288
- OrderSide = Literal["buy", "sell"]
289
- OrderType = Literal["market", "limit"]
290
341
 
291
342
 
292
343
  @dataclass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pmxt
3
- Version: 1.3.3
3
+ Version: 1.4.0
4
4
  Summary: Unified prediction market data API - The ccxt for prediction markets
5
5
  Author: PMXT Contributors
6
6
  License: MIT
@@ -160,6 +160,8 @@ for pos in positions:
160
160
  - `fetch_ohlcv(outcome_id, params)` - Get historical price candles
161
161
  - `fetch_order_book(outcome_id)` - Get current order book
162
162
  - `fetch_trades(outcome_id, params)` - Get trade history
163
+ - `get_execution_price(order_book, side, amount)` - Get execution price
164
+ - `get_execution_price_detailed(order_book, side, amount)` - Get detailed execution info
163
165
 
164
166
  ### Trading Methods (require authentication)
165
167
 
@@ -1,20 +1,20 @@
1
- pmxt/__init__.py,sha256=ogzJ1KSxQ_RaMykXQ1pkVuU82uoje95ScJ-2KpT7Hfo,1150
2
- pmxt/client.py,sha256=YytS9Y1CD8A2NihUxedpmojH830eWE32v4-hbMsA4a8,30175
3
- pmxt/models.py,sha256=omj70VNXl1v-UQ9k_wR1lPZwBjq8llkuji-tpkB_dVc,7105
1
+ pmxt/__init__.py,sha256=MAOqnWgwuaG-IN2JEPoGdUrp2DHARbZAFjHd-SmyEvs,1150
2
+ pmxt/client.py,sha256=1qa8ObZtf-tdzhDXQXvWWdeLvGbyxsiVHAgQvl8Z4Uk,32955
3
+ pmxt/models.py,sha256=-jiQ9mmv_qnF6mzj3DrvNgEA77tE_Pl0RCblM1VbV7o,8581
4
4
  pmxt/server_manager.py,sha256=-G97dYEdKl7F3HK9bAOKYl-SGWP6HsvzZIx2QxiZm24,11494
5
5
  pmxt/_server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  pmxt/_server/bin/pmxt-ensure-server,sha256=kXIond0UbxS52FAVQD7kHmSBaL_s6cbIyapLRr4KZJw,4544
7
- pmxt/_server/server/bundled.js,sha256=KxMsOJdiw5D2ynSJGFUCeojDlA-w7Eu6ldlgDoeApp4,4196247
8
- pmxt_internal/__init__.py,sha256=0YKMpHp2oGR0_lXCP32v7b4xar5v0QGcqCyxGpZ5VUg,6762
9
- pmxt_internal/api_client.py,sha256=ZEewhcYpBBgZ4DuuDfOvLHLLjROHxYGJO8ONnzFLXVY,27889
7
+ pmxt/_server/server/bundled.js,sha256=ETpsJ6ZmRtO1gQmBZYwwHWTHJIEI8ooeeMhOwoeDJ84,4198184
8
+ pmxt_internal/__init__.py,sha256=Kbxeq4WFfhIjcDkz72ZeXhWFpecUcOXCwUgqUzs6qsw,7578
9
+ pmxt_internal/api_client.py,sha256=2XZZdrKh90kAA4P3bJ54IdzRfAFMawSUqwnp2pRZNYA,27889
10
10
  pmxt_internal/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
11
- pmxt_internal/configuration.py,sha256=rdVJ9Q8-u6-Ulie2xxnIIwEnyCc2gGXTNrGD4PyxIWI,18320
11
+ pmxt_internal/configuration.py,sha256=evyyjQzPpYofXsIUdNKTMlMbpmq38l2ISokDuXJ0qJ0,18320
12
12
  pmxt_internal/exceptions.py,sha256=txF8A7vlan57JS69kFPs-IZF-Qhp7IZobBTJVa4fOaM,6644
13
13
  pmxt_internal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  pmxt_internal/rest.py,sha256=FMj4yaV6XLr842u_ScWHSzQsTFdk0jaUeuWLJoRbogQ,9760
15
15
  pmxt_internal/api/__init__.py,sha256=ppJSCipQ5IAk2z6UZkFaGSsEmnoAnSSHb8sjb_DYUkY,101
16
- pmxt_internal/api/default_api.py,sha256=4ySNtjkT9zJBfaHzX4fmXN5IgE-zIsr-uJs6WMO_N28,183099
17
- pmxt_internal/models/__init__.py,sha256=VPMpFsTZYckNs5JLcdO_8UwcZn4xEK3xQ58LUO0rxv4,3667
16
+ pmxt_internal/api/default_api.py,sha256=6nMYcL__0wtDJAyDAHadN8zk1Sw-qE3nhcpvqUf3ymw,206490
17
+ pmxt_internal/models/__init__.py,sha256=nviUepbTwMI-ro_lY6JbUgsQ1MskT7AKN3mb5WKJR74,4141
18
18
  pmxt_internal/models/balance.py,sha256=Dj5kFiLrsXOZyyXTC18bPjWrgw7qdWnTgTSCmk_l6xk,2962
19
19
  pmxt_internal/models/base_request.py,sha256=ZNipF7ycXFkQJ6j3QmB1TzA0UO3fB54AMPlAgIA3KOA,2987
20
20
  pmxt_internal/models/base_response.py,sha256=g-NG4Swxl3cg4-YOCPl65dUeHzOnA9S7ubTj8HOYZs0,2975
@@ -25,6 +25,7 @@ pmxt_internal/models/create_order_request.py,sha256=prj6TnIFbhB8eDq-6e-MK2DtfDzA
25
25
  pmxt_internal/models/error_detail.py,sha256=590jlnQmIgqcjUQ5ef07_nWMn7fnyjuAvkUjmSoAkMs,2605
26
26
  pmxt_internal/models/error_response.py,sha256=c5DgOpTGqx9Qoz7hYKhRPAM3UfoX4GBWkyhfxerMXEI,2979
27
27
  pmxt_internal/models/exchange_credentials.py,sha256=BtZCkGnnGQ24KPolTRtoA_jtXp-5_1Y1FmQLe1L5WCo,3308
28
+ pmxt_internal/models/execution_price_result.py,sha256=gsYJWD4GXVC9-_YmtLleegxmS4p7Q9bLNaJNEz6Ljsk,3012
28
29
  pmxt_internal/models/fetch_balance200_response.py,sha256=VN5yrsVSKnI_WprK1U4wbl60jGEiSnu4VAOGkSM5K4o,3539
29
30
  pmxt_internal/models/fetch_markets200_response.py,sha256=olOMs8IBKPL2Foqw3r66jeGcRlJpOpGcGq0jNccUPuA,3564
30
31
  pmxt_internal/models/fetch_markets_request.py,sha256=2kV2N3jVPy7qKMpVMt-QiTP_Ea0Unrkq2R-qBnB5xKk,3627
@@ -39,6 +40,10 @@ pmxt_internal/models/fetch_positions200_response.py,sha256=mzEq-rEYJaZHmjqjcaW9w
39
40
  pmxt_internal/models/fetch_positions_request.py,sha256=F823DuKhltLMw04QrtSi1ZNVhkSISKz72evpWaEIaE8,3208
40
41
  pmxt_internal/models/fetch_trades200_response.py,sha256=fdsEd4luXJpzk6MuM192PaZ62fOBA3He3VreZhCd4-w,3527
41
42
  pmxt_internal/models/fetch_trades_request.py,sha256=GQZGh2dy-Y3n8DnR8x5b9bLH_nLmCmIJqjcTTNzcoSA,3690
43
+ pmxt_internal/models/get_execution_price200_response.py,sha256=uf5eCUHZK5ZVzgJ2UrXMvOJnNvVhNq5Zwb6_MAWa_O4,3172
44
+ pmxt_internal/models/get_execution_price_detailed200_response.py,sha256=PqBksuFhxToYvl-O4eM9WhSn0h5x0lwK4c7cttbAoL8,3463
45
+ pmxt_internal/models/get_execution_price_request.py,sha256=sVPuP6QKDeAMOueYlJT9MQTg9JnQzDHI-C4B4Db4Cvc,3756
46
+ pmxt_internal/models/get_execution_price_request_args_inner.py,sha256=CoiBFk1iGMIfWNGEDCLBGAyT4fFhjANttQftNOKaDIo,6225
42
47
  pmxt_internal/models/get_markets_by_slug_request.py,sha256=PtjXAw6hixHuYzCvSGH1aka2rZrsHmT8ofXYSuuOh9k,3173
43
48
  pmxt_internal/models/health_check200_response.py,sha256=yR_OkIlTPztO0zFmpyWllSwyaEbI48RpumfmVVCJAyc,2758
44
49
  pmxt_internal/models/history_filter_params.py,sha256=0i9oQLwJsRWRyzPZuW467y_0ccKpc2_I6T2lgZCkHd4,3239
@@ -59,7 +64,7 @@ pmxt_internal/models/unified_market.py,sha256=DoYhiH4HycYGlq858PEeB-CIA7haT6rxmJ
59
64
  pmxt_internal/models/watch_order_book_request.py,sha256=kavGUI-SLz2-Kam_jcJ_h0GDe0-9UkxqCmVsAi6Uios,3726
60
65
  pmxt_internal/models/watch_order_book_request_args_inner.py,sha256=ZHrjmFDGxRG5MXbuz4mUp9KFfo3XS7zuXWTyMNgi4xI,5464
61
66
  pmxt_internal/models/watch_trades_request.py,sha256=brrg8JbEe-aeg7mIe_Y2HzRPogp-IfRhkXChrxzqoLU,3722
62
- pmxt-1.3.3.dist-info/METADATA,sha256=xJgWJwFIr3m4XmPBEKYas14jxHJEWVoow74Zj7aTErs,6288
63
- pmxt-1.3.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
64
- pmxt-1.3.3.dist-info/top_level.txt,sha256=J_jrcouJ-x-5lpcXMxeW0GOSi1HsBVR5_PdSfvigVrw,19
65
- pmxt-1.3.3.dist-info/RECORD,,
67
+ pmxt-1.4.0.dist-info/METADATA,sha256=6fTb2tiWCkPoyKkYSs16e6yzhUdp-s-NaE7NPY6VFhc,6449
68
+ pmxt-1.4.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
69
+ pmxt-1.4.0.dist-info/top_level.txt,sha256=J_jrcouJ-x-5lpcXMxeW0GOSi1HsBVR5_PdSfvigVrw,19
70
+ pmxt-1.4.0.dist-info/RECORD,,
pmxt_internal/__init__.py CHANGED
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.3.3"
17
+ __version__ = "1.4.0"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -38,6 +38,7 @@ __all__ = [
38
38
  "ErrorDetail",
39
39
  "ErrorResponse",
40
40
  "ExchangeCredentials",
41
+ "ExecutionPriceResult",
41
42
  "FetchBalance200Response",
42
43
  "FetchMarkets200Response",
43
44
  "FetchMarketsRequest",
@@ -52,6 +53,10 @@ __all__ = [
52
53
  "FetchPositionsRequest",
53
54
  "FetchTrades200Response",
54
55
  "FetchTradesRequest",
56
+ "GetExecutionPrice200Response",
57
+ "GetExecutionPriceDetailed200Response",
58
+ "GetExecutionPriceRequest",
59
+ "GetExecutionPriceRequestArgsInner",
55
60
  "GetMarketsBySlugRequest",
56
61
  "HealthCheck200Response",
57
62
  "HistoryFilterParams",
@@ -99,6 +104,7 @@ from pmxt_internal.models.create_order_request import CreateOrderRequest as Crea
99
104
  from pmxt_internal.models.error_detail import ErrorDetail as ErrorDetail
100
105
  from pmxt_internal.models.error_response import ErrorResponse as ErrorResponse
101
106
  from pmxt_internal.models.exchange_credentials import ExchangeCredentials as ExchangeCredentials
107
+ from pmxt_internal.models.execution_price_result import ExecutionPriceResult as ExecutionPriceResult
102
108
  from pmxt_internal.models.fetch_balance200_response import FetchBalance200Response as FetchBalance200Response
103
109
  from pmxt_internal.models.fetch_markets200_response import FetchMarkets200Response as FetchMarkets200Response
104
110
  from pmxt_internal.models.fetch_markets_request import FetchMarketsRequest as FetchMarketsRequest
@@ -113,6 +119,10 @@ from pmxt_internal.models.fetch_positions200_response import FetchPositions200Re
113
119
  from pmxt_internal.models.fetch_positions_request import FetchPositionsRequest as FetchPositionsRequest
114
120
  from pmxt_internal.models.fetch_trades200_response import FetchTrades200Response as FetchTrades200Response
115
121
  from pmxt_internal.models.fetch_trades_request import FetchTradesRequest as FetchTradesRequest
122
+ from pmxt_internal.models.get_execution_price200_response import GetExecutionPrice200Response as GetExecutionPrice200Response
123
+ from pmxt_internal.models.get_execution_price_detailed200_response import GetExecutionPriceDetailed200Response as GetExecutionPriceDetailed200Response
124
+ from pmxt_internal.models.get_execution_price_request import GetExecutionPriceRequest as GetExecutionPriceRequest
125
+ from pmxt_internal.models.get_execution_price_request_args_inner import GetExecutionPriceRequestArgsInner as GetExecutionPriceRequestArgsInner
116
126
  from pmxt_internal.models.get_markets_by_slug_request import GetMarketsBySlugRequest as GetMarketsBySlugRequest
117
127
  from pmxt_internal.models.health_check200_response import HealthCheck200Response as HealthCheck200Response
118
128
  from pmxt_internal.models.history_filter_params import HistoryFilterParams as HistoryFilterParams