Commit ea2755cc by Ivan Smirnov

Use a macro for numpy API definitions

parent f7143dc5
...@@ -55,11 +55,13 @@ public: ...@@ -55,11 +55,13 @@ public:
void **api_ptr = (void **) (c ? PyCObject_AsVoidPtr(c.ptr()) : nullptr); void **api_ptr = (void **) (c ? PyCObject_AsVoidPtr(c.ptr()) : nullptr);
#endif #endif
API api; API api;
api.PyArray_Type_ = (decltype(api.PyArray_Type_)) api_ptr[API_PyArray_Type]; #define DECL_NPY_API(Func) api.Func##_ = (decltype(api.Func##_)) api_ptr[API_##Func];
api.PyArray_DescrFromType_ = (decltype(api.PyArray_DescrFromType_)) api_ptr[API_PyArray_DescrFromType]; DECL_NPY_API(PyArray_Type);
api.PyArray_FromAny_ = (decltype(api.PyArray_FromAny_)) api_ptr[API_PyArray_FromAny]; DECL_NPY_API(PyArray_DescrFromType);
api.PyArray_NewCopy_ = (decltype(api.PyArray_NewCopy_)) api_ptr[API_PyArray_NewCopy]; DECL_NPY_API(PyArray_FromAny);
api.PyArray_NewFromDescr_ = (decltype(api.PyArray_NewFromDescr_)) api_ptr[API_PyArray_NewFromDescr]; DECL_NPY_API(PyArray_NewCopy);
DECL_NPY_API(PyArray_NewFromDescr);
#undef DECL_NPY_API
return api; return api;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment