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

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.