Пример #1
0
def struct_setattr(self, name, value):
    if name == "_fields_":
        if self.__dict__.get("_fields_", None) is not None:
            raise AttributeError("_fields_ is final")
        if self in [f[1] for f in value]:
            raise AttributeError("Structure or union cannot contain itself")
        names_and_fields(self, value, self.__bases__[0], self.__dict__.get("_anonymous_", None))
        _CDataMeta.__setattr__(self, "_fields_", value)
        return
    _CDataMeta.__setattr__(self, name, value)
Пример #2
0
def struct_setattr(self, name, value):
    if name == '_fields_':
        if self.__dict__.get('_fields_', None) is not None:
            raise AttributeError("_fields_ is final")
        if self in [f[1] for f in value]:
            raise AttributeError("Structure or union cannot contain itself")
        names_and_fields(self, value, self.__bases__[0],
                         self.__dict__.get('_anonymous_', None))
        _CDataMeta.__setattr__(self, '_fields_', value)
        return
    _CDataMeta.__setattr__(self, name, value)
Пример #3
0
 def __setattr__(self, name, value):
     if name == '_fields_':
         if self.__dict__.get('_fields_', None):
             raise AttributeError("_fields_ is final")
         if self in [v for k, v in value]:
             raise AttributeError("Union cannot contain itself")
         self._names, rawfields, self._fieldtypes = names_and_fields(
             value, self.__bases__[0], True,
             self.__dict__.get('_anonymous_', None))
         _CDataMeta.__setattr__(self, '_fields_', value)
         _set_shape(self)
     _CDataMeta.__setattr__(self, name, value)
Пример #4
0
 def __setattr__(self, name, value):
     if name == '_fields_':
         if self.__dict__.get('_fields_', None):
             raise AttributeError("_fields_ is final")
         if self in [v for k, v in value]:
             raise AttributeError("Union cannot contain itself")
         self._names, rawfields, self._fieldtypes = names_and_fields(
             value, self.__bases__[0], True,
             self.__dict__.get('_anonymous_', None))
         _CDataMeta.__setattr__(self, '_fields_', value)
         _set_shape(self)
     _CDataMeta.__setattr__(self, name, value)
Пример #5
0
def struct_setattr(self, name, value):
    if name == '_fields_':
        if self.__dict__.get('_fields_', None):
            raise AttributeError("_fields_ is final")
        if self in [v for k, v in value]:
            raise AttributeError("Structure or union cannot contain itself")
        self._names, rawfields, self._fieldtypes = names_and_fields(
            value, self.__bases__[0], False,
            self.__dict__.get('_anonymous_', None))
        self._ffistruct = _rawffi.Structure(rawfields)
        _CDataMeta.__setattr__(self, '_fields_', value)
        self._ffiargshape = self._ffishape = self._ffistruct.gettypecode()
        return
    _CDataMeta.__setattr__(self, name, value)
Пример #6
0
def struct_setattr(self, name, value):
    if name == '_fields_':
        if self.__dict__.get('_fields_', None):
            raise AttributeError("_fields_ is final")
        if self in [v for k, v in value]:
            raise AttributeError("Structure or union cannot contain itself")
        self._names, rawfields, self._fieldtypes = names_and_fields(
            value, self.__bases__[0], False,
            self.__dict__.get('_anonymous_', None))
        self._ffistruct = _rawffi.Structure(rawfields)
        _CDataMeta.__setattr__(self, '_fields_', value)
        self._ffiargshape = self._ffishape = self._ffistruct.gettypecode()
        return
    _CDataMeta.__setattr__(self, name, value)
Пример #7
0
def struct_setattr(self, name, value):
    if name == '_fields_':
        if self.__dict__.get('_fields_', None) is not None:
            raise AttributeError("_fields_ is final")
        if self in [f[1] for f in value]:
            raise AttributeError("Structure or union cannot contain itself")
        if self._ffiargtype is not None:
            raise NotImplementedError(
                "Too late to set _fields_: we already "
                "said to libffi that the structure type %s is opaque" %
                (self, ))
        names_and_fields(self, value, self.__bases__[0],
                         self.__dict__.get('_anonymous_', None))
        _CDataMeta.__setattr__(self, '_fields_', value)
        return
    _CDataMeta.__setattr__(self, name, value)
Пример #8
0
 def __setattr__(self, name, value):
     if name == '_fields_':
         if self.__dict__.get('_fields_', None):
             raise AttributeError("_fields_ is final")
         if self in [v for k, v in value]:
             raise AttributeError("Union cannot contain itself")
         self._names, rawfields, self._fieldtypes = names_and_fields(
             value, self.__bases__[0], True,
             self.__dict__.get('_anonymous_', None))
         self._ffiarrays = {}
         for name, field in self._fieldtypes.iteritems():
             self._ffiarrays[name] = _rawffi.Array(field.ctype._ffishape)
         _CDataMeta.__setattr__(self, '_fields_', value)
         self._ffiargshape = self._ffishape = (self._sizeofinstances(),
                                               self._alignmentofinstances())
         return
     _CDataMeta.__setattr__(self, name, value)
Пример #9
0
 def __setattr__(self, name, value):
     if name == '_fields_':
         if self.__dict__.get('_fields_', None):
             raise AttributeError("_fields_ is final")
         if self in [v for k, v in value]:
             raise AttributeError("Union cannot contain itself")
         self._names, rawfields, self._fieldtypes = names_and_fields(
             value, self.__bases__[0], True,
             self.__dict__.get('_anonymous_', None))
         self._ffiarrays = {}
         for name, field in self._fieldtypes.iteritems():
             self._ffiarrays[name] = _rawffi.Array(field.ctype._ffishape)
         _CDataMeta.__setattr__(self, '_fields_', value)
         self._ffiargshape = self._ffishape = (self._sizeofinstances(),
                                               self._alignmentofinstances())
         return
     _CDataMeta.__setattr__(self, name, value)