Olaf Hartmann added the comment:
Answering my own question, here is a workaround, that also produces reasonable
results for the original test case. Basically just inserting an empty struct:
import ctypes
class Empty(ctypes.Structure):
_fields_ = []
class Struct(ctypes.Structure):
_fields_ = [
("uint8_0", ctypes.c_uint8, 8),
("uint8_1", ctypes.c_uint8, 8),
("_ignore", Empty),
("uint16_0", ctypes.c_uint16, 1),
("uint16_1", ctypes.c_uint16, 15),
]
for f in Struct._fields_:
print f[0], getattr(Struct, f[0])
> python bitfield.py
uint8_0 <Field type=c_ubyte, ofs=0:0, bits=8>
uint8_1 <Field type=c_ubyte, ofs=1:0, bits=8>
_ignore <Field type=Empty, ofs=2, size=0>
uint16_0 <Field type=c_ushort, ofs=2:0, bits=1>
uint16_1 <Field type=c_ushort, ofs=2:1, bits=15>
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue15119>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com