Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: meas_base
-
Labels:None
-
Story Points:1
-
Epic Link:
-
Sprint:Science Pipelines DM-W15-4
-
Team:Data Release Production
Description
We originally put the executionOrder parameter (which determines when a plugin is run, relative to others), in the config object, simply because that's where it was in the old framework. But it's really not something that should be configurable, as it depends only on the inputs the algorithm needs, which don't change.
Your guess on the use of staticmethod() in wrappers.py was exactly right - it's how to use those "@" decorators in dynamically-created classes.
In fact, that's all Python's "@" syntax does: @staticmethod followed by a function calls staticmethod() with the original function as an argument, and then uses what staticmethod() returns instead of the original function. Here's a more complete tutorial on that: http://thecodeship.com/patterns/guide-to-python-function-decorators/.
And I'll add your suggested comment on execution order; the question of whether we need a more sophisticated system does keep coming up (and I still don't think we need one).