-
Notifications
You must be signed in to change notification settings - Fork 238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Remove the use of meta classes in the ProcessBlock class hierarchy #1404
Closed
Conversation
This file contains 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
jsiirola
requested review from
andrewlee94,
dallan-keylogic and
lbianchi-lbl
as code owners
May 3, 2024 21:38
jsiirola
changed the title
Remove the use of meta classes in the ProcessBlock class hierarchy
[WIP] Remove the use of meta classes in the ProcessBlock class hierarchy
May 5, 2024
lbianchi-lbl
reviewed
May 7, 2024
# the arguments, we need to map this to either the | ||
# ScalarProcessBlock aor IndexedProcessBlock subclass. | ||
if not args or (args[0] is UnindexedComponent_set and len(args) == 1): | ||
return super().__new__(cls._scalar_process_block, *args, **kwargs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested change
return super().__new__(cls._scalar_process_block, *args, **kwargs) | |
# pylint: disable-next=no-member | |
return super().__new__(cls._scalar_process_block, *args, **kwargs) |
lbianchi-lbl
reviewed
May 7, 2024
if not args or (args[0] is UnindexedComponent_set and len(args) == 1): | ||
return super().__new__(cls._scalar_process_block, *args, **kwargs) | ||
else: | ||
return super().__new__(cls._indexed_process_block, *args, **kwargs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested change
return super().__new__(cls._indexed_process_block, *args, **kwargs) | |
# pylint: disable-next=no-member | |
return super().__new__(cls._indexed_process_block, *args, **kwargs) |
Closing this as low priority for now. |
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.
Fixes
Summary/Motivation:
The use of a metaclass for defining process blocks was both confusing and caused unintentional errors (conflicting metaclass definitions that faught with the
RenamedClass
backwards compatibility wrappers. This PR reworks the magic for declaring process block classes to:Changes proposed in this PR:
Legal Acknowledgement
By contributing to this software project, I agree to the following terms and conditions for my contribution: