On 03/08/2012 07:16 AM, Benjamin Root wrote:
>
>
> On Thu, Mar 8, 2012 at 10:47 AM, John Hunter <jdh2...@gmail.com
> <mailto:jdh2...@gmail.com>> wrote:
>
>
>
>     On Thu, Mar 8, 2012 at 10:32 AM, Benjamin Root <ben.r...@ou.edu
>     <mailto:ben.r...@ou.edu>> wrote:
>
>
>         +1 as well.  I just took another look at the Path object and I
>         see no such function.  The lack of this function is a problem
>         for me as well in my existing apps.  In order to deprecate
>         nxutils, this functionality needs to be added to Path.
>         Otherwise, nxutils *must* be reinstated before the next release.
>
>
>     Michael has already agreed to make a nxutils compatibility layer
>     that would have the same interface as the old nxutils.  So we are
>     talking about performance, not core functionality.
>
>     We should remember that Michael did the lion's share of the work on
>       porting mpl to python 3
>     (https://github.com/matplotlib/matplotlib/pull/565/commits).  He
>     elected not to port all of the C++ if he could replace some of the
>     functionality with the core.  So those who rely on bare metal speed
>     the you are getting in nxutils should step up to either :
>
>     1) help with the port of nxutils to python 3
>
>     2) help with exposing methods in _path.cpp that are almost as fast
>     or faster
>
>     3) live with slower speeds in the compatibility layer he has agreed
>     to write
>
>     4) ask (nicely) for someone to help you
>
>     I prefer option 2 because this is fairly easy and avoids code
>     redundancy.  It would take just a few lines of extra code to do this
>     with the python sequence protocol as inputs and python lists as
>     return values.  It would take a bit more to support numpy arrays as
>     input and output, and we should get input from Michael about the
>     desirability of making _path.cpp depend on numpy.  I don't see the
>     harm, but I'd like to verify.
>
>     In my opinion, a slower implementation in a
>     nxutils.py compatibility module is not a release stopper, even if it
>     is undesirable.
>
>     JDH
>
>
> Don't get me wrong.  If help is needed, I can certainly provide it since
> it is my itch.  I am just a little exasperated with how this issue has
> been handled up to now.  The shim is a very good idea and it should have
> been done back when the py3k merge happened.  I didn't press the issue
> then because I was traveling and didn't have time to examine the issue
> closely, and having _nxutils.so still in my build hide the problem from
> me (my own fault).
>
> As for shim implementation, I would be willing to accept a slightly
> slower function now (with the promise of improvements later), but if the
> implementation is too much slower, then effort will need to be made to
> get it up to acceptable levels.  I know of several users **cough**my
> future employer**cough** who uses functionality such as this, and they
> would not be happy if their products are dragged down by such a bottleneck.

For my own purposes I decided to simply copy the pnpoly core and write a 
cython wrapper, since nxutils did not seem to have a secure future in 
mpl.  If anyone is interested in this approach, see the files _pnpoly.c
and utility.pyx (last function therein) in the num/src subdirectory of 
my "pycurrents" repo: 
http://currents.soest.hawaii.edu/hgstage/pycurrents/shortlog/tip.  The 
wrapper is brand-new and very lightly tested; I suspect it could be 
improved considerably.  (Also, at present it has only the points_in_poly 
function.)

>
> Probably about time I dug more into CXX wrapped stuff...

mpl strategy question: stick with CXX and hand-wrapping exclusively, or 
start using cython?

Eric

>
> Ben Root
>
>
>
> ------------------------------------------------------------------------------
> Virtualization&  Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users


------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to