def _counts(data):
# Generate a table of sorted (value, frequency) pairs.
- if data is None:
- raise TypeError('None is not iterable')
- table = collections.Counter(data).most_common()
+ table = collections.Counter(iter(data)).most_common()
if not table:
return table
# Extract the values with the highest frequency.
# collections.Counter, which accepts None and returns an empty dict.
self.assertRaises(TypeError, self.func, None)
+ def test_counter_data(self):
+ # Test that a Counter is treated like any other iterable.
+ data = collections.Counter([1, 1, 1, 2])
+ # Since the keys of the counter are treated as data points, not the
+ # counts, this should raise.
+ self.assertRaises(statistics.StatisticsError, self.func, data)
+
+
# === Tests for variances and standard deviations ===
Library
-------
+- Issue #20478: the statistics module now treats collections.Counter inputs
+ like any other iterable.
+
- Issue #17369: get_filename was raising an exception if the filename
parameter's RFC2231 encoding was broken in certain ways. This was
a regression relative to python2.