|
23 | 23 |
|
24 | 24 |
|
25 | 25 | try: |
26 | | - from ahbicht.content_evaluation.ahb_context import AhbContext |
27 | 26 | from ahbicht.content_evaluation.expression_check import is_valid_expression |
28 | 27 | from ahbicht.expressions.condition_expression_parser import extract_categorized_keys |
29 | 28 | from lark.exceptions import VisitError |
@@ -79,17 +78,24 @@ def _generate_node_texts(session: Session, expression: str, ahb_pk: uuid.UUID) - |
79 | 78 |
|
80 | 79 |
|
81 | 80 | def _get_validity_node_texts_and_error_message_cpu_intensive( |
82 | | - expression: str, session: Session, anwendungshandbuch_pk: uuid.UUID |
| 81 | + expression: str, |
| 82 | + session: Session, |
| 83 | + anwendungshandbuch_pk: uuid.UUID, |
| 84 | + edifact_format: EdifactFormat, |
| 85 | + edifact_format_version: EdifactFormatVersion, |
83 | 86 | ) -> tuple[bool, str, str | None]: |
| 87 | + is_valid = True # default: assume valid unless proven otherwise |
| 88 | + error_message: str | None = None |
84 | 89 | try: |
85 | 90 | is_valid, error_message = asyncio.run( |
86 | | - is_valid_expression(expression, EdifactFormat.UTILMD, EdifactFormatVersion.FV2504) |
| 91 | + is_valid_expression(expression, edifact_format, edifact_format_version) |
87 | 92 | ) |
88 | 93 | if is_valid: # we might actually get a meaningful node_texts even for invalid expressions, but I don't like it |
89 | 94 | node_texts = _generate_node_texts(session, expression, anwendungshandbuch_pk) |
90 | 95 | else: |
91 | 96 | node_texts = "" |
92 | 97 | except NotImplementedError: # ahbicht fault/missing feature -> act like it's valid |
| 98 | + is_valid = True |
93 | 99 | node_texts = _generate_node_texts(session, expression, anwendungshandbuch_pk) |
94 | 100 | error_message = None |
95 | 101 | return is_valid, node_texts, error_message |
@@ -155,7 +161,7 @@ def create_and_fill_ahb_expression_table(session: Session, use_cpu_intensive_val |
155 | 161 | if use_cpu_intensive_validity_check: |
156 | 162 | # as of 2025-04-15 I have no clue how long this actually takes for all expressions |
157 | 163 | _, node_texts, error_message = _get_validity_node_texts_and_error_message_cpu_intensive( |
158 | | - expression, session, row[3] |
| 164 | + expression, session, row[3], EdifactFormat(row[1]), row[0] |
159 | 165 | ) |
160 | 166 | else: |
161 | 167 | _, node_texts, error_message = _get_validity_node_texts_and_error_message_fast(expression, session, row[3]) |
|
0 commit comments