-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Python 3.12 #315
Conversation
ad8f9c2
to
e03c397
Compare
Likely relevant here: https://gregoryszorc.com/blog/2023/10/30/my-user-experience-porting-off-setup.py/ (Having issues with It seems like |
Any luck with supporting python 3.12? |
@dhermes We would be very interested to get Python 3.12 support for I install locally with both Python 3.11 and 3.12, and compared unit test results. Both failed with the same few errors in |
@pd-nisse I have been quite busy recently but expect to have some free time soon to get this resolved. Thanks for the ping! Luckily #315 (comment) seems to unlock the headscratching issue here. As for failing functional tests, there may be accuracy issues (e.g. tests may need more wiggle room) for newer versions of NumPy. (A lot of code is dependent on the underlying C/C++/Fortran code AS WELL AS the compiler AS WELL AS the flags used to create redistributable binary wheels.) I'll be sure to look into it when I get this PR working! |
@dhermes thanks for the news and great update! [edit:] I just realize we can just pin the dependency to an older version for python 3.9 so we should be good. |
1d684dc
to
b0ca99c
Compare
`distutils` is deprecated / removed.
b0ca99c
to
117a16d
Compare
import os | ||
import pathlib | ||
import re | ||
import subprocess | ||
|
||
import setuptools._distutils.ccompiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relying on setuptools._distutils
isn't my favorite, but figuring out the "right way" to do this isn't worth the time right now (and I don't have the time for it unfortunately).
@@ -1,5 +1,6 @@ | |||
# NumPy is required for building `bezier` from source. | |||
numpy >= 2.0.0 | |||
setuptools >= 70.0.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is for doctest
and may be able to be done more close to doctests in noxfile.py
@@ -0,0 +1,3 @@ | |||
[build-system] | |||
requires = ["numpy>=1.25.2", "setuptools>=70.0.0", "wheel>=0.43.0"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pd-nisse My policy has been to support the 3 most recent Python versions. I unfortunately don't have much free time for maintaining this these days. (Separate but relevant, the Python packaging story around binary packages has had a lot of churn the last few years so things can be hard to keep up with.) I'm happy to consider adding back 3.9 support if I hear enough requests from users, but
For related policies, see SPEC 0 — Minimum Supported Dependencies:
See Status of Python versions doc for release dates:
|
@pd-nisse Got all tests green is this PR, but made sure to upgrade to NumPy 2.0 first (via #319 + #320) I'll be fixing up |
@pd-nisse https://pypi.org/project/bezier/2024.6.20/ is released and supports 3.12 |
Awesome, thanks for the quick turnaround @dhermes 🙇 |
@dhermes I tested it with our project, but ran into issue because it now requires |
@pd-nisse Have you tried installing with Given the usage of Cython-ized binary extension ( |
Hello @pd-nisse,
Can you share a list of those packages? |
Hey there, quick update: I was able to resolve it on my side. I tested our own package with |
Cheers @pd-nisse! Onward and upward to newer and bigger things! |
Also remove support for Python 3.9