[Python-Dev] Why does _pyio.*.readinto have to work with 'b' arrays?

Nikolaus Rath Nikolaus at rath.org
Sun Jun 15 21:03:28 CEST 2014


Nick Coghlan <ncoghlan at gmail.com> writes:
> On 15 June 2014 14:57, Nikolaus Rath <Nikolaus at rath.org> wrote:
>> On 06/14/2014 09:31 PM, Nick Coghlan wrote:
>>> On 15 June 2014 10:41, Benjamin Peterson <benjamin at python.org> wrote:
>>>> On Sat, Jun 14, 2014, at 15:39, Nikolaus Rath wrote:
>>>>> It seems to me that a much cleaner solution would be to simply declare
>>>>> _pyio's readinto to only work with bytearrays, and to explicitly raise a
>>>>> (more helpful) TypeError if anything else is passed in.
>>>>
>>>> That seems reasonable. I don't think _pyio's behavior is terribly
>>>> important compared to the C _io module.
>>>
>>> _pyio was written before the various memoryview fixes that were
>>> implemented in Python 3.3 - it seems to me it would make more sense to
>>> use memoryview to correctly handle arbitrary buffer exporters (we
>>> implemented similar fixes for the base64 module in 3.4).
>>
>> Definitely. But is there a way to do that without writing C code?
>
> Yes, Python level reshaping and typecasting of memory views is one of
> the key enhancements Stefan implemented for 3.3.
[..]

Ah, nice. I'll use that. Thank you Stefan :-).


Best,
-Nikolaus

-- 
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F

             »Time flies like an arrow, fruit flies like a Banana.«


More information about the Python-Dev mailing list