On Mon, Jan 10, 2011 at 7:46 AM, Friedrich Romstedt <
friedrichromst...@gmail.com> wrote:

> 2011/1/8 Benjamin Root <ben.r...@ou.edu>:
> > The changes look ok to me so far.  It looks to be mostly a
> re-organization
> > of existing logic and some consolidation of code.  My only concerns are
> the
> > creation of two new functions.  Besides the obvious issues with potential
> > namespace collisions in other parts of the code that might do an 'from cm
> > import *', my main issue is that these functions are probably really only
> > meant for internal use and should probably start with an underscore.  We
> can
> > always un-underscore them in a later release...
>
> I agree on that the functions are kind of internal.  Atm they do not
> reach their aim of generating cmaps from arbitrary specifications
> (generate_cmap can only handle known cmaps by name).  It seems to me I
> was too fast and did not think it thoroughly through :-/.
>
> I'm not really satisfied with the current state of the patch with the
> informations you gave at hand.  I wrote this patch as it is because I
> assumed functions like ``revcmap`` are supposed to stay
> backward-compatible.
>
>
Any existing function should remain backwards compatible, and so I have no
intention of putting an underscore on that one.  Only on the new ones.


> If backward compatibility isn't an issue for this functions, so why
> not going ahead and rewriting the functions so that they deliver some
> useful functionality instead of only helping functionality.  And if
> there are non-public stuff functions remaining, we could place an
> __all__ at the top of the file, to prevent them being imported by
> ``from cm import *``.
>
>
That might be a style issue that would be up to other maintainers.
Personally, at the very least, any function that is meant to be internal
should start with an underscore just to act as a flag to others.  But then
using the __all__ approach gives the added benefit of making the
documentation cleaner.


> > I will do a bit more testing to see if I can break it, but barring that,
> I
> > will commit a slightly modified version of the patch later today.
>
> :-/  You are too fast for me.
>
>
Actually, I haven't committed anything yet.  I have a bit of a backlog
here...


> In fact I think this functions belong to
> colors.LinearSegmentedColormap.  Reversing should be a method of that
> one, and they should accept directly all kind of specifications at
> initialisation time.
>
>
Actually, I think it belongs down in Colormap.  I don't see why this should
be limited to just LinearSegmentedColormap.


> So what parts should stay backwards compatible and which are we able to
> change?
>
> *  Do we have to keep LinearSegmentedColormap.from_list() or should it
> be simply an alias for its __init__()?
> *  What is the callable-functionality in cm.revcmap for?  It can
> handle callable value items, but where's this used in mpl?
> *  And, as said, do we have to keep this list-and-dicitionary mangling
> functions outside of LinearSegmentedColormap?  I.e., can we replace it
> by reversing fully-fledged Colormaps, instead of reversing their
> tuple-or-dict specs?
>
>
My feeling is that for the purposes of 1.0.1, what you put together is good
(although with those new functions underscored).  I will then merge that
over to the development branch.  In the development branch, we can then make
any additional design changes.  As far as the 1.0.1 release goes, there
really shouldn't be any new functionalities, only bug fixes for existing
code.

Ben Root
------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to