(cls, shape, dtype=None, buf=None, offset=0, strides=None,
formats=None, names=None, titles=None,
byteorder=None, aligned=False,
mask=nomask, hard_mask=False, fill_value=None, keep_mask=True,
copy=False,
**options)
| 102 | """ |
| 103 | |
| 104 | def __new__(cls, shape, dtype=None, buf=None, offset=0, strides=None, |
| 105 | formats=None, names=None, titles=None, |
| 106 | byteorder=None, aligned=False, |
| 107 | mask=nomask, hard_mask=False, fill_value=None, keep_mask=True, |
| 108 | copy=False, |
| 109 | **options): |
| 110 | |
| 111 | self = recarray.__new__(cls, shape, dtype=dtype, buf=buf, offset=offset, |
| 112 | strides=strides, formats=formats, names=names, |
| 113 | titles=titles, byteorder=byteorder, |
| 114 | aligned=aligned,) |
| 115 | |
| 116 | mdtype = ma.make_mask_descr(self.dtype) |
| 117 | if mask is nomask or not np.size(mask): |
| 118 | if not keep_mask: |
| 119 | self._mask = tuple([False] * len(mdtype)) |
| 120 | else: |
| 121 | mask = np.array(mask, copy=copy) |
| 122 | if mask.shape != self.shape: |
| 123 | (nd, nm) = (self.size, mask.size) |
| 124 | if nm == 1: |
| 125 | mask = np.resize(mask, self.shape) |
| 126 | elif nm == nd: |
| 127 | mask = np.reshape(mask, self.shape) |
| 128 | else: |
| 129 | msg = "Mask and data not compatible: data size is %i, " + \ |
| 130 | "mask size is %i." |
| 131 | raise MAError(msg % (nd, nm)) |
| 132 | if not keep_mask: |
| 133 | self.__setmask__(mask) |
| 134 | self._sharedmask = True |
| 135 | else: |
| 136 | if mask.dtype == mdtype: |
| 137 | _mask = mask |
| 138 | else: |
| 139 | _mask = np.array([tuple([m] * len(mdtype)) for m in mask], |
| 140 | dtype=mdtype) |
| 141 | self._mask = _mask |
| 142 | return self |
| 143 | |
| 144 | def __array_finalize__(self, obj): |
| 145 | # Make sure we have a _fieldmask by default |
no test coverage detected