From 1e980101f7867a6993eb8b0742781141a02b0a6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk>
Date: Wed, 28 Sep 2022 20:46:09 +0100
Subject: [PATCH] refactor(post): isolate merger and picker

---
 src/postprocessor/core/abc.py              | 6 +++++-
 src/postprocessor/core/processor.py        | 4 ++--
 src/postprocessor/core/reshapers/merger.py | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/postprocessor/core/abc.py b/src/postprocessor/core/abc.py
index b4db424c..a299e19f 100644
--- a/src/postprocessor/core/abc.py
+++ b/src/postprocessor/core/abc.py
@@ -30,11 +30,15 @@ def get_process(process, suffix=""):
     Dynamically import a process class from the available process locations.
     Assumes process filename and class name are the same
 
+    Processes return the same shape as their input.
+    MultiSignal either take or return multiple datasets (or both).
+    Reshapers return a different shape for processes: Merger and Picker belong here.
+
     suffix : str
         Name of suffix, generally "" (empty) or "Parameters".
     """
     base_location = "postprocessor.core"
-    possible_locations = ("processes", "multisignal")
+    possible_locations = ("processes", "multisignal", "reshapers")
 
     found = None
     for possible_location in possible_locations:
diff --git a/src/postprocessor/core/processor.py b/src/postprocessor/core/processor.py
index 915139db..a9836c1c 100644
--- a/src/postprocessor/core/processor.py
+++ b/src/postprocessor/core/processor.py
@@ -14,8 +14,8 @@ from postprocessor.core.abc import get_parameters, get_process
 from postprocessor.core.processes.lineageprocess import (
     LineageProcessParameters,
 )
-from postprocessor.core.processes.merger import merger, mergerParameters
-from postprocessor.core.processes.picker import picker, pickerParameters
+from postprocessor.core.reshapers.merger import merger, mergerParameters
+from postprocessor.core.reshapers.picker import picker, pickerParameters
 
 
 class PostProcessorParameters(ParametersABC):
diff --git a/src/postprocessor/core/reshapers/merger.py b/src/postprocessor/core/reshapers/merger.py
index 2f31724e..16d2b598 100644
--- a/src/postprocessor/core/reshapers/merger.py
+++ b/src/postprocessor/core/reshapers/merger.py
@@ -24,7 +24,7 @@ class mergerParameters(ParametersABC):
 
 class merger(PostProcessABC):
     """
-    TODO check why it needs to be run a few times to complete the merging
+    Combines rows of tracklet that are likely to be the same.
     """
 
     def __init__(self, parameters):
-- 
GitLab