From d20bb33f782f5677256d7e1f2462b78113692969 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Tue, 3 May 2022 23:22:04 -0500 Subject: Fix renamed "total" variable (#92287) * Fix renamed "total" variable * Keep nan/inf handling consistent between versions --- Lib/statistics.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib/statistics.py b/Lib/statistics.py index 5a3de81..c022088 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -234,7 +234,7 @@ def _ss(data, c=None): # The sum will be a NAN or INF. We can ignore all the finite # partials, and just look at this special one. ssd = c = sx_partials[None] - assert not _isfinite(total) + assert not _isfinite(ssd) else: sx = sum(Fraction(n, d) for d, n in sx_partials.items()) sxx = sum(Fraction(n, d*d) for d, n in sxx_partials.items()) @@ -945,7 +945,11 @@ def _mean_stdev(data): if n < 2: raise StatisticsError('stdev requires at least two data points') mss = ss / (n - 1) - return float(xbar), _float_sqrt_of_frac(mss.numerator, mss.denominator) + try: + return float(xbar), _float_sqrt_of_frac(mss.numerator, mss.denominator) + except AttributeError: + # Handle Nans and Infs gracefully + return float(xbar), float(xbar) / float(ss) # === Statistics for relations between two inputs === -- cgit v0.12