When all the values for PieChart2D are Zeroes, we get assertion
error.
Could this be fixed?
I encountered this problem with PieChart2D, but might happen for
others chart types too.
In [10]: pygooglechart.__version__
Out[10]: '0.2.1'
In [1]: import pygooglechart
In [2]: def get_url(values, labels, colors):
...: p = pygooglechart.Pie
...: p = pygooglechart.PieChart2D(1000, 300)
...: p.add_data(values)
...: p.set_pie_labels(labels)
...: p.set_colours(colors)
...: p.title = 'sample'
...: return p.get_url()
In [8]: get_url([1, 2], ['A', 'B'], ['BBBBBB', 'EEEEEE'])
Out[8]: '
http://chart.apis.google.com/chart?
cht=p&chs=1000x300&chd=s:Up&chtt=sample&chco=BBBBBB,EEEEEE&chl=A|B'
In [9]: get_url([0, 0], ['A', 'B'], ['BBBBBB', 'EEEEEE'])
---------------------------------------------------------------------------
<type 'exceptions.AssertionError'> Traceback (most recent call
last)
/home/ashish/<ipython console> in <module>()
/home/ashish/<ipython console> in get_url(values, labels, colors)
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in get_url(self,
data_class)
334
335 def get_url(self, data_class=None):
--> 336 url_bits = self.get_url_bits(data_class=data_class)
337 return self.BASE_URL + '&'.join(url_bits)
338
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in get_url_bits(self,
data_class)
884
885 def get_url_bits(self, data_class=None):
--> 886 url_bits = Chart.get_url_bits(self,
data_class=data_class)
887 if self.pie_labels:
888 url_bits.append('chl=%s' % '|'.join
(self.pie_labels))
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in get_url_bits(self,
data_class)
342 url_bits.append(self.type_to_url())
343 url_bits.append('chs=%ix%i' % (self.width,
self.height))
--> 344 url_bits.append(self.data_to_url
(data_class=data_class))
345 # optional arguments
346 if self.title:
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in data_to_url(self,
data_class)
590 raise UnknownDataTypeException()
591 if self.auto_scale:
--> 592 data = self.scaled_data(data_class, self.x_range,
self.y_range)
593 else:
594 data = self.data
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in scaled_data(self,
data_class, x_range, y_range)
898 if not x_range:
899 x_range = [0, sum(self.data[0])]
--> 900 return Chart.scaled_data(self, data_class, x_range,
self.y_range)
901
902
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in scaled_data(self,
data_class, x_range, y_range)
576 else:
577 scaled_dataset.append(
--> 578 data_class.scale_value(v,
scale_range))
579 scaled_data.append(scaled_dataset)
580 return scaled_data
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in scale_value(cls,
value, range)
114 @classmethod
115 def scale_value(cls, value, range):
--> 116 scaled = cls.int_scale_value(value, range)
117 clipped = cls.clip_value(scaled)
118 Data.check_clip(scaled, clipped)
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in int_scale_value(cls,
value, range)
110 @classmethod
111 def int_scale_value(cls, value, range):
--> 112 return int(round(cls.float_scale_value(value, range)))
113
114 @classmethod
/usr/local/python-2.5.1/lib/python2.5/site-packages/
pygooglechart-0.2.1-py2.5.egg/pygooglechart.py in float_scale_value
(cls, value, range)
100 def float_scale_value(cls, value, range):
101 lower, upper = range
--> 102 assert(upper > lower)
103 scaled = (value - lower) * (float(cls.max_value) /
(upper - lower))
104 return scaled
<type 'exceptions.AssertionError'>: