Re: [Python-Dev] Memoryviews should expose the underlying memory address

2012年9月20日 09:49:55 -0700

2012年9月20日 David Beazley <[email protected]>:
> I have recently been experimenting with the memoryview() built-in and have 
> come to believe that it really needs to expose the 'buf' attribute of the 
> underlying Py_buffer structure as an integer (see PEP 3118). Let me explain.
>
> The whole point of PEP 3118 (as I understand it) is to provide a means for 
> exchanging or sharing array data across different libraries such as numpy, 
> PIL, ctypes, Cython, etc. If you're working with Py_buffer objects at the C 
> level, this works fine. However, if you're working purely in Python, you're 
> only able to get partial information about memory views such as the shape and 
> size. You can't get the actual pointer to the underlying memory (unless 
> I've missed something obvious).
>
> This is unfortunate because it means that you can't write Python code to 
> link memoryviews to other kinds of compiled code that might want to operate 
> on array-oriented data. For example, you can't pass the raw pointer into a 
> function that you've exposed via ctypes. Similarly, you can't pass the 
> pointer into functions you've dynamically compiled using libraries such as 
> LLVM-py. There might be other kinds of applications, but just having that 
> one bit of extra information available would be useful for various advanced 
> programming techniques involving extensions and memory buffers.
Presumably ctypes should be able to do this conversion for you.
-- 
Regards,
Benjamin
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to