Compute statistics from a list of values.
(cls, values: List[float])
| 1600 | |
| 1601 | @classmethod |
| 1602 | def from_values(cls, values: List[float]) -> "DurationStats": |
| 1603 | """Compute statistics from a list of values.""" |
| 1604 | if not values: |
| 1605 | return cls() |
| 1606 | |
| 1607 | n = len(values) |
| 1608 | mean = sum(values) / n |
| 1609 | min_val = min(values) |
| 1610 | max_val = max(values) |
| 1611 | |
| 1612 | # Compute standard deviation |
| 1613 | if n > 1: |
| 1614 | variance = sum((x - mean) ** 2 for x in values) / n |
| 1615 | std = math.sqrt(variance) |
| 1616 | else: |
| 1617 | std = 0.0 |
| 1618 | |
| 1619 | return cls(mean=mean, std=std, min=min_val, max=max_val) |
| 1620 | |
| 1621 | |
| 1622 | @PublicAPI(stability="alpha") |