-
Notifications
You must be signed in to change notification settings - Fork 319
Add Python 3.14 support #1622
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 Python 3.14 support #1622
Conversation
| # --- Create constraints file --- | ||
| CONSTRAINTS_FILE="constraints.txt" | ||
| if [[ "${{ matrix.python-version }}" == "3.14" ]]; then | ||
| echo "numpy>=2.3.3" > "$CONSTRAINTS_FILE" | ||
| echo "Added numpy>=2.3.3 to $CONSTRAINTS_FILE" | ||
| else | ||
| : > "$CONSTRAINTS_FILE" # create empty file | ||
| echo "Created empty $CONSTRAINTS_FILE" | ||
| fi | ||
| # --- Install dependencies respecting constraints --- | ||
| pip install --upgrade . -r test/requirements.txt -c "$CONSTRAINTS_FILE" |
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.
Why adding numpy>=2.3.3 there?
Why is it needed to introduce a constraints.txt file?
Wouldn't adding numpy>=2.3.3 to test/requirements.txt be enough?
Maybe that's worth an explanatory comment 🙂
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.
I fought pip for a day and couldn't find another solution... It was installing 2.3.3 and then downgrading back to numpy 2.2.6. I believe the problem is a dependency downstream from camelot-py.
I added the constraints file on python 3.14 builds only and skipped the camelot table extraction test on 3.14.
When camelot publish a Python 3.14 compatible build we should be OK to remove this.
I'll add comments to have it documented.
|
@Lucas-C This change alters the output of zlib.compress, which means that our PDF file comparisons no longer match byte-for-byte between platforms. To mitigate this problem for now I:
I believe this deserves more thought and a long term solution, but I'm planning on a new release in the next few weeks and I'd like to have 3.14 wheels published. |
Alright. So far we did not bother running tests with Just some humble questioning, I approved the PR and I'm fine if you decide to merge it with those additions 🙂 |
Co-authored-by: Lucas Cimon <[email protected]>
Co-authored-by: Lucas Cimon <[email protected]>
Add Python 3.14 support
Checklist:
A unit test is covering the code added / modified by this PR
In case of a new feature, docstrings have been added, with also some documentation in the
docs/folderA mention of the change is present in
CHANGELOG.mdThis PR is ready to be merged
By submitting this pull request, I confirm that my contribution is made under the terms of the GNU LGPL 3.0 license.