Skip to content

Commit 7e033d8

Browse files
Additional async connection fixes
1 parent b42bb4d commit 7e033d8

3 files changed

Lines changed: 21 additions & 11 deletions

File tree

projectx_sdk/realtime/market_hub.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,9 @@ def unsubscribe_quotes(self, contract_id: str, callback: Optional[Callable] = No
264264
and contract_id in self._subscribed_quotes
265265
and self._connection
266266
):
267-
self._connection.invoke("UnsubscribeContractQuotes", contract_id)
267+
asyncio.create_task(
268+
self._connection.invoke("UnsubscribeContractQuotes", contract_id)
269+
)
268270
self._subscribed_quotes.remove(contract_id)
269271

270272
def subscribe_trades(
@@ -281,7 +283,7 @@ def subscribe_trades(
281283
self._trade_callbacks[contract_id] = []
282284

283285
if self._connection:
284-
self._connection.invoke("SubscribeContractTrades", contract_id)
286+
asyncio.create_task(self._connection.invoke("SubscribeContractTrades", contract_id))
285287
self._subscribed_trades.add(contract_id)
286288

287289
self._trade_callbacks[contract_id].append(callback)
@@ -307,7 +309,9 @@ def unsubscribe_trades(self, contract_id: str, callback: Optional[Callable] = No
307309
and contract_id in self._subscribed_trades
308310
and self._connection
309311
):
310-
self._connection.invoke("UnsubscribeContractTrades", contract_id)
312+
asyncio.create_task(
313+
self._connection.invoke("UnsubscribeContractTrades", contract_id)
314+
)
311315
self._subscribed_trades.remove(contract_id)
312316

313317
def subscribe_market_depth(
@@ -324,7 +328,9 @@ def subscribe_market_depth(
324328
self._depth_callbacks[contract_id] = []
325329

326330
if self._connection:
327-
self._connection.invoke("SubscribeContractMarketDepth", contract_id)
331+
asyncio.create_task(
332+
self._connection.invoke("SubscribeContractMarketDepth", contract_id)
333+
)
328334
self._subscribed_depth.add(contract_id)
329335

330336
self._depth_callbacks[contract_id].append(callback)
@@ -352,7 +358,9 @@ def unsubscribe_market_depth(
352358
and contract_id in self._subscribed_depth
353359
and self._connection
354360
):
355-
self._connection.invoke("UnsubscribeContractMarketDepth", contract_id)
361+
asyncio.create_task(
362+
self._connection.invoke("UnsubscribeContractMarketDepth", contract_id)
363+
)
356364
self._subscribed_depth.remove(contract_id)
357365

358366
def reconnect_subscriptions(self) -> None:
@@ -362,15 +370,17 @@ def reconnect_subscriptions(self) -> None:
362370

363371
# Resubscribe to quotes
364372
for contract_id in self._subscribed_quotes:
365-
self._connection.invoke("SubscribeContractQuotes", contract_id)
373+
asyncio.create_task(self._connection.invoke("SubscribeContractQuotes", contract_id))
366374

367375
# Resubscribe to trades
368376
for contract_id in self._subscribed_trades:
369-
self._connection.invoke("SubscribeContractTrades", contract_id)
377+
asyncio.create_task(self._connection.invoke("SubscribeContractTrades", contract_id))
370378

371379
# Resubscribe to market depth
372380
for contract_id in self._subscribed_depth:
373-
self._connection.invoke("SubscribeContractMarketDepth", contract_id)
381+
asyncio.create_task(
382+
self._connection.invoke("SubscribeContractMarketDepth", contract_id)
383+
)
374384

375385
def _on_connected(self) -> None:
376386
"""

projectx_sdk/realtime/user_hub.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ def unsubscribe_trades(self, account_id):
365365

366366
return self
367367

368-
def invoke(self, method, *args):
368+
async def invoke(self, method, *args):
369369
"""
370370
Invoke a hub method.
371371
@@ -379,7 +379,7 @@ def invoke(self, method, *args):
379379
if not self._is_connected or not self._connection:
380380
raise Exception("Not connected to hub")
381381

382-
return self._connection.invoke(method, *args)
382+
return await self._connection.invoke(method, *args)
383383

384384
def _handle_account_update(self, data):
385385
"""

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
setup(
3939
name="projectx-sdk",
40-
version="0.2.4",
40+
version="0.2.5",
4141
author="Christian Starr",
4242
author_email="christianjstarr@icloud.com",
4343
description="UnofficialPython SDK for the ProjectX Gateway API",

0 commit comments

Comments
 (0)