MCPcopy Create free account
hub / github.com/ccxt/ccxt / ArrayCacheByTimestamp

Class ArrayCacheByTimestamp

python/ccxt/async_support/base/ws/cache.py:103–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101
102
103class ArrayCacheByTimestamp(BaseCache):
104 def __init__(self, max_size=None):
105 super(ArrayCacheByTimestamp, self).__init__(max_size)
106 self.hashmap = {}
107 self._size_tracker = set()
108 self._new_updates = 0
109 self._clear_updates = False
110
111 def getLimit(self, symbol, limit):
112 self._clear_updates = True
113 if limit is None:
114 return self._new_updates
115 return min(self._new_updates, limit)
116
117 def append(self, item):
118 if item[0] in self.hashmap:
119 reference = self.hashmap[item[0]]
120 if reference != item:
121 reference[0:len(item)] = item
122 else:
123 self.hashmap[item[0]] = item
124 if len(self._deque) == self._deque.maxlen:
125 delete_reference = self._deque.popleft()
126 del self.hashmap[delete_reference[0]]
127 self._deque.append(item)
128 if self._clear_updates:
129 self._clear_updates = False
130 self._size_tracker.clear()
131 self._size_tracker.add(item[0])
132 self._new_updates = len(self._size_tracker)
133
134
135class ArrayCacheBySymbolById(ArrayCache):

Callers 15

test_safe_methodsFunction · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_uta_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90
handle_ohlcvMethod · 0.90

Calls

no outgoing calls

Tested by 2

test_safe_methodsFunction · 0.72
test_ws_cacheFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…