On Thu, Jul 17, 2008 at 2:44 PM, David M. Kaplan <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I committed to svn (revision 5782) a version of the patch for clabel and
> waitforbuttonpress. I haven't perfected label rotation yet, but it
> works at the moment. I also haven't yet followed Paul Kienzle's
> suggestions (though I think they are a good idea), as I wanted to get a
> bit more information in relation to one of Gael's comments below.
Just reading through the blocking_inpu with comments mostly unrelated
to those you are raising here, and I was just reading for style rather
than logic. Some of this stuff may not be your code but here is what
I found:
def __init__(self, fig, eventslist=()):
self.fig = fig
assert isinstance(eventslist, tuple), "Requires a tuple of
event name strings"
self.eventslist = eventslist
It is rarely necessary to require *a tuple* though in some cases it
might be. Wouldn't a list work here? We use duck typing in mpl: eg
if you want to make sure the input is iterable and it contains strings
import matplotlib.cbook
if not cbook.iterable(eventslist):
raise ValueError('events list must be iterable')
if cbook.is_string_like(eventslist):
raise ValueError('eventslist cannot be a string')
for event in eventslist:
if not cbook.is_string_like(event):
raise ValueError('events list must be a list of strings')
I would probably write a cbook method is_sequence_of_strings and just
call that since it will be more readable and reusable...
I notice there are some residual print statements in the code -- these
should be replaced by the verbose handler in matplotlib/__init__.py,
eg in
if timeout > 0 and counter > timeout/0.01:
print "Timeout reached";
break;
and
if self.verbose:
print "input %i: %f,%f" % (len(self.clicks),
event.xdata, event.ydata)
and others in contour.py
You can replace these with
import matplotlib
matplotlib.verbose.report('something')
and
matplotlib.verbose.report('some nitty gritty details', 'debug')
There should be no prints in mpl.
In contour.py, we have
xmax = np.amax(np.array(linecontour)[:,0])
xmin = np.amin(np.array(linecontour)[:,0])
ymax = np.amax(np.array(linecontour)[:,1])
ymin = np.amin(np.array(linecontour)[:,1])
which needlessly repears the array creation. I would create it once
and reuse it.
That's all for now. Thanks.
JDH
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel