def __getattribute__(self, name): if name == '_fieldtypes': return _CData.__getattribute__(self, '_fieldtypes') try: fieldtype = self._fieldtypes[name].ctype except KeyError: return _CData.__getattribute__(self, name) offset = self.__class__._fieldtypes[name].num suba = self._subarray(fieldtype, name) return fieldtype._CData_output(suba, self, offset)
def __getattribute__(self, name): if name == '_fieldtypes': return _CData.__getattribute__(self, '_fieldtypes') try: field = self._fieldtypes[name] except KeyError: return _CData.__getattribute__(self, name) if field.size >> 16: # bitfield member, use direct access return self._buffer.__getattr__(name) else: fieldtype = field.ctype offset = field.num suba = self._subarray(fieldtype, name) return fieldtype._CData_output(suba, self, offset)