tba-concrete-amr-evaluator-basic 0.4.0.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ Metadata-Version: 2.4
2
+ Name: tba-concrete-amr-evaluator-basic
3
+ Version: 0.4.0.dev2
4
+ Summary: Deterministic basic AMR evaluator.
5
+ License-Expression: Apache-2.0
6
+ Requires-Python: >=3.10,<3.15
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Requires-Dist: tba-bases-authentication-context (==0.4.0.dev2)
14
+ Requires-Dist: tba-contracts-security-trust (==0.1.0)
@@ -0,0 +1,14 @@
1
+ [project]
2
+ name = "tba-concrete-amr-evaluator-basic"
3
+ version = "0.4.0.dev2"
4
+ description = "Deterministic basic AMR evaluator."
5
+ requires-python = ">=3.10,<3.15"
6
+ license = "Apache-2.0"
7
+ dependencies = ["tba-contracts-security-trust==0.1.0", "tba-bases-authentication-context==0.4.0.dev2"]
8
+
9
+ [build-system]
10
+ requires = ["poetry-core>=1.0.0"]
11
+ build-backend = "poetry.core.masonry.api"
12
+
13
+ [tool.poetry]
14
+ packages = [{ include = "tba_concrete_amr_evaluator_basic", from = "src" }]
@@ -0,0 +1,27 @@
1
+ from tba_bases_authentication_context import AmrEvaluatorBase
2
+ from tba_contracts_security_trust import (
3
+ AmrEvaluationRequest,
4
+ AmrEvaluationResult,
5
+ CapabilityMap,
6
+ )
7
+
8
+
9
+ class BasicAmrEvaluator(AmrEvaluatorBase):
10
+ """Report the required AMR values absent from achieved evidence."""
11
+
12
+ def supports(self) -> CapabilityMap:
13
+ return CapabilityMap(ops={"evaluate_amr": ("basic",)}, features=("amr",))
14
+
15
+ def evaluate_amr(self, request: AmrEvaluationRequest) -> AmrEvaluationResult:
16
+ required = {str(getattr(value, "value", value)) for value in request.required}
17
+ achieved = {str(getattr(value, "value", value)) for value in request.achieved}
18
+ missing = tuple(sorted(required - achieved))
19
+ return AmrEvaluationResult(
20
+ not missing,
21
+ request.achieved,
22
+ missing,
23
+ None if not missing else "amr_not_satisfied",
24
+ )
25
+
26
+
27
+ __all__ = ["BasicAmrEvaluator"]