Skip to content

Commit e0afeee

Browse files
committed
Add NAME_OF_FILE.py
1 parent 9957225 commit e0afeee

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

core/NAME_OF_FILE.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from dataclasses import dataclass
2+
from typing import Any, Dict, List, Callable
3+
from validator import Validator, ValidatorResult
4+
from provenance import ProvenanceRecord
5+
6+
7+
@dataclass
8+
class Capsule:
9+
name: str
10+
transform: Callable[[Dict[str, Any]], Any]
11+
validators: List[Validator]
12+
13+
def run(self, intent_id: str, inputs: Dict[str, Any]) -> ProvenanceRecord:
14+
"""
15+
v0.1 Capsule execution with provenance:
16+
1. Run the transform
17+
2. Run validators
18+
3. Return a ProvenanceRecord
19+
"""
20+
output = self.transform(inputs)
21+
22+
validation_results: List[Dict[str, Any]] = []
23+
for v in self.validators:
24+
result: ValidatorResult = v.run(inputs)
25+
validation_results.append(
26+
{
27+
"name": result.name,
28+
"passed": result.passed,
29+
"details": result.details,
30+
}
31+
)
32+
33+
return ProvenanceRecord(
34+
intent_id=intent_id,
35+
capsule=self.name,
36+
output=output,
37+
validations=validation_results,
38+
)

0 commit comments

Comments
 (0)