23 #ifndef PYTHONDATAOBJECT 24 #define PYTHONDATAOBJECT 29 #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION 32 #define PY_ARRAY_UNIQUE_SYMBOL itom_ARRAY_API //see numpy help ::array api :: Miscellaneous :: Importing the api (this line must before including global.h) 33 #define NO_IMPORT_ARRAY 38 #if (defined _DEBUG) && (defined WIN32) 40 #if (defined linux) | (defined CMAKE) 42 #include "numpy/arrayobject.h" 43 #elif (defined __APPLE__) | (defined CMAKE) 45 #include "numpy/arrayobject.h" 48 #include "../Lib/site-packages/numpy/core/include/numpy/arrayobject.h" 54 #include "numpy/arrayobject.h" 55 #elif (defined __APPLE__) 57 #include "numpy/arrayobject.h" 60 #include "../Lib/site-packages/numpy/core/include/numpy/arrayobject.h" 65 #include "../../DataObject/dataobj.h" 91 #define PyDataObject_Check(op) PyObject_TypeCheck(op, &PythonDataObject::PyDataObjectType) 93 static inline void PyDataObject_SetBase(
PyDataObject *op, PyObject *base )
95 PyObject* x = op->base;
106 static PyObject *PyDataObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
107 static int PyDataObject_init(
PyDataObject *
self, PyObject *args, PyObject *kwds);
118 static PyObject* PyDataObject_conjugate(
PyDataObject *
self);
120 static PyObject* PyDataObject_adjugate(
PyDataObject *
self);
121 static PyObject* PyDataObject_trans(
PyDataObject *
self);
122 static PyObject* PyDataObject_copy(
PyDataObject *
self, PyObject* args);
123 static PyObject* PyDataObject_astype(
PyDataObject *
self, PyObject* args, PyObject* kwds);
124 static PyObject* PyDataObject_normalize(
PyDataObject *
self, PyObject* args, PyObject* kwds);
125 static PyObject* PyDataObject_size(
PyDataObject *
self, PyObject* args);
126 static PyObject* PyDataObject_makeContinuous(
PyDataObject *
self);
127 static PyObject* PyDataObject_locateROI(
PyDataObject *
self);
128 static PyObject* PyDataObject_adjustROI(
PyDataObject *
self, PyObject* args);
129 static PyObject* PyDataObject_squeeze(
PyDataObject *
self, PyObject* args);
131 static PyObject* PyDataObject_mul(
PyDataObject *
self, PyObject *args);
132 static PyObject* PyDataObject_div(
PyDataObject *
self, PyObject *args);
134 static PyObject* PyDataObject_reshape(
PyDataObject *
self, PyObject *args);
136 static PyObject* PyDataObject_createMask(
PyDataObject *
self, PyObject *args, PyObject* kwds);
139 static PyObject* PyDataObj_SetAxisOffset(
PyDataObject *
self, PyObject *args);
140 static PyObject* PyDataObj_SetAxisScale(
PyDataObject *
self, PyObject *args);
141 static PyObject* PyDataObj_SetAxisDescription(
PyDataObject *
self, PyObject *args);
142 static PyObject* PyDataObj_SetAxisUnit(
PyDataObject *
self, PyObject *args);
143 static PyObject* PyDataObj_PhysToPix(
PyDataObject *
self, PyObject *args, PyObject *kwds);
144 static PyObject* PyDataObj_PixToPhys(
PyDataObject *
self, PyObject *args, PyObject *kwds);
145 static PyObject* PyDataObj_CopyMetaInfo(
PyDataObject *
self, PyObject *args, PyObject *kwds);
147 static PyObject* PyDataObj_SetTag(
PyDataObject *
self, PyObject *args);
148 static PyObject* PyDataObj_DeleteTag(
PyDataObject *
self, PyObject *args);
149 static PyObject* PyDataObj_TagExists(
PyDataObject *
self, PyObject *args);
150 static PyObject* PyDataObj_GetTagListSize(
PyDataObject *
self);
151 static PyObject* PyDataObj_AddToProtocol(
PyDataObject *
self, PyObject *args);
155 static PyObject* PyDataObject_RichCompare(
PyDataObject *
self, PyObject *other,
int cmp_op);
157 static PyGetSetDef PyDataObject_getseters[];
158 static PyObject* PyDataObj_GetDims(
PyDataObject *
self,
void *closure);
159 static PyObject* PyDataObj_GetType(
PyDataObject *
self,
void *closure);
160 static PyObject* PyDataObj_GetShape(
PyDataObject *
self,
void *closure);
161 static PyObject* PyDataObj_GetContinuous(
PyDataObject *
self,
void *closure);
163 static PyObject* PyDataObject_getTagDict(
PyDataObject *
self,
void *clousure);
165 static PyObject* PyDataObject_getTags(
PyDataObject *
self,
void *closure);
166 static int PyDataObject_setTags(
PyDataObject *
self, PyObject *value,
void *closure);
167 static PyObject* PyDataObject_getAxisScales(
PyDataObject *
self,
void *closure);
168 static int PyDataObject_setAxisScales(
PyDataObject *
self, PyObject *value,
void *closure);
169 static PyObject* PyDataObject_getAxisOffsets(
PyDataObject *
self,
void *closure);
170 static int PyDataObject_setAxisOffsets(
PyDataObject *
self, PyObject *value,
void *closure);
171 static PyObject* PyDataObject_getAxisDescriptions(
PyDataObject *
self,
void *closure);
172 static int PyDataObject_setAxisDescriptions(
PyDataObject *
self, PyObject *value,
void *closure);
173 static PyObject* PyDataObject_getAxisUnits(
PyDataObject *
self,
void *closure);
174 static int PyDataObject_setAxisUnits(
PyDataObject *
self, PyObject *value,
void *closure);
175 static PyObject* PyDataObject_getValueUnit(
PyDataObject *
self,
void *closure);
176 static int PyDataObject_setValueUnit(
PyDataObject *
self, PyObject *value,
void *closure);
177 static PyObject* PyDataObject_getValueDescription(
PyDataObject *
self,
void *closure);
178 static int PyDataObject_setValueDescription(
PyDataObject *
self, PyObject *value,
void *closure);
179 static PyObject* PyDataObject_getValueScale(
PyDataObject *
self,
void *closure);
180 static PyObject* PyDataObject_getValueOffset(
PyDataObject *
self,
void *closure);
182 static int PyDataObject_setXYRotationalMatrix(
PyDataObject *
self, PyObject *value,
void *closure);
183 static PyObject* PyDataObject_getXYRotationalMatrix(
PyDataObject *
self,
void *closure);
185 static PyObject* PyDataObject_getValue(
PyDataObject *
self,
void *closure);
186 static int PyDataObject_setValue(
PyDataObject *
self, PyObject *value,
void *closure);
188 static PyObject* PyDataObj_Array_StructGet(
PyDataObject *
self);
189 static PyObject* PyDataObj_Array_Interface(
PyDataObject *
self);
190 static PyObject* PyDataObj_Array_(
PyDataObject *
self, PyObject *args);
197 static PyObject* PyDataObj_ToGray(
PyDataObject *
self, PyObject *args, PyObject *kwds);
198 static PyObject* PyDataObj_ToNumpyColor(
PyDataObject *
self, PyObject *args, PyObject *kwds);
199 static PyObject* PyDataObj_SplitColor(
PyDataObject *
self, PyObject *args, PyObject *kwds);
202 static PyObject* PyDataObj_At(
ito::DataObject *dataObj,
unsigned int *idx);
203 static PyObject* PyDataObj_At(
ito::DataObject *dataObj,
int continuousIdx);
204 static PyObject* PyDataObj_ToListRecursive(
ito::DataObject *dataObj,
unsigned int *currentIdx,
int iterationIndex);
207 static void PyDataObj_Capsule_Destructor(PyObject* capsule);
209 static PyObject* PyDataObj_Reduce(
PyDataObject *
self, PyObject *args);
210 static PyObject* PyDataObj_SetState(
PyDataObject *
self, PyObject *args);
220 static PyObject* PyDataObj_nbAdd(PyObject* o1, PyObject* o2);
221 static PyObject* PyDataObj_nbSubtract(PyObject* o1, PyObject* o2);
222 static PyObject* PyDataObj_nbMultiply(PyObject* o1, PyObject* o2);
223 static PyObject* PyDataObj_nbDivide(PyObject* o1, PyObject* o2);
224 static PyObject* PyDataObj_nbRemainder(PyObject* o1, PyObject* o2);
225 static PyObject* PyDataObj_nbDivmod(PyObject* o1, PyObject* o2);
226 static PyObject* PyDataObj_nbPower(PyObject* o1, PyObject* o2, PyObject* o3);
227 static PyObject* PyDataObj_nbNegative(PyObject* o1);
228 static PyObject* PyDataObj_nbPositive(PyObject* o1);
229 static PyObject* PyDataObj_nbAbsolute(PyObject* o1);
230 static PyObject* PyDataObj_nbInvert(PyObject* o1);
231 static PyObject* PyDataObj_nbLshift(PyObject* o1, PyObject* o2);
232 static PyObject* PyDataObj_nbRshift(PyObject* o1, PyObject* o2);
233 static PyObject* PyDataObj_nbAnd(PyObject* o1, PyObject* o2);
234 static PyObject* PyDataObj_nbXor(PyObject* o1, PyObject* o2);
235 static PyObject* PyDataObj_nbOr(PyObject* o1, PyObject* o2);
237 static PyObject* PyDataObj_nbInplaceAdd(PyObject* o1, PyObject* o2);
238 static PyObject* PyDataObj_nbInplaceSubtract(PyObject* o1, PyObject* o2);
239 static PyObject* PyDataObj_nbInplaceMultiply(PyObject* o1, PyObject* o2);
240 static PyObject* PyDataObj_nbInplaceRemainder(PyObject* o1, PyObject* o2);
241 static PyObject* PyDataObj_nbInplacePower(PyObject* o1, PyObject* o2, PyObject* o3);
242 static PyObject* PyDataObj_nbInplaceLshift(PyObject* o1, PyObject* o2);
243 static PyObject* PyDataObj_nbInplaceRshift(PyObject* o1, PyObject* o2);
244 static PyObject* PyDataObj_nbInplaceAnd(PyObject* o1, PyObject* o2);
245 static PyObject* PyDataObj_nbInplaceXor(PyObject* o1, PyObject* o2);
246 static PyObject* PyDataObj_nbInplaceOr(PyObject* o1, PyObject* o2);
247 static PyObject* PyDataObj_nbInplaceTrueDivide(PyObject* o1, PyObject* o2);
258 static PyObject* PyDataObj_mappingGetElem(
PyDataObject*
self, PyObject* key);
259 static int PyDataObj_mappingSetElem(
PyDataObject*
self, PyObject* key, PyObject* value);
264 static PyMemberDef PyDataObject_members[];
265 static PyMethodDef PyDataObject_methods[];
266 static PyTypeObject PyDataObjectType;
267 static PyModuleDef PyDataObjectModule;
269 static PyNumberMethods PyDataObject_numberProtocol;
270 static PyMappingMethods PyDataObject_mappingProtocol;
275 static RetVal PyDataObj_ParseCreateArgs(PyObject *args, PyObject *kwds,
int &typeno, std::vector<unsigned int> &dims,
unsigned char &continuous);
278 static int typeNameToNumber(
const char *name);
279 static char* typeNumberToName(
int typeno);
282 static PyObject* createPyDataObjectFromArray(PyObject *npArray);
284 static bool checkPyDataObject(
int number, PyObject* o1 = NULL, PyObject* o2 = NULL, PyObject* o3 = NULL);
286 static RetVal parseTypeNumber(
int typeno,
char &typekind,
int &itemsize);
287 static int parseTypeNumberInverse(
char typekind,
int itemsize);
288 static int getTypenumOfCompatibleType(
char typekind,
int itemsize);
294 static PyObject* PyDataObj_StaticZeros(PyObject *
self, PyObject *args, PyObject *kwds);
295 static PyObject* PyDataObj_StaticOnes(PyObject *
self, PyObject *args, PyObject *kwds);
296 static PyObject* PyDataObj_StaticRand(PyObject *
self, PyObject *args, PyObject *kwds);
297 static PyObject* PyDataObj_StaticRandN(PyObject *
self, PyObject *args, PyObject *kwds);
298 static PyObject* PyDataObj_StaticEye(PyObject *
self, PyObject *args, PyObject *kwds);
299 static PyObject* PyDataObj_StaticFromNumpyColor(PyObject *
self, PyObject *args, PyObject *kwds);
300 static PyObject* PyDataObj_dstack(PyObject *
self, PyObject *args);
322 static PyObject *PyDataObjectIter_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
323 static int PyDataObjectIter_init(
PyDataObjectIter *
self, PyObject *args, PyObject *kwds);
331 static PyMethodDef PyDataObjectIter_methods[];
332 static PyTypeObject PyDataObjectIterType;
Definition: pythonDataObject.h:76
dataObject contains a n-dimensional matrix
Definition: dataobj.h:496
Class for managing status values (like errors or warning)
Definition: retVal.h:54
Definition: apiFunctionsGraph.cpp:39
Definition: pythonDataObject.h:84
Definition: pythonDataObject.h:70
constant iterator through data object
Definition: dataobj.h:361
Definition: pythonDataObject.h:307