seomoz / reppy

Modern robots.txt Parser for Python
MIT License
187 stars 40 forks source link

python 3.7 breakage #93

Closed wumpus closed 6 years ago

wumpus commented 6 years ago

The pypi package doesn't install on Python 3.7 because of changes in the CPython API. I had several other packages that had the same issue, and the fix was to regenerate the .pyx with a modern cython.

reppy/robots.cpp:7835:69: error: too many arguments to function
       return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
b4hand commented 6 years ago

Currently, we're pinned to Cython 0.27.3 for dev dependencies. Is that "modern" enough? I've seen issues where upgrading Cython breaks things in the past, so I'm a little more concerned if I have to bump that version as well.

b4hand commented 6 years ago

FYI, I do see this error when trying to install reppy locally via pip using Python 3.7.0 via pyenv; however, it appears to build just fine when I compile locally, and it doesn't seem to change the generated files, so I'm not sure if I'm missing something.

b4hand commented 6 years ago

I went ahead and added 3.7 to the build matrix in Travis in #94.

wumpus commented 6 years ago

Thanks for the example that works on Travis! Turns out that that my .travis.yml was asking for 3.7-dev which is mapped to 3.7.0a4+ and that fails, but you specified 3.7 and you got 3.7 and that worked.

A while back travisci was not supporting 3.7 because of an SSL problem... the docs still say it https://docs.travis-ci.com/user/languages/python/#Specifying-Python-versions

I just tried it and my run got a 403 downloading the python-3.7.tar.bz file, so I'm thinking they revoked it between your run and mine.

b4hand commented 6 years ago

I believe that #97 will actually work on 3.7.0. I've currently got a live working rc1 version on pypi that worked for me locally. I'll close this out once I get 0.4.10 officially released to pypi.

b4hand commented 6 years ago

New version is available on pypi:

https://pypi.org/project/reppy/0.4.10/