(self, message)
| 45 | self._sequence = res['sequence'] |
| 46 | |
| 47 | def process_message(self, message): |
| 48 | if message.get('product_id') == self.product_id: |
| 49 | if self._log_to: |
| 50 | pickle.dump(message, self._log_to) |
| 51 | |
| 52 | sequence = message.get('sequence', -1) |
| 53 | if self._sequence == -1: |
| 54 | self.reset_book() |
| 55 | return |
| 56 | if sequence <= self._sequence: |
| 57 | # ignore older messages (e.g. before order book initialization from getProductOrderBook) |
| 58 | return |
| 59 | elif sequence > self._sequence + 1: |
| 60 | self.on_sequence_gap(self._sequence, sequence) |
| 61 | return |
| 62 | |
| 63 | msg_type = message['type'] |
| 64 | if msg_type == 'open': |
| 65 | self.add(message) |
| 66 | elif msg_type == 'done' and 'price' in message: |
| 67 | self.remove(message) |
| 68 | elif msg_type == 'match': |
| 69 | self.match(message) |
| 70 | self._current_ticker = message |
| 71 | elif msg_type == 'change': |
| 72 | self.change(message) |
| 73 | |
| 74 | self._sequence = sequence |
| 75 | |
| 76 | def on_sequence_gap(self, gap_start, gap_end): |
| 77 | self.reset_book() |
no test coverage detected