<div dir="ltr">Hi Egor - I just read through your blog post, thanks for describing those new list-of-array type maps.  It helps to see your motivation and some examples.  I'll keep it in mind if I ever have a list of large arrays to process for which creating a numpy array first is not desirable.<div style>

- Tom</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 18, 2013 at 6:36 AM, Egor Zindy <span dir="ltr"><<a href="mailto:ezindy@gmail.com" target="_blank">ezindy@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear all,<br>
<br>
after some code clean-up / testing and a few additions, I've now sent<br>
a pull request to numpy:master (#3451).<br>
<a href="https://github.com/numpy/numpy/pull/3451" target="_blank">https://github.com/numpy/numpy/pull/3451</a><br>
<br>
I also made a blog post to explain the new typemaps I would like included:<br>
<a href="http://egorzindy.blogspot.co.uk/2013/06/new-numpyi-typemaps-for-working-with.html" target="_blank">http://egorzindy.blogspot.co.uk/2013/06/new-numpyi-typemaps-for-working-with.html</a><br>
<br>
Any comments appreciated.<br>
<br>
Kind regards,<br>
Egor<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 9 June 2013 09:20, Egor Zindy <<a href="mailto:ezindy@gmail.com">ezindy@gmail.com</a>> wrote:<br>
> Thanks Tom,<br>
><br>
> before we ship it, I'd love to have some feedback on the new ARGOUT_VIEWM<br>
> type.<br>
><br>
> I used to create my managed arrays using<br>
><br>
>     PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free);<br>
><br>
> but since this function is deprecated, and because of Bill's background work<br>
> to bring numpy.i up to date, I now use capsules for this:<br>
><br>
>     PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME,<br>
> free_cap);<br>
><br>
> ... I'll admit it took longer than expected to get this right.<br>
><br>
> Would you mind testing my latest numpy.i changes hosted on github?<br>
> <a href="https://github.com/zindy/numpy/tree/numpy-swig/doc/swig" target="_blank">https://github.com/zindy/numpy/tree/numpy-swig/doc/swig</a><br>
><br>
> It's great that you are testing on a mac, I don't have one to test on yet.<br>
><br>
><br>
>> It worked fine, although I use only a fraction of the capabilities that it<br>
>> includes.<br>
><br>
> Same here, but overall, it should be quit easy to choose the data type you<br>
> need. Narrow down it down to a type between IN_ARRAY / INPLACE_ / ARGOUT_ /<br>
> ARGOUT_VIEW/VIEWM<br>
> <a href="http://wiki.scipy.org/Cookbook/SWIG_NumPy_examples" target="_blank">http://wiki.scipy.org/Cookbook/SWIG_NumPy_examples</a><br>
> <a href="http://wiki.scipy.org/Cookbook/SWIG_Memory_Deallocation" target="_blank">http://wiki.scipy.org/Cookbook/SWIG_Memory_Deallocation</a> (I'll update these<br>
> when I have a sec)<br>
><br>
> ... and choose the number of dimensions you need (1/2/3/4). I can't comment<br>
> on the Fortran arrays data types though as I don't use them.<br>
><br>
> Also I've introduced a few of my more esoteric data types in this week, but<br>
> I have no idea how popular they will be. If you ever need to speed-up:<br>
><br>
> a = numpy.ones((1024,1024),numpy.uint8)<br>
> la = [a]*100<br>
> b = numpy.mean(numpy.array(la,float),axis=0).astype(numpy.uint8)<br>
><br>
> I have just the right type for that :)<br>
> DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3<br>
><br>
> Kind regards,<br>
> Egor<br>
><br>
><br>
> On 9 June 2013 03:33, Tom Krauss <<a href="mailto:thomas.p.krauss@gmail.com">thomas.p.krauss@gmail.com</a>> wrote:<br>
>><br>
>> Hi folks,<br>
>><br>
>> I just downloaded Bill's numpy.i at commit 4dcb0679, and tried it out a<br>
>> bit on some of my personal projects.  It worked fine, although I use only a<br>
>> fraction of the capabilities that it includes.<br>
>><br>
>>  And, it made the warning go away!<br>
>><br>
>> I used to get this warning<br>
>><br>
>> g++ -g -fPIC -c simple_wrap.cpp -I/usr/include/python2.7<br>
>> -I/Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include<br>
>> In file included from<br>
>> /Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include/numpy/ndarraytypes.h:1722,<br>
>>                  from<br>
>> /Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include/numpy/ndarrayobject.h:17,<br>
>>                  from<br>
>> /Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include/numpy/arrayobject.h:15,<br>
>>                  from simple_wrap.cpp:3062:<br>
>><br>
>> /Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include/numpy/npy_deprecated_api.h:11:2:<br>
>> warning: #warning "Using deprecated NumPy API, disable it by #defining<br>
>> NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"<br>
>><br>
>> but not with this version.<br>
>><br>
>> You can see which version of numpy I am using there, and that I am on Mac<br>
>> OS X 10.8. (10.8.4 specifically)  Python 2.7.2<br>
>><br>
>> I'd say SHIP IT!<br>
>><br>
>> Nice work, thanks for all your work on numpy and numpy.i.<br>
>><br>
>> - Tom Krauss<br>
>><br>
>><br>
>><br>
>> On Tue, Jun 4, 2013 at 3:13 PM, Ralf Gommers <<a href="mailto:ralf.gommers@gmail.com">ralf.gommers@gmail.com</a>><br>
>> wrote:<br>
>>><br>
>>> Hi,<br>
>>><br>
>>> If you're using or are very familiar with SWIG and the numpy.i interface<br>
>>> to it, please help to test and/or review<br>
>>> <a href="https://github.com/numpy/numpy/pull/3148" target="_blank">https://github.com/numpy/numpy/pull/3148</a>. It's a fairly major update to<br>
>>> numpy.i by Bill Spotz, containing the following:<br>
>>>   - support for 4D arrays and memory managed output arguments<br>
>>>   - rework for the deprecated API's in numpy 1.6 and 1.7<br>
>>>   - a bug fix in a 3D typemap<br>
>>>   - documentation improvements<br>
>>><br>
>>> It would be good to have this merged before branching 1.8.x. Not many of<br>
>>> the regular reviewers of numpy PRs are familiar with numpy.i, therefore help<br>
>>> would be much appreciated.<br>
>>><br>
>>> Thanks,<br>
>>> Ralf<br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> NumPy-Discussion mailing list<br>
>>> <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
>>> <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
>>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> NumPy-Discussion mailing list<br>
>> <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
>> <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
>><br>
><br>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
</div></div></blockquote></div><br></div>