From: SourceForge.net <no...@so...> - 2005-09-22 20:19:21
|
Bugs item #1299096, was opened at 2005-09-22 20:19 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=442886&aid=1299096&group_id=45430 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: lszumel (lszumel) Assigned to: Nobody/Anonymous (nobody) Summary: OverflowError if input y data is constant Initial Comment: If min and max are not specified on an axis (I'm using graph.axis.linear), and the y-data is constant, parter.py gets an OverflowError when trying to compute the range (log(max - min) == log(0) => math range error). Feature or bug? I'm using PyX 0.8. Here is the trace: Traceback (most recent call last): File "./mycode.py", line 46, in ? c.writeEPSfile('somefile') File "/usr/lib/python2.3/site-packages/pyx/canvas.py", line 326, in writeEPSfile document.document([document.page(self, **kwargs)]).writeEPSfile(filename) File "/usr/lib/python2.3/site-packages/pyx/document.py", line 138, in writeEPSfile pswriter.epswriter(self, filename, *args, **kwargs) File "/usr/lib/python2.3/site-packages/pyx/pswriter.py", line 235, in __init__ bbox = page.bbox() File "/usr/lib/python2.3/site-packages/pyx/document.py", line 78, in bbox bbox = self.canvas.bbox() File "/usr/lib/python2.3/site-packages/pyx/canvas.py", line 161, in bbox abbox = cmd.bbox() File "/usr/lib/python2.3/site-packages/pyx/graph/graph.py", line 445, in bbox self.finish() File "/usr/lib/python2.3/site-packages/pyx/graph/graph.py", line 342, in finish self.domethods[0]() File "/usr/lib/python2.3/site-packages/pyx/graph/graph.py", line 275, in dolayout self.axes[key].create(self.texrunner) File "/usr/lib/python2.3/site-packages/pyx/graph/axis/axis.py", line 526, in create self.canvas = self.axis.create(self.data, self.positioner, graphtexrunner, self.errorname) File "/usr/lib/python2.3/site-packages/pyx/graph/axis/axis.py", line 163, in create self.min is None, self.max is None) File "/usr/lib/python2.3/site-packages/pyx/graph/axis/parter.py", line 148, in partfunctions logmm = math.log(max - min) / math.log(10) OverflowError: math range error ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=442886&aid=1299096&group_id=45430 |
From: SourceForge.net <no...@so...> - 2005-09-23 05:22:08
|
Bugs item #1299096, was opened at 2005-09-22 22:19 Message generated for change (Comment added) made by wobsta You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=442886&aid=1299096&group_id=45430 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Wont Fix Priority: 5 Submitted By: lszumel (lszumel) Assigned to: Nobody/Anonymous (nobody) Summary: OverflowError if input y data is constant Initial Comment: If min and max are not specified on an axis (I'm using graph.axis.linear), and the y-data is constant, parter.py gets an OverflowError when trying to compute the range (log(max - min) == log(0) => math range error). Feature or bug? I'm using PyX 0.8. Here is the trace: Traceback (most recent call last): File "./mycode.py", line 46, in ? c.writeEPSfile('somefile') File "/usr/lib/python2.3/site-packages/pyx/canvas.py", line 326, in writeEPSfile document.document([document.page(self, **kwargs)]).writeEPSfile(filename) File "/usr/lib/python2.3/site-packages/pyx/document.py", line 138, in writeEPSfile pswriter.epswriter(self, filename, *args, **kwargs) File "/usr/lib/python2.3/site-packages/pyx/pswriter.py", line 235, in __init__ bbox = page.bbox() File "/usr/lib/python2.3/site-packages/pyx/document.py", line 78, in bbox bbox = self.canvas.bbox() File "/usr/lib/python2.3/site-packages/pyx/canvas.py", line 161, in bbox abbox = cmd.bbox() File "/usr/lib/python2.3/site-packages/pyx/graph/graph.py", line 445, in bbox self.finish() File "/usr/lib/python2.3/site-packages/pyx/graph/graph.py", line 342, in finish self.domethods[0]() File "/usr/lib/python2.3/site-packages/pyx/graph/graph.py", line 275, in dolayout self.axes[key].create(self.texrunner) File "/usr/lib/python2.3/site-packages/pyx/graph/axis/axis.py", line 526, in create self.canvas = self.axis.create(self.data, self.positioner, graphtexrunner, self.errorname) File "/usr/lib/python2.3/site-packages/pyx/graph/axis/axis.py", line 163, in create self.min is None, self.max is None) File "/usr/lib/python2.3/site-packages/pyx/graph/axis/parter.py", line 148, in partfunctions logmm = math.log(max - min) / math.log(10) OverflowError: math range error ---------------------------------------------------------------------- >Comment By: André Wobst (wobsta) Date: 2005-09-23 07:22 Message: Logged In: YES user_id=405853 I agree that the exception is bad, since it doesn't guide you to the source of the problem. I fixed it in the CVS head (i.e. for 0.9) some time ago already, where now a RuntimeError with the description "partitioning failed due to empty or invalid axis range" is raised instead. I hope this helps to clearify the situation. Beside that (and its not the first time we're discussing this issue) I just don't know how to proper handle this case, since I don't want some strange magic for such a case, where I just can't tell what the user really wants. I think an exception is the only option we have. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=442886&aid=1299096&group_id=45430 |