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:
remove the use of metaclasses
declare unique instances of the Scalar and Indexed block classes
ensure the Scalar and Indexed classes are added to the module scope (along with the generic derived Block object)
improve general documentation and code clarity
Changes proposed in this PR:
(see above)
Legal Acknowledgement
By contributing to this software project, I agree to the following terms and conditions for my contribution:
I agree my contributions are submitted under the license terms described in the LICENSE.txt file at the top level of this directory.
I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.
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: