From 2d8dd68b4f667b0211a0efb180c970918ded2d44 Mon Sep 17 00:00:00 2001
From: dmt <>
Date: Thu, 24 Oct 2019 21:38:16 +0200
Subject: [PATCH] Create deconstruction request/usecase and execute it.

---
 cml/controller/api.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/cml/controller/api.py b/cml/controller/api.py
index 6fcd5a3..ac9ced7 100644
--- a/cml/controller/api.py
+++ b/cml/controller/api.py
@@ -3,12 +3,13 @@
 """
 from os.path import join, expanduser
 
-from cml.usecases.query import (
+from cml.usecases.query import KnowledgeSearchUsecase
+from usecases.command import (
     PreprocessUsecase,
-    KnowledgeSearchUsecase,
-    CreateConstructorUsecase,
     FeatureSelectionUsecase,
-    ReconstructionUsecase
+    ReconstructionUsecase,
+    CreateConstructorUsecase,
+    DeconstructionUsecase
 )
 from cml.ports.source_adapters import PandasAdapter
 from cml.ports.ml_adapter import (
@@ -23,7 +24,8 @@ from cml.shared.request import (
     KnowledgeSearchRequest,
     CreateConstructorRequest,
     FeatureSelectionRequest,
-    ReconstructionRequest
+    ReconstructionRequest,
+    DeconstructionRequest
 )
 from cml.ports.ml_adapter import (
     KernelDensityEstimator,
@@ -141,11 +143,15 @@ def reconstruction(reconstruction_type, *args, **kwargs):
 def search_knowledge(constructor, feature_selector, reconstructor, data_source,
                      stdout=False):
     deconstruction_settings = specific_settings_factory("deconstruction")
+    deconstruction_req = DeconstructionRequest(deconstruction_settings,
+                                               constructor.construction_type)
+    deconstruction_usecase = DeconstructionUsecase()
+    deconstructor = deconstruction_usecase.execute(deconstruction_req)
     knowledge_search_req = KnowledgeSearchRequest(constructor,
                                                   feature_selector,
                                                   reconstructor,
+                                                  deconstructor,
                                                   data_source,
-                                                  deconstruction_settings,
                                                   stdout)
     knowledge_search_usecase = KnowledgeSearchUsecase()
     return knowledge_search_usecase.execute(knowledge_search_req)
-- 
GitLab