Skip to content

Commit f36d6c4

Browse files
authored
Adds Raw Data Support for TradingStream (#556)
* adds raw data support for TradingStream * fixes some typos * adds raw_data flag to Stream._trading_ws
1 parent 7970679 commit f36d6c4

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

alpaca_trade_api/stream.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,14 +436,16 @@ class TradingStream:
436436
def __init__(self,
437437
key_id: str,
438438
secret_key: str,
439-
base_url: URL):
439+
base_url: URL,
440+
raw_data: bool = False):
440441
self._key_id = key_id
441442
self._secret_key = secret_key
442443
base_url = re.sub(r'^http', 'ws', base_url)
443444
self._endpoint = base_url + '/stream/'
444445
self._trade_updates_handler = None
445446
self._ws = None
446447
self._running = False
448+
self._raw_data = raw_data
447449
self._stop_stream_queue = queue.Queue()
448450
self._should_run = True
449451

@@ -468,7 +470,13 @@ async def _dispatch(self, msg):
468470
stream = msg.get('stream')
469471
if stream == 'trade_updates':
470472
if self._trade_updates_handler:
471-
await self._trade_updates_handler(Entity(msg.get('data')))
473+
await self._trade_updates_handler(self._cast(msg))
474+
475+
def _cast(self, msg):
476+
result = msg
477+
if not self._raw_data:
478+
result = Entity(msg.get('data'))
479+
return result
472480

473481
async def _subscribe_trade_updates(self):
474482
if self._trade_updates_handler:
@@ -568,7 +576,8 @@ def __init__(self,
568576

569577
self._trading_ws = TradingStream(self._key_id,
570578
self._secret_key,
571-
self._base_url)
579+
self._base_url,
580+
raw_data)
572581
self._data_ws = DataStream(self._key_id,
573582
self._secret_key,
574583
self._data_steam_url,

0 commit comments

Comments
 (0)