Skip to content

Commit 5723b9b

Browse files
committed
refactor: merging develop_v04 branch
2 parents 765a263 + 90ff789 commit 5723b9b

File tree

5 files changed

+23
-6
lines changed

5 files changed

+23
-6
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ requests = "2.32.4" # Mitigates security vuln in < 2.31.0
3939
schedula = "1.2.19"
4040
sqlalchemy = "2.0.19"
4141
typing_extensions = "4.6.2"
42-
urllib3 = "2.5.0" # Mitigates security vuln in < 1.26.19
42+
urllib3 = "2.6.0" # Mitigates security vuln in < 2.5.0
4343
xmltodict = "0.13.0"
4444

4545
[tool.poetry.group.dev]

src/dve/core_engine/backends/metadata/reporting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class BaseReportingConfig(BaseModel):
2828
2929
"""
3030

31-
UNTEMPLATED_FIELDS: ClassVar[set[str]] = {"message"}
31+
UNTEMPLATED_FIELDS: ClassVar[set[str]] = set()
3232
"""Fields that should not be templated."""
3333

3434
emit: Optional[str] = None

src/dve/core_engine/templating.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
from dve.core_engine.type_hints import JSONable, TemplateVariables
1212

1313

14+
class PreserveTemplateUndefined(jinja2.Undefined):
15+
"""
16+
Preserve the original template in instances where the value cannot be populated. Whilst this
17+
may result in templates coming back in the FeedbackMessage object, it's more useful to know
18+
exactly what should have been populated rather than just returning blank values.
19+
"""
20+
def __str__(self):
21+
return "{{" + self._undefined_name + "}}"
22+
23+
1424
class RuleTemplateError(ValueError):
1525
"""A rule template error."""
1626

@@ -21,7 +31,10 @@ def _raise_rule_templating_error(message: str) -> NoReturn:
2131

2232

2333
T = TypeVar("T", bound=JSONable)
24-
ENVIRONMENT = jinja2.Environment(autoescape=False)
34+
ENVIRONMENT = jinja2.Environment(
35+
autoescape=jinja2.select_autoescape(default_for_string=False),
36+
undefined=PreserveTemplateUndefined,
37+
)
2538
ENVIRONMENT.globals["repr"] = repr
2639
ENVIRONMENT.globals["str"] = str
2740
ENVIRONMENT.globals["raise"] = _raise_rule_templating_error

src/dve/pipeline/foundry_ddb_pipeline.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def file_transformation(
5050
self._audit_tables.mark_failed(submissions=[submission_info.submission_id])
5151
return submission_info, SubmissionStatus(processing_failed=True)
5252

53-
def apply_data_contract(self, submission_info: SubmissionInfo, submission_status: SubmissionStatus) -> tuple[SubmissionInfo | SubmissionStatus]:
53+
def apply_data_contract(self, submission_info: SubmissionInfo, submission_status: Optional[SubmissionStatus] = None) -> tuple[SubmissionInfo | SubmissionStatus]:
5454
try:
5555
return super().apply_data_contract(submission_info, submission_status)
5656
except Exception as exc: # pylint: disable=W0718
@@ -64,7 +64,7 @@ def apply_data_contract(self, submission_info: SubmissionInfo, submission_status
6464
self._audit_tables.mark_failed(submissions=[submission_info.submission_id])
6565
return submission_info, SubmissionStatus(processing_failed=True)
6666

67-
def apply_business_rules(self, submission_info: SubmissionInfo, submission_status: SubmissionStatus):
67+
def apply_business_rules(self, submission_info: SubmissionInfo, submission_status: Optional[SubmissionStatus] = None):
6868
try:
6969
return super().apply_business_rules(submission_info, submission_status)
7070
except Exception as exc: # pylint: disable=W0718
@@ -78,7 +78,7 @@ def apply_business_rules(self, submission_info: SubmissionInfo, submission_statu
7878
self._audit_tables.mark_failed(submissions=[submission_info.submission_id])
7979
return submission_info, SubmissionStatus(processing_failed=True)
8080

81-
def error_report(self, submission_info: SubmissionInfo, submission_status: SubmissionStatus):
81+
def error_report(self, submission_info: SubmissionInfo, submission_status: Optional[SubmissionStatus] = None):
8282
try:
8383
return super().error_report(submission_info, submission_status)
8484
except Exception as exc: # pylint: disable=W0718

src/dve/reporting/utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ def dump_processing_errors(
4747
"""Write out critical processing errors"""
4848
if not working_folder:
4949
raise AttributeError("processed files path not passed")
50+
if not step_name:
51+
raise AttributeError("step name not passed")
52+
if not errors:
53+
raise AttributeError("errors list not passed")
5054

5155
error_file: URI = fh.joinuri(working_folder, "errors", f"processing_errors.json")
5256
processed = []

0 commit comments

Comments
 (0)