Executor¶
Rule execution engine.
RuleExecutor¶
RuleExecutor(use_spacy_ner=False)
¶
Executes rules against input data
Initialize the rule executor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
use_spacy_ner
|
bool
|
If True, run spaCy's NER pipeline during rule execution so that ENT_TYPE/ENT_ID patterns are available. |
False
|
apply_rules(rules, input_data, task_type=None, text_field=None)
¶
Apply rules to input and return aggregated output.
Rules are sorted by priority and applied sequentially. Results are deduplicated by span position. If a rule has no output_key, it is inferred from task_type using DEFAULT_OUTPUT_KEYS.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rules
|
list[Rule]
|
List of rules to apply. |
required |
input_data
|
dict
|
Input data dict. |
required |
task_type
|
TaskType | None
|
Task type for inferring the default output_key. |
None
|
text_field
|
str | None
|
Input key to use for regex/spaCy matching. |
None
|
Returns:
| Type | Description |
|---|---|
dict
|
Output dict with results keyed by output_key (e.g. 'entities', |
dict
|
'spans', 'label'). Empty dict if no rules matched. |
execute_rule(rule, input_data, text_field=None)
¶
Execute a single rule against input data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rule
|
Rule
|
The rule to execute. |
required |
input_data
|
dict
|
Input data dict. |
required |
text_field
|
str | None
|
Input key to use for regex/spaCy matching. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
List of Span or dict results for regex/spaCy rules, or |
Any
|
arbitrary return value from code rules. Empty list on no match. |
Functions¶
substitute_template¶
substitute_template(template, match_text, start, end, groups=(), ent_type=None, ent_label=None, token_spans=None)
¶
Substitute template variables with actual values from a match.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
template
|
dict[str, Any]
|
Output template dict with variable placeholders. |
required |
match_text
|
str
|
The full matched text ($0). |
required |
start
|
int
|
Start character offset ($start). |
required |
end
|
int
|
End character offset ($end). |
required |
groups
|
tuple
|
Regex capture groups ($1, $2, ...). |
()
|
ent_type
|
str | None
|
spaCy entity type string ($ent_type). |
None
|
ent_label
|
str | None
|
spaCy entity label string ($ent_label). |
None
|
token_spans
|
list[dict[str, Any]] | None
|
Per-token span dicts for spaCy dependency matches ($1.text, $1.start, $1.end, etc.). |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with all template variables replaced by their actual values. |
Variables: - $0: Full match text - $1, $2, ...: Capture groups - $start: Start character offset - $end: End character offset - $ent_type: Entity type (spaCy only) - $ent_label: Entity label (spaCy only)