The following changes I think will make the code layout more intuitive:
[ ] Move the contents of elm/preproc to within elm/sample_util
[ ] Get rid of elm/preproc as a subpackage in setup.py, elsewhere if needed
[ ] Move most or all of the contents of elm/pipeline/sample_pipeline.py to elm/sample_util/sample_pipeline.py (a new file)
[ ] Search and replace for changes required by above items, ensuring to check for functions that are not directly imported by provided as callable strings like "elm.pipeline.sample_pipe:some_func"
The following changes I think will make the code layout more intuitive:
elm/preproc
to withinelm/sample_util
elm/preproc
as a subpackage in setup.py, elsewhere if neededelm/pipeline/sample_pipeline.py
toelm/sample_util/sample_pipeline.py
(a new file)"elm.pipeline.sample_pipe:some_func"