(self, sample: float)
| 620 | self.average = None |
| 621 | |
| 622 | def add_sample(self, sample: float) -> None: |
| 623 | if sample < 0: |
| 624 | raise ValueError(f"duration cannot be negative {sample}") |
| 625 | if self.average is None: |
| 626 | self.average = sample |
| 627 | else: |
| 628 | # The Server Selection Spec requires an exponentially weighted |
| 629 | # average with alpha = 0.2. |
| 630 | self.average = 0.8 * self.average + 0.2 * sample |
| 631 | |
| 632 | def get(self) -> Optional[float]: |
| 633 | """Get the calculated average, or None if no samples yet.""" |
no outgoing calls