prototype for workflow
I pushed in https://code.ill.fr/scientific-software/nsxtool/commits/refactoring/workflow a prototype for the workflow refactoring. Indeed, while you are still working on the scientific kernel, I think it is important to prepare the future in term of organizing how the different step of the workflow should work together. We agreed that we should have clearly distinct steps which work by transmitting one to the next one object with a limited scope in term of contents. Indeed, in spite of the waves of refactoring, classes such Peak3D
or UnitCell
still contains huge amount of (unrelated) informations. On the other hand, keeping track of each step of the workflow is also something highly desirable from the user point of view. YAML is the perfect candidate for doing this.
Hence:
- splitting the workflow in distinct data structures and algorithm
- serializing the input and ouput of each step of the workflow
- simplifying the API
have been the driving force for this refactoring. Have a look first at TestFindDetectorSpot
and compare with TestPeakFinder
and you will see how drastically the code improved i term of simplicity. Please review carefully this prototype. If you're OK with the concept, the design and the implementation, perfect, I can continue working on this. If not, perfect too, that prototype will throw the basis for discussing about alternative designs.