pmxt 1.5.4__py3-none-any.whl → 1.5.5__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.5.4"
36
+ __version__ = "1.5.5"
37
37
  __all__ = [
38
38
  # Exchanges
39
39
  "Polymarket",
@@ -104947,11 +104947,15 @@ var require_polymarket = __commonJS({
104947
104947
  const client = await auth.getClobClient();
104948
104948
  try {
104949
104949
  const order = await client.getOrder(orderId);
104950
+ if (!order || !order.id) {
104951
+ const errorMsg = order?.error || "Order not found (Invalid ID)";
104952
+ throw new Error(errorMsg);
104953
+ }
104950
104954
  return {
104951
104955
  id: order.id,
104952
104956
  marketId: order.market || "unknown",
104953
104957
  outcomeId: order.asset_id,
104954
- side: order.side.toLowerCase(),
104958
+ side: (order.side || "").toLowerCase(),
104955
104959
  type: order.order_type === "GTC" ? "limit" : "market",
104956
104960
  price: parseFloat(order.price),
104957
104961
  amount: parseFloat(order.original_size),
@@ -106576,10 +106580,12 @@ var require_websocket5 = __commonJS({
106576
106580
  this.orderBookResolvers = /* @__PURE__ */ new Map();
106577
106581
  this.tradeResolvers = /* @__PURE__ */ new Map();
106578
106582
  this.orderBooks = /* @__PURE__ */ new Map();
106579
- this.subscribedTickers = /* @__PURE__ */ new Set();
106583
+ this.subscribedOrderBookTickers = /* @__PURE__ */ new Set();
106584
+ this.subscribedTradeTickers = /* @__PURE__ */ new Set();
106580
106585
  this.messageIdCounter = 1;
106581
106586
  this.isConnecting = false;
106582
106587
  this.isConnected = false;
106588
+ this.isTerminated = false;
106583
106589
  this.auth = auth;
106584
106590
  this.config = {
106585
106591
  wsUrl: config.wsUrl || "wss://api.elections.kalshi.com/trade-api/ws/v2",
@@ -106587,11 +106593,17 @@ var require_websocket5 = __commonJS({
106587
106593
  };
106588
106594
  }
106589
106595
  async connect() {
106590
- if (this.isConnected || this.isConnecting) {
106596
+ if (this.isConnected) {
106597
+ return;
106598
+ }
106599
+ if (this.isTerminated) {
106591
106600
  return;
106592
106601
  }
106602
+ if (this.connectionPromise) {
106603
+ return this.connectionPromise;
106604
+ }
106593
106605
  this.isConnecting = true;
106594
- return new Promise((resolve, reject) => {
106606
+ this.connectionPromise = new Promise((resolve, reject) => {
106595
106607
  try {
106596
106608
  const url2 = new URL(this.config.wsUrl);
106597
106609
  const path = url2.pathname;
@@ -106601,9 +106613,13 @@ var require_websocket5 = __commonJS({
106601
106613
  this.ws.on("open", () => {
106602
106614
  this.isConnected = true;
106603
106615
  this.isConnecting = false;
106616
+ this.connectionPromise = void 0;
106604
106617
  console.log("Kalshi WebSocket connected");
106605
- if (this.subscribedTickers.size > 0) {
106606
- this.subscribeToOrderbook(Array.from(this.subscribedTickers));
106618
+ if (this.subscribedOrderBookTickers.size > 0) {
106619
+ this.subscribeToOrderbook(Array.from(this.subscribedOrderBookTickers));
106620
+ }
106621
+ if (this.subscribedTradeTickers.size > 0) {
106622
+ this.subscribeToTrades(Array.from(this.subscribedTradeTickers));
106607
106623
  }
106608
106624
  resolve();
106609
106625
  });
@@ -106618,21 +106634,30 @@ var require_websocket5 = __commonJS({
106618
106634
  this.ws.on("error", (error) => {
106619
106635
  console.error("Kalshi WebSocket error:", error);
106620
106636
  this.isConnecting = false;
106637
+ this.connectionPromise = void 0;
106621
106638
  reject(error);
106622
106639
  });
106623
106640
  this.ws.on("close", () => {
106624
- console.log("Kalshi WebSocket closed");
106641
+ if (!this.isTerminated) {
106642
+ console.log("Kalshi WebSocket closed");
106643
+ this.scheduleReconnect();
106644
+ }
106625
106645
  this.isConnected = false;
106626
106646
  this.isConnecting = false;
106627
- this.scheduleReconnect();
106647
+ this.connectionPromise = void 0;
106628
106648
  });
106629
106649
  } catch (error) {
106630
106650
  this.isConnecting = false;
106651
+ this.connectionPromise = void 0;
106631
106652
  reject(error);
106632
106653
  }
106633
106654
  });
106655
+ return this.connectionPromise;
106634
106656
  }
106635
106657
  scheduleReconnect() {
106658
+ if (this.isTerminated) {
106659
+ return;
106660
+ }
106636
106661
  if (this.reconnectTimer) {
106637
106662
  clearTimeout(this.reconnectTimer);
106638
106663
  }
@@ -106803,9 +106828,9 @@ var require_websocket5 = __commonJS({
106803
106828
  if (!this.isConnected) {
106804
106829
  await this.connect();
106805
106830
  }
106806
- if (!this.subscribedTickers.has(ticker)) {
106807
- this.subscribedTickers.add(ticker);
106808
- this.subscribeToOrderbook([ticker]);
106831
+ if (!this.subscribedOrderBookTickers.has(ticker)) {
106832
+ this.subscribedOrderBookTickers.add(ticker);
106833
+ this.subscribeToOrderbook(Array.from(this.subscribedOrderBookTickers));
106809
106834
  }
106810
106835
  return new Promise((resolve, reject) => {
106811
106836
  if (!this.orderBookResolvers.has(ticker)) {
@@ -106818,9 +106843,9 @@ var require_websocket5 = __commonJS({
106818
106843
  if (!this.isConnected) {
106819
106844
  await this.connect();
106820
106845
  }
106821
- if (!this.subscribedTickers.has(ticker)) {
106822
- this.subscribedTickers.add(ticker);
106823
- this.subscribeToTrades([ticker]);
106846
+ if (!this.subscribedTradeTickers.has(ticker)) {
106847
+ this.subscribedTradeTickers.add(ticker);
106848
+ this.subscribeToTrades(Array.from(this.subscribedTradeTickers));
106824
106849
  }
106825
106850
  return new Promise((resolve, reject) => {
106826
106851
  if (!this.tradeResolvers.has(ticker)) {
@@ -106830,12 +106855,32 @@ var require_websocket5 = __commonJS({
106830
106855
  });
106831
106856
  }
106832
106857
  async close() {
106858
+ this.isTerminated = true;
106833
106859
  if (this.reconnectTimer) {
106834
106860
  clearTimeout(this.reconnectTimer);
106861
+ this.reconnectTimer = void 0;
106835
106862
  }
106863
+ this.orderBookResolvers.forEach((resolvers, ticker) => {
106864
+ resolvers.forEach((r) => r.reject(new Error(`WebSocket closed for ${ticker}`)));
106865
+ });
106866
+ this.orderBookResolvers.clear();
106867
+ this.tradeResolvers.forEach((resolvers, ticker) => {
106868
+ resolvers.forEach((r) => r.reject(new Error(`WebSocket closed for ${ticker}`)));
106869
+ });
106870
+ this.tradeResolvers.clear();
106836
106871
  if (this.ws) {
106837
- this.ws.close();
106872
+ const ws = this.ws;
106838
106873
  this.ws = void 0;
106874
+ if (ws.readyState !== ws_1.default.CLOSED && ws.readyState !== ws_1.default.CLOSING) {
106875
+ return new Promise((resolve) => {
106876
+ ws.once("close", () => {
106877
+ this.isConnected = false;
106878
+ this.isConnecting = false;
106879
+ resolve();
106880
+ });
106881
+ ws.close();
106882
+ });
106883
+ }
106839
106884
  }
106840
106885
  this.isConnected = false;
106841
106886
  this.isConnecting = false;
@@ -107121,14 +107166,16 @@ var require_kalshi = __commonJS({
107121
107166
  if (!this.ws) {
107122
107167
  this.ws = new websocket_1.KalshiWebSocket(auth, this.wsConfig);
107123
107168
  }
107124
- return this.ws.watchOrderBook(id);
107169
+ const marketTicker = id.replace(/-NO$/, "");
107170
+ return this.ws.watchOrderBook(marketTicker);
107125
107171
  }
107126
107172
  async watchTrades(id, since, limit) {
107127
107173
  const auth = this.ensureAuth();
107128
107174
  if (!this.ws) {
107129
107175
  this.ws = new websocket_1.KalshiWebSocket(auth, this.wsConfig);
107130
107176
  }
107131
- return this.ws.watchTrades(id);
107177
+ const marketTicker = id.replace(/-NO$/, "");
107178
+ return this.ws.watchTrades(marketTicker);
107132
107179
  }
107133
107180
  async close() {
107134
107181
  if (this.ws) {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pmxt
3
- Version: 1.5.4
3
+ Version: 1.5.5
4
4
  Summary: Unified prediction market data API - The ccxt for prediction markets
5
5
  Author: PMXT Contributors
6
6
  License: MIT
@@ -1,15 +1,15 @@
1
- pmxt/__init__.py,sha256=514Ya5ykWH3muf7V__O3Mdo8u62XFMuVVccY9udTlRw,1178
1
+ pmxt/__init__.py,sha256=6qFPZyBCm2SSehAXSznTYTxqJuT9Ek-Hf9AbqMy74c0,1178
2
2
  pmxt/client.py,sha256=YEArwWnyDbd5Hb_HxMWXIqsihUD0RZDaTrBZh4hOlq4,34026
3
3
  pmxt/models.py,sha256=-jiQ9mmv_qnF6mzj3DrvNgEA77tE_Pl0RCblM1VbV7o,8581
4
4
  pmxt/server_manager.py,sha256=6uS1LIZ2d5d_K-MtbMUAlCZvbvhZ_iyofKok55HEofc,11606
5
5
  pmxt/_server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  pmxt/_server/bin/pmxt-ensure-server,sha256=kXIond0UbxS52FAVQD7kHmSBaL_s6cbIyapLRr4KZJw,4544
7
7
  pmxt/_server/bin/pmxt-ensure-server.js,sha256=kXIond0UbxS52FAVQD7kHmSBaL_s6cbIyapLRr4KZJw,4544
8
- pmxt/_server/server/bundled.js,sha256=OGyrocIIrgT1FLzQ1xJo4c4-rmO3IJMhIpU4oJ22sjs,4232813
9
- pmxt_internal/__init__.py,sha256=PrpXrNXiMvHMKpJIPUF_9TIlaLReA_f3SQF-q_evsNk,7578
10
- pmxt_internal/api_client.py,sha256=u3baftkgR0VZRwgGQh4EcIkJeJ3UiTIuJOgm_FQ6aHU,27889
8
+ pmxt/_server/server/bundled.js,sha256=-Jg0Eb2-XwBjUjIP2T_k7Nnafd4QwyuH8x7WAUKJATE,4234834
9
+ pmxt_internal/__init__.py,sha256=Z84alxRDjv2HvJd2vMVH01BZFe9fHJVSCgAsh2gC50s,7578
10
+ pmxt_internal/api_client.py,sha256=aj54kPWSjpxYOCRYeP2dekJmQIlyBI8-aAMYkII5rYg,27889
11
11
  pmxt_internal/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
12
- pmxt_internal/configuration.py,sha256=2h6DJrgjaiwNgARfyN4NjKXmsY0c7PUcVfYAiNFwKo8,18320
12
+ pmxt_internal/configuration.py,sha256=opmDpdbEB9TD7KtbNp1vEm6U4o5OxmxberRXhltUz5M,18320
13
13
  pmxt_internal/exceptions.py,sha256=txF8A7vlan57JS69kFPs-IZF-Qhp7IZobBTJVa4fOaM,6644
14
14
  pmxt_internal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  pmxt_internal/rest.py,sha256=FMj4yaV6XLr842u_ScWHSzQsTFdk0jaUeuWLJoRbogQ,9760
@@ -65,7 +65,7 @@ pmxt_internal/models/unified_market.py,sha256=DoYhiH4HycYGlq858PEeB-CIA7haT6rxmJ
65
65
  pmxt_internal/models/watch_order_book_request.py,sha256=kavGUI-SLz2-Kam_jcJ_h0GDe0-9UkxqCmVsAi6Uios,3726
66
66
  pmxt_internal/models/watch_order_book_request_args_inner.py,sha256=ZHrjmFDGxRG5MXbuz4mUp9KFfo3XS7zuXWTyMNgi4xI,5464
67
67
  pmxt_internal/models/watch_trades_request.py,sha256=brrg8JbEe-aeg7mIe_Y2HzRPogp-IfRhkXChrxzqoLU,3722
68
- pmxt-1.5.4.dist-info/METADATA,sha256=c647vHjvAz-yn2wtXg3xtf6nZCD269MgK3zo7Dfkycg,6449
69
- pmxt-1.5.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
70
- pmxt-1.5.4.dist-info/top_level.txt,sha256=J_jrcouJ-x-5lpcXMxeW0GOSi1HsBVR5_PdSfvigVrw,19
71
- pmxt-1.5.4.dist-info/RECORD,,
68
+ pmxt-1.5.5.dist-info/METADATA,sha256=SJ2tjjOnHYXIcRUWZvaa7tDr_Mge3cdXc5Tuo3SBzUI,6449
69
+ pmxt-1.5.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
70
+ pmxt-1.5.5.dist-info/top_level.txt,sha256=J_jrcouJ-x-5lpcXMxeW0GOSi1HsBVR5_PdSfvigVrw,19
71
+ pmxt-1.5.5.dist-info/RECORD,,
pmxt_internal/__init__.py CHANGED
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.5.4"
17
+ __version__ = "1.5.5"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/1.5.4/python'
94
+ self.user_agent = 'OpenAPI-Generator/1.5.5/python'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  def __enter__(self):
@@ -506,7 +506,7 @@ class Configuration:
506
506
  "OS: {env}\n"\
507
507
  "Python Version: {pyversion}\n"\
508
508
  "Version of the API: 0.4.4\n"\
509
- "SDK Package Version: 1.5.4".\
509
+ "SDK Package Version: 1.5.5".\
510
510
  format(env=sys.platform, pyversion=sys.version)
511
511
 
512
512
  def get_host_settings(self) -> List[HostSetting]:
File without changes