New IOTA² step definition
Description
One of IOTA² main components are steps. However, steps are not well define. In fact, if a developer has to add new steps it is not easy.
That's why I propose to create the Base class : Step
I already wrote a functional code which run an example of what is possible by creating sub-classes of Steps. A new module is available : Steps which contains Step base class providing new functionalities :
-
Automatically find resources for HPC user
Using step's name and the configuration file dedicated to resources. If no corresponding resources are found, apply default resource (minimum ask-able)
-
3 methods as to be redefine to launch a complete step:
step_execute : This is the
only
method (lambda function) call to run a stepstep_inputs : define parameters to iterate
step_outputs : define how to get step expected outputs
-
A new function is dedicated to collect and remove all temporary files
step_clean is call if a step succeed. This is the place to define the clean-up.
-
Provide a way to connect steps together
step_connect method allow to tell to IOTA² "the input of step B is the output of step B" as in the example
Also, I created a new container class : StepContainer, which contains all unique steps
New methods could be added to Steps
class to improve services and could be discuss in this post. Maybe, it is the time to create a new class : Tile
as suggested here by J.Michel. Then add Tiles as attributes of iota2 class ?