DEV-9254 remove dataclassY#225
Merged
Merged
Conversation
Member
|
Task linked: DEV-9254 Remove dataclassy from Python SDK |
Boris-Filin
requested review from
charlta and
chestm007
and removed request for
chestm007
June 17, 2026 05:04
Boris-Filin
force-pushed
the
DEV-9254-remove-dataclassY
branch
from
June 17, 2026 05:09
f53b427 to
f331425
Compare
chestm007
reviewed
Jun 17, 2026
chestm007
left a comment
Contributor
There was a problem hiding this comment.
I've had a quick look - looks good from what ive got through. Github is a flaming pile of... yeah... and is dying trying to render this PR. theres a few nit pick formatting issues, ie newlines, missing line at EOF, and all not being at the top of the file, all pretty minor, but need to be fixed. I'll pull locally and review on anything that isnt github.
charlta
marked this pull request as draft
June 18, 2026 05:53
Member
|
Converted to draft while formatting fixes are put in place |
Boris-Filin
force-pushed
the
DEV-9254-remove-dataclassY
branch
2 times, most recently
from
June 22, 2026 02:35
3bc224d to
b996101
Compare
Boris-Filin
marked this pull request as ready for review
June 22, 2026 02:42
Contributor
Author
|
Reset to Max's formatting changes. Allegedly inline with all of the required standards |
chestm007
previously requested changes
Jun 24, 2026
Contributor
charlta
marked this pull request as draft
June 24, 2026 23:41
Member
|
Converted to draft until requested changes are fixed |
Boris-Filin
force-pushed
the
DEV-9254-remove-dataclassY
branch
11 times, most recently
from
June 26, 2026 01:41
064460c to
b2f9274
Compare
charlta
requested changes
Jun 29, 2026
Signed-off-by: Boris Filin <boris.filin@zepben.com>
…t Name); Revert Terminal.__repr__ removal Signed-off-by: Boris Filin <boris.filin@zepben.com>
Boris-Filin
force-pushed
the
DEV-9254-remove-dataclassY
branch
from
July 6, 2026 05:20
23527cd to
c52e9ca
Compare
Boris-Filin
commented
Jul 6, 2026
Boris-Filin
commented
Jul 6, 2026
Signed-off-by: Boris Filin <boris.filin@zepben.com>
charlta
marked this pull request as ready for review
July 10, 2026 05:02
Signed-off-by: Boris Filin <boris.filin@zepben.com>
Signed-off-by: Anthony Charlton <anthony.charlton@zepben.com>
Signed-off-by: Anthony Charlton <anthony.charlton@zepben.com>
charlta
approved these changes
Jul 10, 2026
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.

Description
We remove the dataclassy from the SDK, migrating to using the actual Python dataclass decorator. (Note: The library has not been physically removed yet as some of the downstream repos rely on it. But it is no longer used anywhere in the SDK). This is motivated by lack of ongoing support for dataclassy, as well as no-one on the team wanting to deal with its mess of magic code.
DataclassBasewas implemented to manually implement dataclass-like field initialisation.@zb_dataclass- a normal dataclass decorator with some of its defaults changed (egslots=True)Identifiableand are based on themridIdentifiablemetaclass=ABCMeta. This makes zero difference programmatically, but makes it clearer which part of the model you are in.The changes and reasoning are described a lot more verbosely in
src/zepben/ewb/dataclass_descriptors/MANIFESTO.md.Associated tasks
No prerequisites.
Note that the code in this PR heavily anticipates the incoming nullable list change. Specifically, the
BackedDescriptorclass is currently only used in one place, but will be integral soon. Also, custom inits look a bit bulky with*argsand**kwargsforwarding, but they will all be removed soon.Test Steps
Run the test suite with the new tests; Ideally load a real model to make sure no side-effeects slipped through the cracks.
Checklist
If any of these are not applicable, strikethrough the line
~like this~. Do not delete it!. Let the reviewer decide if you should have done it.Code
Security
When developing applications, use following guidelines for information security considerations:
* Access to applications should be protected with security keys/tokens or usernames and passwords;* All sessions are encrypted if possible;* All application input is sanitised before being acted on (ie SQL statements, etc);* Log messages, and especially client-facing ones, must be handled securely and must not leak credentials information (internal URLs, passwords, tokens).Documentation
Breaking Changes
The internals of classes have changed, potentially leading to unknown side-effects (tests all pass). More importantly, You can no longer use positional arguments except for mrid (MyClass("mrid", 42) bad, MyClass("mrid", thing=42) good).