Conversation
The file is no longer shipped in the wheel/sdist. Examples reference it via a path next to the script, and the release workflow attaches it to the GitHub Release as a downloadable asset. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes the asyncio transport-leak ResourceWarnings that surface under Python 3.14 (the GC-based cleanup path no longer fires before the warning). QRTConnection now supports `async with` so the transport is closed deterministically on scope exit; disconnect() is idempotent. Discover does the same for its UDP datagram transport. All seven examples updated to use the new context-manager form. Verified end-to-end against QTM 2026.3 Beta on Python 3.14: - basic, stream_6dof, advanced, control: full pass, no ResourceWarning. - image, calibration, asyncio_everything: fail at QTM-environmental preconditions (camera image mode, live capture for calibration, trigger configuration) but shut down cleanly, no ResourceWarning. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Python floor 3.7 -> 3.10 (per #50) - Release flow now goes through GitHub Actions / Trusted Publishing, pyproject.toml owns the version, setup.py is gone - request_queue is FIFO (popleft) after #48 - Mention QRTConnection's new async-context-manager surface Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Member
Author
|
Closing in favor of a much smaller PR with only the unique pieces (QRTConnection async context manager + Discover UDP transport cleanup + CLAUDE.md) rebased on the new master. #58 already covered example modernization, PYTHON3 removal, release-asset upload, and CI matrix, and review here would be noisy. |
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.
asyncio.get_event_loop()/run_forever()/run_until_complete()toasyncio.run(); removed deprecatedpkg_resources(carried forward from Geoff's work on this branch).PYTHON3import gate inqtm_rt/__init__.py.QRTConnectionis now an async context manager anddisconnect()is idempotent;Discovercloses its UDP datagram transport on iteration end. Eliminates asyncioResourceWarnings under 3.14.Demo.qtmmoved out of the package (qtm_rt/data/Demo.qtm→examples/Demo.qtm); the release workflow attaches it to the GitHub Release as a downloadable asset, README points pip users there.Verified end-to-end against QTM 2026.3 Beta on Python 3.14. All seven examples shut down without
ResourceWarning.basic_example,stream_6dof_example,advanced_example,control_examplework fully; the remaining three fail at QTM-environmental preconditions (camera image-output mode, live capture for calibration, trigger configuration), not SDK issues.Authored-by-Geoff commits preserved in history.