@@ 150-167 (lines=18) @@ | ||
147 | def value(self, value): |
|
148 | self.cache_value = value |
|
149 | ||
150 | def _trim_window(self): |
|
151 | now = time.time() |
|
152 | if self.cache_start and now - self.cache_start > self.window_interval: |
|
153 | self.values.append(self.cache_value) |
|
154 | self.events.append(self.cache_event) |
|
155 | self.times.append(self.cache_start) |
|
156 | self.on_append(self.cache_value, self.cache_start) |
|
157 | self.cache_value = 0 |
|
158 | self.cache_start = None |
|
159 | ||
160 | if self.window_size != self.max_window_size and self._first_data_time is not None: |
|
161 | time_passed = now - self._first_data_time |
|
162 | self.window_size = min(self.max_window_size, time_passed / self.window_interval) |
|
163 | window_limit = now - self.window_size * self.window_interval |
|
164 | while self.times and self.times[0] < window_limit: |
|
165 | self.times.popleft() |
|
166 | self.events.popleft() |
|
167 | self.values.popleft() |
|
168 | ||
169 | @property |
|
170 | def avg(self): |
|
@@ 230-245 (lines=16) @@ | ||
227 | def value(self, value): |
|
228 | self.cache_value = value |
|
229 | ||
230 | def _trim_window(self): |
|
231 | now = time.time() |
|
232 | if self.cache_start and now - self.cache_start > self.window_interval: |
|
233 | self.values.append(self.cache_value) |
|
234 | self.times.append(self.cache_start) |
|
235 | self.on_append(self.cache_value, self.cache_start) |
|
236 | self.cache_value = 0 |
|
237 | self.cache_start = None |
|
238 | ||
239 | if self.window_size != self.max_window_size and self._first_data_time is not None: |
|
240 | time_passed = now - self._first_data_time |
|
241 | self.window_size = min(self.max_window_size, time_passed / self.window_interval) |
|
242 | window_limit = now - self.window_size * self.window_interval |
|
243 | while self.times and self.times[0] < window_limit: |
|
244 | self.times.popleft() |
|
245 | self.values.popleft() |
|
246 | ||
247 | @property |
|
248 | def avg(self): |