|  | @@ 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): |