24 bit support#406
Merged
christiansandberg merged 2 commits intocanopen-python:masterfrom Dec 4, 2023
Merged
Conversation
Contributor
Author
|
result from the test run: |
|
|
||
| class Unsigned24(struct.Struct): | ||
| def __init__(self, *args, **kwargs): | ||
| super().__init__("<L", *args, **kwargs) |
Member
There was a problem hiding this comment.
I'm suspecting the Struct class uses some clever logic with new instead of init. Maybe you can use composition instead of inheritance in this case?
Contributor
Author
There was a problem hiding this comment.
thanks for the hint. I'll have another look at it. I used Python 3.10. There the tests succeeded...
Contributor
Author
There was a problem hiding this comment.
ok, apparently they changed something between py 3.10 and 3.12, where they enforce that the derived class has the same signature as the base class. I've changed to the composition approach now, as you suggested. The tests succeed now for 3.10 and 3.12. At least locally...
Unsigned24 was inspired by canopen-python@659899d, but kept a little simpler. I also added the signed version. Signed-off-by: Greter Raffael <raffael.greter@hotmail.com>
Signed-off-by: Greter Raffael <raffael.greter@hotmail.com>
02b0712 to
5c22932
Compare
This was referenced May 19, 2024
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.
The unsigned24 part was already added in #267. I took the idea from there, but made it a little simpler. Also I added the signed version and extended the unit tests.