[Python-checkins] Fix renamed "total" variable (#92287)

rhettinger webhook-mailer at python.org
Wed May 4 00:22:08 EDT 2022


https://github.com/python/cpython/commit/d20bb33f782f5677256d7e1f2462b78113692969
commit: d20bb33f782f5677256d7e1f2462b78113692969
branch: main
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: rhettinger <rhettinger at users.noreply.github.com>
date: 2022-05-03T23:22:04-05:00
summary:

Fix renamed "total" variable (#92287)

* Fix renamed "total" variable
* Keep nan/inf handling consistent between versions

files:
M Lib/statistics.py

diff --git a/Lib/statistics.py b/Lib/statistics.py
index 5a3de810836de..c0220889ebdc4 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 ===



More information about the Python-checkins mailing list