I will try, I tried with the 2020-09-10 (https://buildbot.pypy.org/nightly/py3.6/pypy-c-jit-latest-linux64.tar.bz2 <https://buildbot.pypy.org/nightly/py3.6/pypy-c-jit-latest-linux64.tar.bz2>) but your changes might have not made it into that one. The errors I get is:
https://github.com/apache/arrow/blob/apache-arrow-1.0.1/cpp/src/arrow/python/common.h#L256 <https://github.com/apache/arrow/blob/apache-arrow-1.0.1/cpp/src/arrow/python/common.h#L256> In file included from /arrow/cpp/src/arrow/python/common.cc:18: /arrow/cpp/src/arrow/python/common.h: In member function ‘arrow::Status arrow::py::PyBytesView::FromBinary(PyObject*, const char*)’: /arrow/cpp/src/arrow/python/common.h:256:31: error: ‘PyMemoryView_GetContiguous’ was not declared in this scope PyObject* contig_view = PyMemoryView_GetContiguous(obj, PyBUF_READ, 'C'); ^~~~~~~~~~~~~~~~~~~~~~~~~~ /arrow/cpp/src/arrow/python/common.h:256:31: note: suggested alternative: ‘PyMemoryView_FromMemory’ PyObject* contig_view = PyMemoryView_GetContiguous(obj, PyBUF_READ, 'C'); ^~~~~~~~~~~~~~~~~~~~~~~~~~ PyMemoryView_FromMemory Or I might need to patch something :) Odd thing is that running it on the latest code I don’t get any errors on date time, only on above. That said, it might simply be that the errors are “below” the above errors I did a new branch for latest: https://github.com/bivald/pyarrow-on-pypy3/blob/feature/latest-pypy-latest-pyarrow/Dockerfile > On 10 Sep 2020, at 11:30, Matti Picus <matti.pi...@gmail.com> wrote: > > I implemented the easy part (without allocating and copying non-contiguous > data to a new contiguous buffer) of PyMemoryView_GetContiguous, which will > make it into the upcoming release. You can try it out from tonight's nightlies > Matti > > On 9/9/20 3:08 PM, Niklas B wrote: >> Thank you, I managed to get it built using an older version (instructions >> and whl file for those who are interested is available at >> https://github.com/bivald/pyarrow-on-pypy3 >> <https://github.com/bivald/pyarrow-on-pypy3>) >> >> I have setup a monthly 50USD recurring donation (under “Enplore”) >> >>> On 9 Sep 2020, at 00:06, Matti Picus <matti.pi...@gmail.com >>> <mailto:matti.pi...@gmail.com>> wrote: >>> >>> Have you tried the documented interface >>> https://docs.python.org/3.6/c-api/datetime.html >>> <https://docs.python.org/3.6/c-api/datetime.html> >>> >>> which is to dispense with all that code and use >>> >>> >>> #import <datetime.h> >>> >>> |PyDateTime_IMPORT| >>> >>> >>> which does the right thing on each implementation (CPython - does the >>> PyCapsule_Import; PyPy - calls _PyDateTime_Import() ) >>> >>> >>> A donation to https://opencollective.com/pypy >>> <https://opencollective.com/pypy> is always appreciated. >>> >>> Matti >>> >>> >>> On 9/9/20 12:12 AM, Niklas B wrote: >>>> Hi, >>>> >>>> I’ve been trying to build data science library pyarrow (the arrow library, >>>> for parquet files mainly in my case) for PyPy. I’ve gotten it working for >>>> pypy2 a few years ago, and is now trying for PyPy3. Overall I get it to >>>> build and produce a pyarrow wheel file by following the arrow >>>> instructions. So far so good. I expect a massive part of pyarrow not to >>>> work, but for my case I really only need `pandas.read_parquet`. However I >>>> am stuck trying to figure out how to use the pyppy cpyext for Datetime. >>>> >>>> The code I’m trying to build is: >>>> >>>> https://github.com/apache/arrow/blob/maint-0.15.x/cpp/src/arrow/python/datetime.cc#L37 >>>> >>>> <https://github.com/apache/arrow/blob/maint-0.15.x/cpp/src/arrow/python/datetime.cc#L37> >>>> (older branch, better luck in building it) >>>> >>>> Which is basically: >>>> >>>> PyDateTime_CAPI* datetime_api = nullptr; >>>> >>>> >>>> >>>> void InitDatetime() { >>>> >>>> PyAcquireGIL lock; >>>> >>>> datetime_api = >>>> >>>> >>>> reinterpret_cast<PyDateTime_CAPI*>(PyCapsule_Import(PyDateTime_CAPSULE_NAME, >>>> 0)); >>>> >>>> if (datetime_api == nullptr) { >>>> >>>> Py_FatalError("Could not import datetime C API"); >>>> >>>> } >>>> >>>> } >>>> >>>> >>>> I’ve tried about a million different ways, but I’m way outside my comfort >>>> zone :) I can get it to build by doing: >>>> >>>> datetime_api = PyDateTimeAPI; >>>> >>>> And also: >>>> >>>> datetime_api = >>>> reinterpret_cast<PyDateTime_CAPI*>(PyCapsule_Import("datetime", 0)); >>>> >>>> And: >>>> >>>> datetime_api = >>>> reinterpret_cast<PyDateTime_CAPI*>(PyCapsule_Import("datetime.datetime_CAPI", >>>> 0)); >>>> >>>> But both of these trigger the fatal error in the code after (“could not >>>> import date time C API” or "PyCapsule_Import "datetime" is not valid” or >>>> module 'datetime' has no attribute 'datetime_CAPI') >>>> >>>> I will be posting reproducible builds once I get them working. >>>> >>>> I am more than happy to pay 300USD to anyone (or to PyPy) who can help me >>>> getting this to run: >>>> >>>> Import pandas >>>> d = pandas.read_parquet(‘file.parq’) >>>> >>>> Obviously that’s not enough money to cover things but at least it’s >>>> something :) obviously all results and builds will be public >>>> >>>> Regards, >>>> Niklas >>>> >>>> _______________________________________________ >>>> pypy-dev mailing list >>>> pypy-dev@python.org <mailto:pypy-dev@python.org> >>>> https://mail.python.org/mailman/listinfo/pypy-dev >>>> <https://mail.python.org/mailman/listinfo/pypy-dev> >>> _______________________________________________ >>> pypy-dev mailing list >>> pypy-dev@python.org <mailto:pypy-dev@python.org> >>> https://mail.python.org/mailman/listinfo/pypy-dev >>> <https://mail.python.org/mailman/listinfo/pypy-dev>
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev