Fix PyNeoDeviceEx equality for distinct serials - #251
Open
drebbe-intrepid wants to merge 1 commit into
Open
drebbe-intrepid wants to merge 1 commit into
drebbe-intrepid wants to merge 1 commit into
Conversation
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.
Devices with identical model and firmware fields but different serial numbers previously compared equal, breaking membership checks and list deduplication. Include SerialNumber in PyNeoDeviceEx equality and return NotImplemented for unrelated types so Python can use reflected comparison.
Fixes #246.
Validation: Windows x64 / CPython 3.14.5, built with uv sync --group test. New regression coverage reproduced 7 failures before the fix; uv run --no-sync pytest tests/ -q passes all 52 tests after synchronizing the Python source into gen. Coverage includes high-bit serials, equal snapshots, all existing compared fields, unrelated objects, and reflected comparison. git diff --check passes. No hardware accessed.
Independent critic /root/critic: "I agree with the final diff. No blocking findings for behavior, error handling, ABI, ownership, or regression coverage." Independently reran all 52 tests. Builder: "I agree with the final diff." Reviewed diff is committed as 1084535 (base 45167e0).