Re: [Numpy-discussion] Extending C with Python

2018-02-06 Thread Jialin Liu
With PyObject_CallMethod(pInstance, method_name, "O", py_dims);

Can I pass in a reference and modify its content in python?

Best,
Jialin

On Sat, Feb 3, 2018 at 10:29 AM, Jialin Liu <jaln...@lbl.gov> wrote:

> Thank you guys.
>
> Best,
> Jialin
>
> Sent from my iPhone
>
> On Feb 3, 2018, at 8:11 AM, Sylvain Corlay <sylvain.cor...@gmail.com>
> wrote:
>
> You can also check out pybind11, xtensor, and xtensor-python
>
> The latter enables a high-level numpy-like API on the C++ side.
>
> You can check out the numpy to xtensor cheat sheet:
>
> http://xtensor.readthedocs.io/en/latest/numpy.html
>
> Best,
>
> Sylvain
>
>
> On Thu, Feb 1, 2018 at 12:11 AM, Stefan Seefeld <ste...@seefeld.name>
> wrote:
>
>> On 31.01.2018 17:58, Chris Barker wrote:
>>
>> I'm guessing you could use Cython to make this easier.
>>
>>
>> ... or Boost.Python (http://boostorg.github.io/python), which has
>> built-in support for NumPy (http://boostorg.github.io/pyt
>> hon/doc/html/numpy/index.html), and supports both directions: extending
>> Python with C++, as well as embedding Python into C++ applications.
>>
>>
>> 
>>
>> --
>>
>>   ...ich hab' noch einen Koffer in Berlin...
>>
>>
>>
>> ___
>> NumPy-Discussion mailing list
>> NumPy-Discussion@python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>
>>
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
___
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Extending C with Python

2018-02-03 Thread Jialin Liu
Thank you guys.

Best,
Jialin 

Sent from my iPhone

> On Feb 3, 2018, at 8:11 AM, Sylvain Corlay  wrote:
> 
> You can also check out pybind11, xtensor, and xtensor-python
> 
> The latter enables a high-level numpy-like API on the C++ side.
> 
> You can check out the numpy to xtensor cheat sheet:
> 
> http://xtensor.readthedocs.io/en/latest/numpy.html
> 
> Best,
> 
> Sylvain
> 
> 
>> On Thu, Feb 1, 2018 at 12:11 AM, Stefan Seefeld  wrote:
>>> On 31.01.2018 17:58, Chris Barker wrote:
>>> I'm guessing you could use Cython to make this easier.
>> 
>> ... or Boost.Python (http://boostorg.github.io/python), which has built-in 
>> support for NumPy 
>> (http://boostorg.github.io/python/doc/html/numpy/index.html), and supports 
>> both directions: extending Python with C++, as well as embedding Python into 
>> C++ applications.
>> 
>> 
>> 
>> -- 
>> 
>>   ...ich hab' noch einen Koffer in Berlin...
>> 
>> 
>> ___
>> NumPy-Discussion mailing list
>> NumPy-Discussion@python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>> 
> 
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
___
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Extending C with Python

2018-01-30 Thread Jialin Liu
Amazing! It works! Thank you Robert.

I've been stuck with this many days.

Best,
Jialin
LBNL/NERSC

On Tue, Jan 30, 2018 at 10:52 PM, Robert Kern <robert.k...@gmail.com> wrote:

> On Wed, Jan 31, 2018 at 3:25 PM, Jialin Liu <jaln...@lbl.gov> wrote:
>
>> Hello,
>> I'm extending C with python (which is opposite way of what people usually
>> do, extending python with C), I'm currently stuck in passing a C array to
>> python layer, could anyone plz advise?
>>
>> I have a C buffer in my C code and want to pass it to a python function.
>> In the C code, I have:
>>
>> npy_intp  dims [2];
>>> dims[0] = 10;
>>> dims[1] = 20;
>>> import_array();
>>> npy_intp m=2;
>>> PyObject * py_dims = PyArray_SimpleNewFromData(1, , NPY_INT16 ,(void
>>> *)dims ); // I also tried NPY_INT
>>> PyObject_CallMethod(pInstance, method_name, "O", py_dims);
>>
>>
>> In the Python code, I want to just print that array:
>>
>> def f(self, dims):
>>
>>print ("np array:%d,%d"%(dims[0],dims[1]))
>>
>>
>>
>> But it only prints the first number correctly, i.e., dims[0]. The second
>> number is always 0.
>>
>
> The correct typecode would be NPY_INTP.
>
> --
> Robert Kern
>
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
___
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion


[Numpy-discussion] Extending C with Python

2018-01-30 Thread Jialin Liu
Hello,
I'm extending C with python (which is opposite way of what people usually
do, extending python with C), I'm currently stuck in passing a C array to
python layer, could anyone plz advise?

I have a C buffer in my C code and want to pass it to a python function. In
the C code, I have:

npy_intp  dims [2];
> dims[0] = 10;
> dims[1] = 20;
> import_array();
> npy_intp m=2;
> PyObject * py_dims = PyArray_SimpleNewFromData(1, , NPY_INT16 ,(void
> *)dims ); // I also tried NPY_INT
> PyObject_CallMethod(pInstance, method_name, "O", py_dims);


In the Python code, I want to just print that array:

def f(self, dims):

   print ("np array:%d,%d"%(dims[0],dims[1]))



But it only prints the first number correctly, i.e., dims[0]. The second
number is always 0.


Best,
Jialin
LBNL/NERSC
___
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion