@@ -0,0 +1,4 @@ | |||||
output_0,output_1,output_2 | |||||
1.0,2.0,3.0 | |||||
2.0,3.0,4.0 | |||||
3.0,4.0,5.0 |
@@ -0,0 +1,4 @@ | |||||
output_0,output_1,output_2 | |||||
1.0,2.0,3.0 | |||||
2.0,3.0,4.0 | |||||
3.0,4.0,5.0 |
@@ -0,0 +1,4 @@ | |||||
output_0,output_1,output_2 | |||||
1.0,2.0,3.0 | |||||
2.0,3.0,4.0 | |||||
3.0,4.0,5.0 |
@@ -0,0 +1,4 @@ | |||||
output_0,output_1,output_2 | |||||
1.0,2.0,3.0 | |||||
2.0,3.0,4.0 | |||||
3.0,4.0,5.0 |
@@ -0,0 +1,4 @@ | |||||
output_0,output_1,output_2 | |||||
1.0,2.0,3.0 | |||||
2.0,3.0,4.0 | |||||
3.0,4.0,5.0 |
@@ -0,0 +1,4 @@ | |||||
output_0,output_1,output_2 | |||||
1.0,2.0,3.0 | |||||
2.0,3.0,4.0 | |||||
3.0,4.0,5.0 |
@@ -11,7 +11,7 @@ from d3m.base import primitives | |||||
class CSVReaderPrimitive(primitives.FileReaderPrimitiveBase): | |||||
class CSVReaderPrimitive(primitives.FileReaderPrimitiveBase): # pragma: no cover | |||||
""" | """ | ||||
A primitive which reads columns referencing CSV files. | A primitive which reads columns referencing CSV files. | ||||
@@ -50,7 +50,7 @@ class Hyperparams(hyperparams.Hyperparams): | |||||
# once to the second table, and then just do the join with already joined second table. | # once to the second table, and then just do the join with already joined second table. | ||||
# Not sure how to behave in "recursive == False" case then. | # Not sure how to behave in "recursive == False" case then. | ||||
# TODO: Add a test where main table has a foreign key twice to same table (for example, person 1 and person 2 to table of persons). | # TODO: Add a test where main table has a foreign key twice to same table (for example, person 1 and person 2 to table of persons). | ||||
class DenormalizePrimitive(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hyperparams]): | |||||
class DenormalizePrimitive(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hyperparams]): # pragma: no cover | |||||
""" | """ | ||||
A primitive which converts a Dataset with multiple tabular resources into a Dataset with only one tabular resource, | A primitive which converts a Dataset with multiple tabular resources into a Dataset with only one tabular resource, | ||||
based on known relations between tabular resources. Any resource which can be joined is joined (thus the resource | based on known relations between tabular resources. Any resource which can be joined is joined (thus the resource | ||||
@@ -517,28 +517,28 @@ class DenormalizePrimitive(transformer.TransformerPrimitiveBase[Inputs, Outputs, | |||||
del graph[resource_id] | del graph[resource_id] | ||||
if __name__ == '__main__': | |||||
import logging | |||||
import pprint | |||||
import sys | |||||
# if __name__ == '__main__': | |||||
# import logging | |||||
# import pprint | |||||
# import sys | |||||
logging.basicConfig() | |||||
# logging.basicConfig() | |||||
for dataset_file_path in sys.argv[1:]: | |||||
try: | |||||
dataset = container.Dataset.load('file://{dataset_doc_path}'.format(dataset_doc_path=os.path.abspath(dataset_file_path))) | |||||
except Exception as error: | |||||
raise Exception("Unable to load dataset: {dataset_doc_path}".format(dataset_doc_path=dataset_file_path)) from error | |||||
# for dataset_file_path in sys.argv[1:]: | |||||
# try: | |||||
# dataset = container.Dataset.load('file://{dataset_doc_path}'.format(dataset_doc_path=os.path.abspath(dataset_file_path))) | |||||
# except Exception as error: | |||||
# raise Exception("Unable to load dataset: {dataset_doc_path}".format(dataset_doc_path=dataset_file_path)) from error | |||||
primitive = DenormalizePrimitive(hyperparams=Hyperparams.defaults().replace({ | |||||
'recursive': True, | |||||
'discard_not_joined_tabular_resources': False, | |||||
})) | |||||
# primitive = DenormalizePrimitive(hyperparams=Hyperparams.defaults().replace({ | |||||
# 'recursive': True, | |||||
# 'discard_not_joined_tabular_resources': False, | |||||
# })) | |||||
try: | |||||
denormalized_dataset = primitive.produce(inputs=dataset).value | |||||
# try: | |||||
# denormalized_dataset = primitive.produce(inputs=dataset).value | |||||
pprint.pprint(denormalized_dataset) | |||||
denormalized_dataset.metadata.pretty_print() | |||||
except Exception as error: | |||||
raise Exception("Unable to denormalize dataset: {dataset_doc_path}".format(dataset_doc_path=dataset_file_path)) from error | |||||
# pprint.pprint(denormalized_dataset) | |||||
# denormalized_dataset.metadata.pretty_print() | |||||
# except Exception as error: | |||||
# raise Exception("Unable to denormalize dataset: {dataset_doc_path}".format(dataset_doc_path=dataset_file_path)) from error |
@@ -134,7 +134,7 @@ class ColumnParserPrimitive(transformer.TransformerPrimitiveBase[Inputs, Outputs | |||||
return base.CallResult(outputs) | return base.CallResult(outputs) | ||||
def _can_use_column(self, inputs_metadata: metadata_base.DataMetadata, column_index: int) -> bool: | |||||
def _can_use_column(self, inputs_metadata: metadata_base.DataMetadata, column_index: int) -> bool: # pragma: no cover | |||||
column_metadata = inputs_metadata.query((metadata_base.ALL_ELEMENTS, column_index)) | column_metadata = inputs_metadata.query((metadata_base.ALL_ELEMENTS, column_index)) | ||||
# We produce only on columns which have not yet been parsed (are strings). | # We produce only on columns which have not yet been parsed (are strings). | ||||
@@ -156,7 +156,7 @@ class ColumnParserPrimitive(transformer.TransformerPrimitiveBase[Inputs, Outputs | |||||
return False | return False | ||||
def _produce_columns(self, inputs: Inputs) -> typing.Tuple[typing.List[int], typing.List[Outputs]]: | |||||
def _produce_columns(self, inputs: Inputs) -> typing.Tuple[typing.List[int], typing.List[Outputs]]: # pragma: no cover | |||||
# The logic of parsing values tries to mirror also the logic of detecting | # The logic of parsing values tries to mirror also the logic of detecting | ||||
# values in "SimpleProfilerPrimitive". One should keep them in sync. | # values in "SimpleProfilerPrimitive". One should keep them in sync. | ||||
@@ -6,7 +6,6 @@ import os | |||||
import sklearn | import sklearn | ||||
import numpy | import numpy | ||||
import typing | import typing | ||||
import time | |||||
from d3m import container | from d3m import container | ||||
from d3m.primitive_interfaces import base, transformer | from d3m.primitive_interfaces import base, transformer | ||||
@@ -22,8 +21,6 @@ from d3m.primitive_interfaces.base import CallResult, DockerContainer | |||||
import os.path | import os.path | ||||
import time | |||||
import re | import re | ||||
@@ -31,7 +28,7 @@ Inputs = container.DataFrame | |||||
Outputs = container.DataFrame | Outputs = container.DataFrame | ||||
class Hyperparams(hyperparams.Hyperparams): | |||||
class Hyperparams(hyperparams.Hyperparams): # pragma: no cover | |||||
# Tuning | # Tuning | ||||
rule = hyperparams.Hyperparameter[str]( | rule = hyperparams.Hyperparameter[str]( | ||||
default='', | default='', | ||||
@@ -81,7 +78,7 @@ class Hyperparams(hyperparams.Hyperparams): | |||||
) | ) | ||||
class RuleBasedFilter(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hyperparams]): | |||||
class RuleBasedFilter(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hyperparams]): # pragma: no cover | |||||
""" | """ | ||||
Filter the selected columns according to the rule. | Filter the selected columns according to the rule. | ||||
@@ -143,8 +140,9 @@ class RuleBasedFilter(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hype | |||||
operated_col = [int(x.strip('#')) for x in re.findall(r'#\d*#', self.hyperparams['rule'])] | operated_col = [int(x.strip('#')) for x in re.findall(r'#\d*#', self.hyperparams['rule'])] | ||||
if set(operated_col) != set(self._training_indices): | if set(operated_col) != set(self._training_indices): | ||||
# print(operated_col, self._training_indices) | |||||
raise RuntimeError("Column numbers in 'rule' and 'use_columns' are not matched.") | raise RuntimeError("Column numbers in 'rule' and 'use_columns' are not matched.") | ||||
@@ -186,8 +184,6 @@ class RuleBasedFilter(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hype | |||||
inputs=inputs, column_indices=self._training_indices, | inputs=inputs, column_indices=self._training_indices, | ||||
columns_list=output_columns) | columns_list=output_columns) | ||||
# self._write(outputs) | |||||
# self.logger.warning('produce was called3') | |||||
return CallResult(outputs) | return CallResult(outputs) | ||||
@@ -223,7 +219,6 @@ class RuleBasedFilter(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hype | |||||
# else: | # else: | ||||
use_columns=hyperparams['use_columns'] | use_columns=hyperparams['use_columns'] | ||||
exclude_columns=hyperparams['exclude_columns'] | exclude_columns=hyperparams['exclude_columns'] | ||||
columns_to_produce, columns_not_to_produce = base_utils.get_columns_to_use(inputs_metadata, use_columns=use_columns, exclude_columns=exclude_columns, can_use_column=can_produce_column) | columns_to_produce, columns_not_to_produce = base_utils.get_columns_to_use(inputs_metadata, use_columns=use_columns, exclude_columns=exclude_columns, can_use_column=can_produce_column) | ||||
return inputs.iloc[:, columns_to_produce], columns_to_produce | return inputs.iloc[:, columns_to_produce], columns_to_produce | ||||
@@ -3,7 +3,7 @@ from d3m import container | |||||
from tods.detection_algorithm.Ensemble import EnsemblePrimitive | from tods.detection_algorithm.Ensemble import EnsemblePrimitive | ||||
from ..base import get_default_hyperparameter | from ..base import get_default_hyperparameter | ||||
class EnsembleSKI: | |||||
class EnsembleSKI: # pragma: no cover | |||||
def __init__(self, **hyperparameter): | def __init__(self, **hyperparameter): | ||||
hyperparams = get_default_hyperparameter(EnsemblePrimitive, hyperparameter) | hyperparams = get_default_hyperparameter(EnsemblePrimitive, hyperparameter) | ||||
@@ -9,7 +9,7 @@ from tods.data_processing import DatasetToDataframe | |||||
class CSVReaderPrimitiveTestCase(unittest.TestCase): | class CSVReaderPrimitiveTestCase(unittest.TestCase): | ||||
def _get_yahoo_dataset(self): | |||||
def _get_yahoo_dataset(self): # pragma: no cover | |||||
dataset_doc_path = os.path.abspath(os.path.join(os.path.dirname(__file__),'..', '..', '..', 'datasets', 'anomaly','yahoo_sub_5','TRAIN','dataset_TRAIN', 'datasetDoc.json')) | dataset_doc_path = os.path.abspath(os.path.join(os.path.dirname(__file__),'..', '..', '..', 'datasets', 'anomaly','yahoo_sub_5','TRAIN','dataset_TRAIN', 'datasetDoc.json')) | ||||
dataset = container.Dataset.load('file://{dataset_doc_path}'.format(dataset_doc_path=dataset_doc_path)) | dataset = container.Dataset.load('file://{dataset_doc_path}'.format(dataset_doc_path=dataset_doc_path)) | ||||
@@ -46,7 +46,7 @@ class DenormalizePrimitiveTestCase(unittest.TestCase): | |||||
#self.assertEqual(dataset.metadata.to_internal_json_structure(), dataset_metadata_before) | #self.assertEqual(dataset.metadata.to_internal_json_structure(), dataset_metadata_before) | ||||
def _test_discard_metadata(self, metadata, dataset_doc_path): | |||||
def _test_discard_metadata(self, metadata, dataset_doc_path): # pragma: no cover | |||||
self.maxDiff = None | self.maxDiff = None | ||||
self.assertEqual(test_utils.convert_through_json(metadata.query(())), { | self.assertEqual(test_utils.convert_through_json(metadata.query(())), { | ||||
@@ -197,7 +197,7 @@ class DenormalizePrimitiveTestCase(unittest.TestCase): | |||||
#self.assertEqual(dataset.metadata.to_internal_json_structure(), dataset_metadata_before) | #self.assertEqual(dataset.metadata.to_internal_json_structure(), dataset_metadata_before) | ||||
def _test_recursive_metadata(self, metadata, dataset_doc_path): | |||||
def _test_recursive_metadata(self, metadata, dataset_doc_path): # pragma: no cover | |||||
self.maxDiff = None | self.maxDiff = None | ||||
self.assertEqual(test_utils.convert_through_json(metadata.query(())), { | self.assertEqual(test_utils.convert_through_json(metadata.query(())), { | ||||
@@ -344,7 +344,7 @@ class DenormalizePrimitiveTestCase(unittest.TestCase): | |||||
#self.assertEqual(dataset.metadata.to_internal_json_structure(), dataset_metadata_before) | #self.assertEqual(dataset.metadata.to_internal_json_structure(), dataset_metadata_before) | ||||
def _test_row_order_metadata(self, metadata, dataset_doc_path): | |||||
def _test_row_order_metadata(self, metadata, dataset_doc_path): # pragma: no cover | |||||
self.maxDiff = None | self.maxDiff = None | ||||
self.assertEqual(test_utils.convert_through_json(metadata.query(())), { | self.assertEqual(test_utils.convert_through_json(metadata.query(())), { | ||||