Skip to content

Commit ff0b891

Browse files
hf-kkleinclaude
andcommitted
feat: upgrade to ahbicht v2.0.0, remove inject dependency
- Remove inject, EvaluatableDataProvider, TokenLogicProvider, SingletonTokenLogicProvider, create_content_evaluation_result_based_evaluators imports from expression_view.py - Remove _setup_weird_ahbicht_dependency_injection() function entirely - Update is_valid_expression call to use new format params instead of setter callback - Bump ahbicht dep to >=2.0.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent e54c38a commit ff0b891

2 files changed

Lines changed: 5 additions & 42 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ sqlmodels = [
3030
"sqlalchemy[mypy]>=2.0.37"
3131
]
3232
ahbicht = [
33-
"ahbicht>=1.0.0,<2"
33+
"ahbicht>=2.0.0"
3434
]
3535
coverage = [
3636
"coverage==7.13.5"

src/fundamend/sqlmodels/expression_view.py

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import asyncio
66
import logging
77
import uuid
8-
from contextvars import ContextVar
98
from typing import Optional
109

1110
from efoli import EdifactFormat, EdifactFormatVersion
@@ -24,13 +23,9 @@
2423

2524

2625
try:
27-
import inject
28-
from ahbicht.content_evaluation.evaluationdatatypes import EvaluatableData, EvaluatableDataProvider
29-
from ahbicht.content_evaluation.evaluator_factory import create_content_evaluation_result_based_evaluators
26+
from ahbicht.content_evaluation.ahb_context import AhbContext
3027
from ahbicht.content_evaluation.expression_check import is_valid_expression
31-
from ahbicht.content_evaluation.token_logic_provider import SingletonTokenLogicProvider, TokenLogicProvider
3228
from ahbicht.expressions.condition_expression_parser import extract_categorized_keys
33-
from ahbicht.models.content_evaluation_result import ContentEvaluationResult
3429
from lark.exceptions import VisitError
3530
except ImportError as import_error:
3631
import_error.msg += "; Did you install fundamend[sqlmodels,ahbicht]?"
@@ -39,39 +34,6 @@
3934

4035
_logger = logging.getLogger(__name__)
4136

42-
_content_evaluation_result: ContextVar[Optional[ContentEvaluationResult]] = ContextVar(
43-
"_content_evaluation_result", default=None
44-
)
45-
46-
47-
def _get_evaluatable_data() -> EvaluatableData[ContentEvaluationResult]:
48-
"""
49-
returns the _content_evaluation_result context var value wrapped in a EvaluatableData container.
50-
This is the kind of data that the ContentEvaluationResultBased RC/FC Evaluators, HintsProvider and Package Resolver
51-
require.
52-
:return:
53-
"""
54-
cer = _content_evaluation_result.get()
55-
assert cer is not None
56-
return EvaluatableData(
57-
body=cer,
58-
edifact_format=EdifactFormat.UTILMD, # not important, something has to be here
59-
edifact_format_version=EdifactFormatVersion.FV2504, # not important, something has to be here
60-
)
61-
62-
63-
def _setup_weird_ahbicht_dependency_injection() -> None:
64-
def configure(binder: inject.Binder) -> None:
65-
binder.bind(
66-
TokenLogicProvider,
67-
SingletonTokenLogicProvider(
68-
[*create_content_evaluation_result_based_evaluators(EdifactFormat.UTILMD, EdifactFormatVersion.FV2504)]
69-
),
70-
)
71-
binder.bind_to_provider(EvaluatableDataProvider, _get_evaluatable_data)
72-
73-
inject.configure_once(configure)
74-
7537

7638
def _generate_node_texts(session: Session, expression: str, ahb_pk: uuid.UUID) -> str:
7739
categorized_key_extract = asyncio.run(extract_categorized_keys(expression))
@@ -120,7 +82,9 @@ def _get_validity_node_texts_and_error_message_cpu_intensive(
12082
expression: str, session: Session, anwendungshandbuch_pk: uuid.UUID
12183
) -> tuple[bool, str, str | None]:
12284
try:
123-
is_valid, error_message = asyncio.run(is_valid_expression(expression, _content_evaluation_result.set))
85+
is_valid, error_message = asyncio.run(
86+
is_valid_expression(expression, EdifactFormat.UTILMD, EdifactFormatVersion.FV2504)
87+
)
12488
if is_valid: # we might actually get a meaningful node_texts even for invalid expressions, but I don't like it
12589
node_texts = _generate_node_texts(session, expression, anwendungshandbuch_pk)
12690
else:
@@ -157,7 +121,6 @@ def create_and_fill_ahb_expression_table(session: Session, use_cpu_intensive_val
157121
outcomes. This leads to only few additional expressions marked as invalid but is very slow.
158122
"""
159123
rows: list[tuple[EdifactFormatVersion | None, str, str | None, uuid.UUID]] = []
160-
_setup_weird_ahbicht_dependency_injection()
161124
for ahb_status_col in [
162125
AhbHierarchyMaterialized.segmentgroup_ahb_status,
163126
AhbHierarchyMaterialized.segment_ahb_status,

0 commit comments

Comments
 (0)