[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2019-12-23 Thread Ned Deily


Change by Ned Deily :


--
nosy: +vinay.sajip

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2019-12-23 Thread mattip


mattip  added the comment:

Is there a ctypes or PEP-3118 core-dev who could review the issue and the PR 
solution?

--
nosy: +mattip

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2019-04-21 Thread Stefan Krah


Stefan Krah  added the comment:

Since Terry added me: Yes, this is clearly a bug, but it is a ctypes issue and 
not a memoryview issue.

ctypes issues unfortunately tend to take some time until someone reviews.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2019-04-14 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

Fixing one case is better than fixing no cases.

--
nosy: +skrah, terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2019-04-14 Thread Terry J. Reedy


Change by Terry J. Reedy :


--
versions:  -Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-07-23 Thread Eric Wieser


Eric Wieser  added the comment:

> It should be fairly simple to modify the code to use a format of "B" 
> for unions, so that it at least matches the itemsize

Seems reasonable, although:

* I think it should be "B" or "()B"
* I'd rather leave that for a later patch. While it would be correct, it's 
still not correct enough to be that useful, since ultimately the union layout 
is still lost. I'd prefer to focus on fixing the part of the PEPE3118 
implementation that is most useful, rather than committing to fixing the whole 
thing all at once.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-07-16 Thread Carl Banks


Carl Banks  added the comment:

I guess I'll weigh in since I was pinged.

I agree with the approach in the patch.  All the memoryview does is to use the 
format field verbatim from the underlying buffer, so if the format field is 
inaccurate then the only thing to do is to fix the object providing the buffer.

Since the format field is only there for interpretation of the data, and is not 
used to calculate of itemsizes or strides anywhere as far as I know, it's a 
fairly low-risk change.

However, the patch still leaves ctypes inaccurate for the case of unions.  It 
should be fairly simple to modify the code to use a format of "B" for 
unions, so that it at least matches the itemsize, even if the type information 
is lost.

(As an aside, let me point out that I did not actually write or advocate for 
the PEP; for some reason my name was added to it even though I all I did was to 
provide feedback.)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-07-08 Thread Alexander Belopolsky


Change by Alexander Belopolsky :


--
assignee:  -> belopolsky

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-07-08 Thread Alexander Belopolsky


Alexander Belopolsky  added the comment:

Unfortunately, the PEP authors did very little in terms of implementing the PEP 
and neither CPython nor numpy has a fully compliant implementation.

--
nosy: +aerojockey, teoliphant

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-07-08 Thread Eric Wieser


Eric Wieser  added the comment:

Pinging, as recommended by https://devguide.python.org/pullrequest/#reviewing. 
PEP3118 as a protocol is far less useful if the canonical implementation is 
non-compliant.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-02-09 Thread Terry J. Reedy

Change by Terry J. Reedy :


--
nosy: +amaury.forgeotdarc, belopolsky, meador.inge
versions:  -Python 3.4, Python 3.5

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-02-05 Thread Eric Wieser

Change by Eric Wieser :


--
type:  -> behavior

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-02-05 Thread Eric Wieser

Change by Eric Wieser :


--
keywords: +patch
pull_requests: +5383
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32780] ctypes: memoryview gives incorrect PEP3118 format strings for both packed and unpacked structs

2018-02-05 Thread Eric Wieser

New submission from Eric Wieser :

Discovered [here](https://github.com/numpy/numpy/issues/10528)

Consider the following structure, and a memoryview created from it:

class foo(ctypes.Structure):
_fields_ = [('one', ctypes.c_uint8),
('two', ctypes.c_uint32)]
f = foo()
mf = memoryview(f)

We'd expect this to insert padding, and it does:

>>> mf.itemsize
8

But that padding doesn't show up in the format string:

>>> mf.format
'T{ No padding is added when using non-native size and alignment, e.g. with ‘<’, 
> ‘>’

But ctypes doesn't even get it right for packed structs:


class foop(ctypes.Structure):
_fields_ = [('one', ctypes.c_uint8),
('two', ctypes.c_uint32)]
_pack_ = 1
f = foo()
mf = memoryview(f)

The size is what we'd expect:

>>> mf.itemsize
5

But the format is garbage:

>>> mf.format
'B'  # sizeof(byte) == 5!?

--
components: ctypes
messages: 311705
nosy: Eric.Wieser
priority: normal
severity: normal
status: open
title: ctypes: memoryview gives incorrect PEP3118 format strings for both 
packed and unpacked structs
versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com