From: Raymond Hettinger Date: Wed, 4 May 2022 04:22:04 +0000 (-0500) Subject: Fix renamed "total" variable (#92287) X-Git-Tag: v3.11.0b1~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d20bb33f782f5677256d7e1f2462b78113692969;p=thirdparty%2FPython%2Fcpython.git Fix renamed "total" variable (#92287) * Fix renamed "total" variable * Keep nan/inf handling consistent between versions --- diff --git a/Lib/statistics.py b/Lib/statistics.py index 5a3de810836d..c0220889ebdc 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 ===