loom.core.use_case.rule

Classes

Rule()

Rule DSL namespace.

RuleBuilderFn(*args, **kwargs)

RuleFn(*args, **kwargs)

_RequirePresentSpec(target, field, message)

_RuleSpec(evaluator[, field, message, ...])

class loom.core.use_case.rule.Rule[source]

Bases: object

Rule DSL namespace.

class loom.core.use_case.rule.RuleFn(*args, **kwargs)[source]

Bases: Protocol

exception loom.core.use_case.rule.RuleViolation(field, message)[source]

Bases: DomainError

Raised when a single business rule is violated.

Parameters:
  • field (str) – The field that caused the violation.

  • message (str) – Human-readable description of the violation.

Return type:

None

Example:

raise RuleViolation("email", "Disposable emails not allowed")
exception loom.core.use_case.rule.RuleViolations(violations)[source]

Bases: DomainError

Raised when one or more business rules are violated.

Accumulates all violations from rule evaluation instead of failing fast on the first violation.

Parameters:

violations (Sequence[RuleViolation]) – Sequence of individual rule violations.

Return type:

None