judgevet.domain.policy_rules
Status: draft.
judgevet.domain.policy_rules
Immutable typed rules and ordered policies.
Examples:
from judgevet.domain.policy_rules import NoulRule, Policy
policy = Policy((NoulRule("clear", minimum=0.8),))
assert policy.rules[0].name == "clear"
See Also
- judgevet.policy: Supported facade and evaluation.
- judgevet.domain.policy_errors: Definition failures.
Rule = NoulRule | ChoiceRule | ScoreRule
module-attribute
The three supported policy rule variants.
ChoiceRule
dataclass
An exact Choice label and optional confidence floor.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
Question name. |
choice |
str
|
Required choice label. |
min_confidence |
float | None
|
Optional inclusive confidence floor. |
Examples:
rule = ChoiceRule("q", "yes")
__post_init__()
Validate the name, label type and confidence floor.
Raises:
| Type | Description |
|---|---|
PolicyDefinitionError
|
If a local constraint is invalid. |
NoulRule
dataclass
Inclusive bounds for a Noul answer.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
Question name. |
minimum |
float | None
|
Optional inclusive probability floor. |
maximum |
float | None
|
Optional inclusive probability ceiling. |
Examples:
rule = NoulRule("q", minimum=0.5)
__post_init__()
Validate and normalize local rule constraints.
Raises:
| Type | Description |
|---|---|
PolicyDefinitionError
|
If a name or bound is invalid. |
Policy
dataclass
A nonempty ordered tuple of uniquely named typed rules.
Attributes:
| Name | Type | Description |
|---|---|---|
rules |
tuple
|
Rules in evaluation order, defensively copied into a tuple. |
Examples:
policy = Policy((NoulRule("q", minimum=0.5),))
__post_init__()
Copy the rule sequence and validate its elements and names.
Raises:
| Type | Description |
|---|---|
PolicyDefinitionError
|
If rules are empty, malformed or duplicated. |
ScoreRule
dataclass
Inclusive score bounds and an optional confidence floor.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
Question name. |
minimum |
float | None
|
Optional inclusive score floor. |
maximum |
float | None
|
Optional inclusive score ceiling. |
min_confidence |
float | None
|
Optional inclusive confidence floor. |
Examples:
rule = ScoreRule("q", minimum=0)
__post_init__()
Validate bounds independent of a question's score scale.
Raises:
| Type | Description |
|---|---|
PolicyDefinitionError
|
If a local constraint is invalid. |