Skip to content

Commit 203ca69

Browse files
committed
Merge branch 'json_read_multiple_files' of github.com:CITCOM-project/CausalTestingFramework into json_read_multiple_files
2 parents 066549f + 17acf70 commit 203ca69

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

causal_testing/data_collection/data_collector.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ def run_system_with_input_configuration(self, input_configuration: dict) -> pd.D
124124
class ObservationalDataCollector(DataCollector):
125125
"""A data collector that extracts data that is relevant to the specified scenario from a csv of execution data."""
126126

127-
def __init__(self, scenario: Scenario, csv_path: str):
127+
def __init__(self, scenario: Scenario, data: pd.DataFrame):
128128
super().__init__(scenario)
129-
self.csv_path = csv_path
129+
self.data = data
130130

131131
def collect_data(self, **kwargs) -> pd.DataFrame:
132132
"""Read a csv containing execution data for the system-under-test into a pandas dataframe and filter to remove
@@ -137,7 +137,7 @@ def collect_data(self, **kwargs) -> pd.DataFrame:
137137
:return: A pandas dataframe containing execution data that is valid for the scenario-under-test.
138138
"""
139139

140-
execution_data_df = pd.read_csv(self.csv_path, **kwargs)
140+
execution_data_df = self.data
141141
for meta in self.scenario.metas():
142142
meta.populate(execution_data_df)
143143
scenario_execution_data_df = self.filter_valid_data(execution_data_df)

causal_testing/json_front/json_class.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ def _json_parse(self):
137137
df = pd.read_csv(data_file, header=0)
138138
self.data.append(df)
139139
self.data = pd.concat(self.data)
140-
breakpoint()
141140
def _populate_metas(self):
142141
"""
143142
Populate data with meta-variable values and add distributions to Causal Testing Framework Variables
@@ -196,11 +195,8 @@ def _setup_test(self, causal_test_case: CausalTestCase, estimator: Estimator) ->
196195
- estimation_model - Estimator instance for the test being run
197196
"""
198197

199-
with tempfile.TemporaryFile(delete=False) as temp:
200-
self.data.to_csv(temp)
201-
breakpoint()
202-
data_collector = ObservationalDataCollector(self.modelling_scenario, temp.name)
203-
causal_test_engine = CausalTestEngine(self.causal_specification, data_collector, index_col=0)
198+
data_collector = ObservationalDataCollector(self.modelling_scenario, self.data)
199+
causal_test_engine = CausalTestEngine(self.causal_specification, data_collector, index_col=0)
204200

205201
minimal_adjustment_set = self.causal_specification.causal_dag.identification(causal_test_case.base_test_case)
206202
treatment_var = causal_test_case.treatment_variable
@@ -290,7 +286,7 @@ class JsonClassPaths:
290286
def __init__(self, json_path: str, dag_path: str, data_paths: str):
291287
self.json_path = Path(json_path)
292288
self.dag_path = Path(dag_path)
293-
self.data_paths = [Path(path) for path in data_paths]
289+
self.data_paths = [Path(path) for path in [data_paths]]
294290

295291

296292
@dataclass()

tests/json_front_tests/test_json_class.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ def setUp(self) -> None:
2626
dag_file_name = "dag.dot"
2727
data_file_name = "data.csv"
2828
test_data_dir_path = Path("tests/resources/data")
29-
self.json_path = test_data_dir_path / json_file_name
30-
self.dag_path = test_data_dir_path / dag_file_name
31-
self.data_path = test_data_dir_path / data_file_name
29+
self.json_path = str(test_data_dir_path / json_file_name)
30+
self.dag_path = str(test_data_dir_path / dag_file_name)
31+
self.data_path = str(test_data_dir_path / data_file_name)
3232
self.json_class = JsonUtility("logs.log")
3333
self.example_distribution = scipy.stats.uniform(1, 10)
3434
self.input_dict_list = [{"name": "test_input", "type": float, "distribution": self.example_distribution}]

0 commit comments

Comments
 (0)