diff --git a/cml/domain/data_source.py b/cml/domain/data_source.py index 68cf58a8b02b3bfc7d3c16e3617f588ac5dad30c..08656408f714f599f66f9263d4e2680785995a26 100644 --- a/cml/domain/data_source.py +++ b/cml/domain/data_source.py @@ -63,8 +63,9 @@ class DataSource: def learnblocks(self): for block in self: learnblock = self.__learnblock_identifier.identify(block) - self._flip_source_halde_flags(learnblock.indexes) - yield learnblock + if learnblock: + self._flip_source_halde_flags(learnblock.indexes) + yield learnblock @log_block_processing def __next__(self): @@ -131,6 +132,7 @@ class Preprocessor: return table def _drop_irrelevant_columns(self, table): + # TODO (dmt): Features get dropped and not kept! Fix settings! features_to_be_removed = [table.get_column_name_by_index(i) for i in self.settings.set_features] for column in features_to_be_removed: @@ -181,8 +183,14 @@ class LearnblockIdentifier: already_seen.add(value_pair) kw = {args[0]: value_pair[0], args[1]: value_pair[1]} if args[0] == "Sigma" and args[1] == "Z": - for block in self._get_sigma_zeta_relatives(block, **kw): - yield block + try: + for block in self._get_sigma_zeta_relatives(block, + **kw): + yield block + except ValueError as e: + # TODO (dmt): Provide mechanism for logging errors! + continue + else: yield block.get_values(**kw)