From ce64a0b193b25f4d844b00e086945bac08fddd0e Mon Sep 17 00:00:00 2001 From: stevenhsd <56357022+stevenhsd@users.noreply.github.com> Date: Thu, 22 Oct 2026 18:32:06 +0100 Subject: [PATCH] fix: ensure error summary sheet populates entities in deterministic way --- src/dve/pipeline/foundry_ddb_pipeline.py | 7 ++----- src/dve/pipeline/pipeline.py | 11 +++++------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/dve/pipeline/foundry_ddb_pipeline.py b/src/dve/pipeline/foundry_ddb_pipeline.py index 56d202a7..a5c24638 100644 --- a/src/dve/pipeline/foundry_ddb_pipeline.py +++ b/src/dve/pipeline/foundry_ddb_pipeline.py @@ -10,7 +10,6 @@ duckdb_get_entity_count, duckdb_write_parquet, ) -from dve.core_engine.configuration.v1 import V1ErrorReportConfig from dve.core_engine.exceptions import CriticalProcessingError from dve.core_engine.models import SubmissionInfo from dve.core_engine.type_hints import URI @@ -102,12 +101,10 @@ def apply_business_rules( return submission_info, SubmissionStatus(processing_failed=True) def error_report( - self, submission_info: SubmissionInfo, - submission_status: Optional[SubmissionStatus] = None , - error_report_config: Optional[V1ErrorReportConfig] = None, + self, submission_info: SubmissionInfo, submission_status: Optional[SubmissionStatus] = None ): try: - return super().error_report(submission_info, submission_status,error_report_config) + return super().error_report(submission_info, submission_status) except Exception as exc: # pylint: disable=W0718 self._logger.exception("Error reports raised exception:") sub_stats = None diff --git a/src/dve/pipeline/pipeline.py b/src/dve/pipeline/pipeline.py index 8d9cfdb6..e5cd4f58 100644 --- a/src/dve/pipeline/pipeline.py +++ b/src/dve/pipeline/pipeline.py @@ -946,7 +946,6 @@ def error_report( self, submission_info: SubmissionInfo, submission_status: Optional[SubmissionStatus] = None, - error_report_config: Optional[V1ErrorReportConfig] = None, ) -> tuple[ SubmissionInfo, SubmissionStatus, Optional[SubmissionStatisticsRecord], Optional[URI] ]: @@ -968,11 +967,10 @@ def error_report( raise AttributeError("processed files path not provided") self._logger.info("Reading error dataframes") - if error_report_config is None: - if not self.rules_path: - raise AttributeError("rules path not provided") - _, config, _ = load_config(submission_info.dataset_id, self.rules_path) - error_report_config = config.error_report + if not self.rules_path: + raise AttributeError("rules path not provided") + _, config, _ = load_config(submission_info.dataset_id, self.rules_path) + error_report_config: V1ErrorReportConfig = config.error_report errors_df, aggregates = self._get_error_dataframes( submission_info.submission_id, error_report_config.record_rejection_reporting, @@ -1007,6 +1005,7 @@ def error_report( summary_items = er.SummaryItems( submission_status=submission_status, summary_dict=summary_dict, + table_columns=[entity.upper() for entity in config.contract.datasets], row_headings=[ e.reporting_name for e in ErrorReportCategories