-
-
Notifications
You must be signed in to change notification settings - Fork 19.1k
BUG: upgrade to PyQt6 to fix arm64 docker build #62176
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
Closed
Alvaro-Kothe
wants to merge
33
commits into
pandas-dev:main
from
Alvaro-Kothe:fix/arm64-docker-build
Closed
Changes from 12 commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
119d3cd
fix: use `PyQt6` instead of `PyQt5`
Alvaro-Kothe d25b7bb
chore: use latest pyqt version available on conda repo
Alvaro-Kothe 3f109b6
ci(deps): install PyQt6 with pip
Alvaro-Kothe ccc9b9a
fix: replace pyqt with pyqt6
Alvaro-Kothe 58bd51a
chore: use correct capitalization for PyQt
Alvaro-Kothe 13d75d3
docs(whatsnew): add PyQt6 support to whats new
Alvaro-Kothe 1a7b249
docs(install): keep old pyqt5 minimum version
Alvaro-Kothe ec59ea1
fix: turn generator into tuple for correct error message
Alvaro-Kothe ce99f81
fix: let `getattr` raise `AttributeError` directly
Alvaro-Kothe e40d74c
Merge branch 'main' into fix/arm64-docker-build
Alvaro-Kothe 7b32838
Merge remote-tracking branch 'main' into fix/arm64-docker-build
Alvaro-Kothe 96aae6e
doc: remove extra space between bar and PyQt6
Alvaro-Kothe ada5ef6
Merge remote-tracking branch 'upstream/main' into fix/arm64-docker-build
Alvaro-Kothe 2a7ebf7
docs(install): remove `PyQt4` dependency
Alvaro-Kothe 31b17eb
test(clipboard): parametrize qt tests to use multiple versions
Alvaro-Kothe 13adf24
test: add xfail mark when a qt version isn't available
Alvaro-Kothe 6ab6534
ci: re-add PyQt5 as a CI dependency
Alvaro-Kothe 7f4f993
ci(deps): rename PyQt5 to pyqt
Alvaro-Kothe 1568f0c
test: be more specific about QtWidgets import
Alvaro-Kothe 1fca531
test: fix `ModuleNotFoundError`
Alvaro-Kothe 49734bf
test: match clipboard with PyQt
Alvaro-Kothe d0012e8
fix: fix PyQt5 dependency generator for conda
Alvaro-Kothe dafc4d0
ci: move dependencies and re-add pyqt5 to min_versions
Alvaro-Kothe 01fd3f4
docs(install): make clipboard compatibility more explicit
Alvaro-Kothe 4f5c05c
Merge remote-tracking branch 'upstream/main' into fix/arm64-docker-build
Alvaro-Kothe d009b80
Merge branch 'main' into fix/arm64-docker-build
Alvaro-Kothe a1c98df
test: undo changes in clipboard tests
Alvaro-Kothe d7028dc
chore: use `PyQt5` for minimum instead of `PyQt6`
Alvaro-Kothe 2fb3e83
ci(clipboard): use `PyQt6` instead of `PyQt5` for non minimum tests
Alvaro-Kothe 25db090
fix: remove pyqt5 from dev dependencies in favour of pyqt6
Alvaro-Kothe 2b90647
ci(docker-build): build on arm64
Alvaro-Kothe 72ca4e9
fix: add pyside6 support
Alvaro-Kothe d5df873
docs(clipboard): update note on clipboard dependencies
Alvaro-Kothe File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
You're listing the minimum version as 5.15.9 while changing the minimum-version action to PyQt6. In addition, it seems like PyQt4 should no longer be listed?
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 change just extends the support to
PyQt6
, while keepingPyQt4
andPyQt5
compatibility intact.It still supports
PyQt4
, so I think it should remain, but if you want me to de-list it I will do it.The goal of this change was just to replace the
PyQt5
entry inrequirements-dev.txt
, the changes in the CI dependencies were unintentional, but required to test thePyQt6
changes in CI.Pandas remains compatible with
PyQt4
andPyQt5
. The problem is that it is not being tested in CI anymore. Maybe we can listPyQt4
,PyQt5
andPyQt6
in the CI dependencies and parametrize theqt
clipboard tests to test the differentPyQt
versions?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.
It seems that PyQt4 is not available on conda-forge and I also can't download it from pypi. I will remove it from
install.rst
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.
We have multiple setup actions to support this -
actions-311-minimum_versions.yaml
could test with PyQt5 whereasactions-311.yaml
could test with PyQt6.Uh oh!
There was an error while loading. Please reload this page.
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.
Thanks for the suggestion!
I was avoiding creating a big discrepancy between the CI jobs and ended up installing
qtpy
,PyQt5
andPyQt6
in all environments and parametrized the tests to use each of the Qt bindings. The problem with this approach is that theqapp
fixture frompytest-qt
doesn't handle the clipboard properly when the test is run withPyQt5
, becauseqapp
usesPyQt6
to create the clipboard, and, for some reason, it can't read what's written withPyQt5
.Anyway, the parametrization approach works but creates complexity. The advantage of this is that every CI job tests
PyQt6
andPyQt5
.Splitting the CI is simpler and doesn't complicate the clipboard tests. I will leave it up to you the choice of:
PyQt5
inactions-311-minimum_versions.yaml
and testPyQt6
in the rest.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 do not see the downside of having some CI jobs test PyQt5 and others PyQt6. cc @mroeschke for any thoughts here too.
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've removed the test parametrization and restored the
actions-311-minimum_versions.yaml
file to its original state, where it testsPyQt5
while the other CI jobs testPyQt6
.