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> wrote: > > Have you tried the documented interface > 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 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 >> (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 >> https://mail.python.org/mailman/listinfo/pypy-dev > _______________________________________________ > pypy-dev mailing list > pypy-dev@python.org > https://mail.python.org/mailman/listinfo/pypy-dev
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev