[codex] Update Python support to 3.14#69
Open
mtinning wants to merge 3 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates PyQtToolkit’s tooling and runtime/test code to target Python 3.14, including CI/tox environment updates, packaging metadata, and a replacement for the licensify dependency.
Changes:
- Bumps supported Python version metadata/tooling to Python 3.14 (setup.py, tox, CircleCI,
.python-version). - Replaces
licensifywith an in-repo license header checker script and updates tox to call it. - Adjusts runtime/test behavior for newer Python/Qt/pytest-qt behavior (Versioneer config parsing, ScriptRunner exec namespace, TaskRunner lifecycle).
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| versioneer.py | Updates config parsing API usage for newer Python configparser. |
| tox.ini | Switches tox env to py314 and replaces licensify with an in-repo license header check. |
| tests/services/test_task_runner.py | Avoids creating duplicate QApplication instances and ensures TaskRunner threads are joined in teardown. |
| setup.py | Updates python_requires and test/publish extras to align with Python 3.14 + packaging needs. |
| scripts/check_license_headers.py | Adds a lightweight license-header validation script to replace licensify. |
| pyqttoolkit/services/task_runner.py | Adds an explicit executor shutdown hook for test/short-lived app teardown. |
| pyqttoolkit/scripting/script_runner.py | Uses a unified exec namespace to support mutual recursion among script-defined functions. |
| .python-version | Pins local Python version to 3.14.6. |
| .gitignore | Ensures .python-version is not ignored despite broad dotfile ignore. |
| .circleci/config.yml | Updates CircleCI images and tox env invocation to Python 3.14.6 / py314. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
7
to
+9
| commands= | ||
| ; pytest tests --cov pyqttoolkit --ignore tests/services/test_task_runner.py | ||
| licensify LICENSE_SHORT --directory pyqttoolkit --files *.py --exclude _version.py --check | ||
| python scripts/check_license_headers.py |
Comment on lines
+75
to
79
| # Use one namespace so functions defined by the script can | ||
| # resolve each other recursively through their globals. | ||
| namespace = self._globals(context) | ||
| namespace.update(context.locals) | ||
| #pylint: disable=exec-used |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Updates PyQtToolkit to target Python 3.14, including a
.python-versionpin for Python 3.14.6, packaging metadata, tox, and CircleCI images.Details
python_requiresto>=3.14.licensifytest dependency with an in-repo license header checker becauselicensifyno longer builds on Python 3.14.Validation
QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests.venv/bin/tox -e py314