diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py index a7775b50758fd9df7757f87b413c050667c90b32..20a50cea38b7421cbbe205043f28055c9d776944 100644 --- a/force_bdss/core_mco_driver.py +++ b/force_bdss/core_mco_driver.py @@ -35,6 +35,7 @@ class CoreMCODriver(Plugin): def application_started(self): workflow = self.application.workflow if self.application.evaluate: + ds_results = [] for requested_ds in workflow.data_sources: ds_bundle = self._find_data_source_bundle_by_name( requested_ds.name) @@ -42,7 +43,7 @@ class CoreMCODriver(Plugin): ds_model = ds_bundle.create_model(requested_ds.model_data) data_source = ds_bundle.create_data_source( self.application, ds_model) - print(data_source.run()) + ds_results.append(data_source.run()) else: raise Exception("Requested data source {} but don't know " "to find it.".format(requested_ds.name)) diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py b/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py index f01f35554a5d2530935e560d29f6afc8da06c568..93f8783941ff119464cdf3e15c23676c7823d33c 100644 --- a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py +++ b/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py @@ -1,5 +1,7 @@ import csv +import numpy from force_bdss.data_sources.base_data_source import BaseDataSource +from force_bdss.data_sources.data_source_result import DataSourceResult class CSVExtractorDataSource(BaseDataSource): @@ -11,9 +13,11 @@ class CSVExtractorDataSource(BaseDataSource): continue if rowindex == self.model.row: - return { - self.model.cuba_type: row[self.model.column] - } + return DataSourceResult( + originator=self, + value_types = [self.model.cuba_type], + values=numpy.array(row[self.model.column]).reshape(1,1) + ) return None return None diff --git a/force_bdss/data_sources/data_source_result.py b/force_bdss/data_sources/data_source_result.py index 15d3986349bfa40726f3d95ca2667383efc57d1c..29b063eb0d87a434c26bbf5139fa251f033a2e48 100644 --- a/force_bdss/data_sources/data_source_result.py +++ b/force_bdss/data_sources/data_source_result.py @@ -1,4 +1,4 @@ -from traits.api import HasTraits, Array, List, String, Instance +from traits.api import HasTraits, Array, ArrayOrNone, List, String, Instance from .base_data_source import BaseDataSource @@ -12,9 +12,8 @@ class DataSourceResult(HasTraits): quality is the level of accuracy of the (e.g.c omputational) method, as the importance and reliability of that value. It should be an enumeration value such as HIGH, MEDIUM, POOR""" - originator = Instance(BaseDataSource) value_types = List(String) - results = Array(shape=(None, None)) - accuracy = Array(shape=(None, None)) - quality = Array(shape=(None, None)) + values = Array(shape=(None, None)) + accuracy = ArrayOrNone(shape=(None, None)) + quality = ArrayOrNone(shape=(None, None)) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index cfc27054ea4f3f6acf0be5267e8bf9a3809d9881..c332850d863ef40bc16bbf3b40b2b9f1b7fe8345 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -2,3 +2,4 @@ envisage==4.6.0 click==6.7 six==1.10.0 stevedore==1.24.0 +numpy=1.12.0 diff --git a/setup.py b/setup.py index 3666512919b74d4c0e96fd001e4896f74d599b64..ee92923801b09e5ccf799726e3df464af61f7d1a 100644 --- a/setup.py +++ b/setup.py @@ -21,6 +21,7 @@ setup( "envisage >= 4.6.0", "click >= 6.7", "stevedore >= 1.24.0", - "six >= 1.10.0" + "six >= 1.10.0", + "numpy >= 1.12.0", ] )