The PyMemoryView_GetContiguous errors are all gone - good work!

It didn’t really like my butchering of datetime.cc 
https://github.com/apache/arrow/blob/apache-arrow-1.0.1/cpp/src/arrow/python/datetime.cc#L37

Added:
#include <datetime.h>

And 
PyDateTime_IMPORT



Then changed:
  datetime_api =
      
reinterpret_cast<PyDateTime_CAPI*>(PyCapsule_Import(PyDateTime_CAPSULE_NAME, 
0));

To:

  datetime_api = PyDateTimeAPI; 

They do some PyDateTimeAPI voodoo at 
https://github.com/apache/arrow/blob/apache-arrow-1.0.1/cpp/src/arrow/python/datetime.h#L29
 
<https://github.com/apache/arrow/blob/apache-arrow-1.0.1/cpp/src/arrow/python/datetime.h#L29>
 which might be a culprit as well. 









Gives the following outputs:
/arrow/cpp/src/arrow/python/datetime.h:34: warning: "PyDateTimeAPI" redefined
 #define PyDateTimeAPI ::arrow::py::internal::datetime_api

In file included from /opt/pypy/include/Python.h:144,
                 from /arrow/cpp/src/arrow/python/platform.h:23,
                 from /arrow/cpp/src/arrow/python/pyarrow.h:20,
                 from /arrow/cpp/src/arrow/python/common.h:24,
                 from /arrow/cpp/src/arrow/python/datetime.cc:24:
/opt/pypy/include/pypy_decl.h:1121: note: this is the location of the previous 
definition
 #define PyDateTimeAPI PyPyDateTimeAPI

In file included from /opt/pypy/include/datetime.h:7,
                 from /arrow/cpp/src/arrow/python/datetime.cc:22:
/opt/pypy/include/cpyext_datetime.h:4:5: error: ‘PyTypeObject’ does not name a 
type; did you mean ‘PyType_Check’?
     PyTypeObject *DateType;
     ^~~~~~~~~~~~
     PyType_Check
/opt/pypy/include/cpyext_datetime.h:5:5: error: ‘PyTypeObject’ does not name a 
type; did you mean ‘PyType_Check’?
     PyTypeObject *DateTimeType;
     ^~~~~~~~~~~~
     PyType_Check
/opt/pypy/include/cpyext_datetime.h:6:5: error: ‘PyTypeObject’ does not name a 
type; did you mean ‘PyType_Check’?
     PyTypeObject *TimeType;
     ^~~~~~~~~~~~
     PyType_Check
/opt/pypy/include/cpyext_datetime.h:7:5: error: ‘PyTypeObject’ does not name a 
type; did you mean ‘PyType_Check’?
     PyTypeObject *DeltaType;
     ^~~~~~~~~~~~
     PyType_Check
/opt/pypy/include/cpyext_datetime.h:8:5: error: ‘PyTypeObject’ does not name a 
type; did you mean ‘PyType_Check’?
     PyTypeObject *TZInfoType;
     ^~~~~~~~~~~~
     PyType_Check
/opt/pypy/include/cpyext_datetime.h:11:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *(*Date_FromDate)(int, int, int, PyTypeObject*);
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:12:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int,
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:14:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*);
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:15:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *(*Delta_FromDelta)(int, int, int, int, PyTypeObject*);
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:18:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*);
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:19:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *(*Date_FromTimestamp)(PyObject*, PyObject*);
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:24:5: error: ‘PyObject_HEAD’ does not name 
a type
     PyObject_HEAD
     ^~~~~~~~~~~~~
/opt/pypy/include/cpyext_datetime.h:24:5: note: the macro ‘PyObject_HEAD’ had 
not yet been defined
In file included from /opt/pypy/include/object.h:10,
                 from /opt/pypy/include/Python.h:79,
                 from /arrow/cpp/src/arrow/python/platform.h:23,
                 from /arrow/cpp/src/arrow/python/pyarrow.h:20,
                 from /arrow/cpp/src/arrow/python/common.h:24,
                 from /arrow/cpp/src/arrow/python/datetime.cc:24:
/opt/pypy/include/cpyext_object.h:5: note: it was later defined here
 #define PyObject_HEAD  \

In file included from /opt/pypy/include/datetime.h:7,
                 from /arrow/cpp/src/arrow/python/datetime.cc:22:
/opt/pypy/include/cpyext_datetime.h:35:5: error: ‘PyObject_HEAD’ does not name 
a type
     PyObject_HEAD
     ^~~~~~~~~~~~~
/opt/pypy/include/cpyext_datetime.h:35:5: note: the macro ‘PyObject_HEAD’ had 
not yet been defined
In file included from /opt/pypy/include/object.h:10,
                 from /opt/pypy/include/Python.h:79,
                 from /arrow/cpp/src/arrow/python/platform.h:23,
                 from /arrow/cpp/src/arrow/python/pyarrow.h:20,
                 from /arrow/cpp/src/arrow/python/common.h:24,
                 from /arrow/cpp/src/arrow/python/datetime.cc:24:
/opt/pypy/include/cpyext_object.h:5: note: it was later defined here
 #define PyObject_HEAD  \

In file included from /opt/pypy/include/datetime.h:7,
                 from /arrow/cpp/src/arrow/python/datetime.cc:22:
/opt/pypy/include/cpyext_datetime.h:37:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *tzinfo;
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:42:5: error: ‘PyObject_HEAD’ does not name 
a type
     PyObject_HEAD
     ^~~~~~~~~~~~~
/opt/pypy/include/cpyext_datetime.h:42:5: note: the macro ‘PyObject_HEAD’ had 
not yet been defined
In file included from /opt/pypy/include/object.h:10,
                 from /opt/pypy/include/Python.h:79,
                 from /arrow/cpp/src/arrow/python/platform.h:23,
                 from /arrow/cpp/src/arrow/python/pyarrow.h:20,
                 from /arrow/cpp/src/arrow/python/common.h:24,
                 from /arrow/cpp/src/arrow/python/datetime.cc:24:
/opt/pypy/include/cpyext_object.h:5: note: it was later defined here
 #define PyObject_HEAD  \

In file included from /opt/pypy/include/datetime.h:7,
                 from /arrow/cpp/src/arrow/python/datetime.cc:22:
/opt/pypy/include/cpyext_datetime.h:44:5: error: ‘PyObject’ does not name a 
type; did you mean ‘PyObject_New’?
     PyObject *tzinfo;
     ^~~~~~~~
     PyObject_New
/opt/pypy/include/cpyext_datetime.h:49:5: error: ‘PyObject_HEAD’ does not name 
a type
     PyObject_HEAD
     ^~~~~~~~~~~~~
/opt/pypy/include/cpyext_datetime.h:49:5: note: the macro ‘PyObject_HEAD’ had 
not yet been defined
In file included from /opt/pypy/include/object.h:10,
                 from /opt/pypy/include/Python.h:79,
                 from /arrow/cpp/src/arrow/python/platform.h:23,
                 from /arrow/cpp/src/arrow/python/pyarrow.h:20,
                 from /arrow/cpp/src/arrow/python/common.h:24,
                 from /arrow/cpp/src/arrow/python/datetime.cc:24:
/opt/pypy/include/cpyext_object.h:5: note: it was later defined here
 #define PyObject_HEAD  \

In file included from /opt/pypy/include/datetime.h:7,
                 from /arrow/cpp/src/arrow/python/datetime.cc:22:
/opt/pypy/include/cpyext_datetime.h:54:5: error: ‘PyObject_HEAD’ does not name 
a type
     PyObject_HEAD
     ^~~~~~~~~~~~~
/opt/pypy/include/cpyext_datetime.h:54:5: note: the macro ‘PyObject_HEAD’ had 
not yet been defined
In file included from /opt/pypy/include/object.h:10,
                 from /opt/pypy/include/Python.h:79,
                 from /arrow/cpp/src/arrow/python/platform.h:23,
                 from /arrow/cpp/src/arrow/python/pyarrow.h:20,
                 from /arrow/cpp/src/arrow/python/common.h:24,
                 from /arrow/cpp/src/arrow/python/datetime.cc:24:
/opt/pypy/include/cpyext_object.h:5: note: it was later defined here
 #define PyObject_HEAD  \

In file included from /arrow/cpp/src/arrow/python/datetime.cc:22:
/opt/pypy/include/datetime.h:9:30: error: expected constructor, destructor, or 
type conversion before ‘PyDateTimeAPI’
 PyAPI_DATA(PyDateTime_CAPI*) PyDateTimeAPI;
                              ^~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc:37:1: error: expected ‘)’ before ‘=’ 
token
 PyDateTime_IMPORT
 ^~~~~~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc: In function ‘arrow::Status 
arrow::py::internal::PyTime_from_int(int64_t, arrow::TimeUnit::type, 
PyObject**)’:
/arrow/cpp/src/arrow/python/datetime.cc:237:10: error: ‘struct PyDateTime_CAPI’ 
has no member named ‘Time_FromTime’
   *out = PyTime_FromTime(static_cast<int32_t>(hour), 
static_cast<int32_t>(minute),
          ^~~~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc:237:10: error: ‘struct PyDateTime_CAPI’ 
has no member named ‘TimeType’
   *out = PyTime_FromTime(static_cast<int32_t>(hour), 
static_cast<int32_t>(minute),
          ^~~~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc: In function ‘arrow::Status 
arrow::py::internal::PyDate_from_int(int64_t, arrow::DateUnit, PyObject**)’:
/arrow/cpp/src/arrow/python/datetime.cc:245:10: error: ‘struct PyDateTime_CAPI’ 
has no member named ‘Date_FromDate’
   *out = PyDate_FromDate(static_cast<int32_t>(year), 
static_cast<int32_t>(month),
          ^~~~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc:245:10: error: ‘struct PyDateTime_CAPI’ 
has no member named ‘DateType’
   *out = PyDate_FromDate(static_cast<int32_t>(year), 
static_cast<int32_t>(month),
          ^~~~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc: In function ‘arrow::Status 
arrow::py::internal::PyDateTime_from_int(int64_t, arrow::TimeUnit::type, 
PyObject**)’:
/arrow/cpp/src/arrow/python/datetime.cc:257:10: error: ‘struct PyDateTime_CAPI’ 
has no member named ‘DateTime_FromDateAndTime’
   *out = PyDateTime_FromDateAndTime(
          ^~~~~~~~~~~~~~~~~~~~~~~~~~
/arrow/cpp/src/arrow/python/datetime.cc:257:10: error: ‘struct PyDateTime_CAPI’ 
has no member named ‘DateTimeType’
   *out = PyDateTime_FromDateAndTime(
          ^~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** 
[src/arrow/python/CMakeFiles/arrow_python_objlib.dir/build.make:121: 
src/arrow/python/CMakeFiles/arrow_python_objlib.dir/datetime.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1628: 
src/arrow/python/CMakeFiles/arrow_python_objlib.dir/all] Error



> On 10 Sep 2020, at 13:30, Niklas B <niklas.biv...@enplore.com> wrote:
> 
> That’s what I figured, cool, I will try it!
> 
>> On 10 Sep 2020, at 13:28, Matti Picus <matti.pi...@gmail.com 
>> <mailto:matti.pi...@gmail.com>> wrote:
>> 
>> 
> 

_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to