Antoine Pitrou <pit...@free.fr> added the comment:

> Instead, every call must go through PyObject_CallMethod, and the file
> objects only handle `PyBytes` and `PyByteArray` which are cumbersome
> and inefficient to use in extension modules.

Because of the generic nature of the 3.x I/O stack, even shortcuts such as the 
proposed PyFile_Write will still have to use PyObject_CallMethod(obj, "write", 
...) under the hood.

As for the types handled by file objects, you should be able to use a 
PyMemoryViewObject, which allows you to create a memory buffer without copying 
it (if that's what you're after).
You can also pass your own objects provided they support the new buffer API: 
http://docs.python.org/dev/c-api/buffer.html#bufferobjects
(I agree this documentation is not very well written, though)

So, bottom line, we could create a set of PyFile_* wrappers (or, rather, 
PyStream_*), but they wouldn't be much more efficient that what you can write 
by hand. Do you still think it's worth it? If so, I think you should float the 
idea on python-dev (the mailing-list).

----------
nosy: +pitrou

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9838>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to