(self, client: Client, message)
| 704 | return self.filter_by_since_limit(ohlcv, since, limit, 0, True) |
| 705 | |
| 706 | def handle_ohlcv(self, client: Client, message): |
| 707 | # |
| 708 | # { |
| 709 | # "ts": 1695738675123, |
| 710 | # "data": [ |
| 711 | # { |
| 712 | # "T": 1695738674000, |
| 713 | # "o": "1000.0000", |
| 714 | # "l": "800.0000", |
| 715 | # "h": "2400.0000", |
| 716 | # "c": "2100.0000", |
| 717 | # "v": "10.0000" |
| 718 | # } |
| 719 | # ], |
| 720 | # "seq": 1 |
| 721 | # } |
| 722 | # |
| 723 | subscription = self.find_subscription(client, 'ohlcv') |
| 724 | if subscription is None: |
| 725 | return |
| 726 | symbol = self.safe_string(subscription, 'symbol') |
| 727 | timeframe = self.safe_string(subscription, 'timeframe') |
| 728 | candleType = self.safe_string(subscription, 'candleType') |
| 729 | cacheKey = timeframe if (candleType == 'trades') else timeframe + ':' + candleType |
| 730 | messageHash = self.safe_string(subscription, 'messageHash') |
| 731 | self.ohlcvs[symbol] = self.safe_value(self.ohlcvs, symbol, {}) |
| 732 | stored = self.safe_value(self.ohlcvs[symbol], cacheKey) |
| 733 | if stored is None: |
| 734 | defaultLimit = self.safe_integer(self.options, 'OHLCVLimit', 1000) |
| 735 | limit = self.safe_integer(subscription, 'limit', defaultLimit) |
| 736 | stored = ArrayCacheByTimestamp(limit) |
| 737 | self.ohlcvs[symbol][cacheKey] = stored |
| 738 | previousNonce = self.safe_integer(subscription, 'nonce') |
| 739 | nonce = self.safe_integer(message, 'seq') |
| 740 | if (previousNonce is not None) and (nonce is not None) and (nonce <= previousNonce): |
| 741 | return |
| 742 | subscription['nonce'] = nonce |
| 743 | data = self.safe_list(message, 'data', []) |
| 744 | for i in range(0, len(data)): |
| 745 | parsed = self.parse_ohlcv(data[i]) |
| 746 | stored.append(parsed) |
| 747 | client.resolve(stored, messageHash) |
| 748 | |
| 749 | def find_subscription(self, client: Client, name: str): |
| 750 | keys = list(client.subscriptions.keys()) |
no test coverage detected