Skip to content

Commit cf4d8fa

Browse files
authored
Cg00014 (#1281)
* updated to_dict dask * update dask * fix
1 parent 9375bf6 commit cf4d8fa

3 files changed

Lines changed: 20 additions & 4 deletions

File tree

cdisc_rules_engine/models/actions.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,13 @@ def _create_error_object(
309309
else ""
310310
),
311311
row=(
312-
int(source_row_number[df_row.name])
313-
if isinstance(source_row_number, pd.Series)
314-
else (int(df_row.name) + 1)
312+
int(data.loc[df_row.name]["row_number"])
313+
if "row_number" in data.columns
314+
else (
315+
int(source_row_number[df_row.name])
316+
if isinstance(source_row_number, pd.Series)
317+
else (int(df_row.name) + 1)
318+
)
315319
), # record number should start at 1, not 0
316320
value=filtered_dict,
317321
usubjid=(

cdisc_rules_engine/models/dataset/dask_dataset.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,18 @@ def fillna(
360360
return self.__class__(result)
361361

362362
def to_dict(self, **kwargs) -> dict:
363-
return self._data.compute().to_dict(**kwargs)
363+
orient = kwargs.get("orient", "dict")
364+
if orient == "records":
365+
reset_df = self._data.reset_index(drop=True)
366+
all_partitions = list(
367+
reset_df.map_partitions(lambda x: x.to_dict(orient="records"))
368+
)
369+
flattened = []
370+
for partition in all_partitions:
371+
flattened.extend(partition)
372+
return flattened
373+
else:
374+
return self._data.compute().to_dict(**kwargs)
364375

365376
def items(self, **kwargs):
366377
computed_df = self._data.compute()

cdisc_rules_engine/services/reporting/base_report.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def process_values(self, values: List[str], excel: bool) -> Union[str, List[str]
149149
for value in values:
150150
if value is None:
151151
processed_values.append("null")
152+
continue
152153
value = value.strip()
153154
if value == "" or value.lower() == "nan":
154155
processed_values.append("null")

0 commit comments

Comments
 (0)