julee.domain.models.policy

Submodules

Classes

DocumentPolicyValidation

Represents the validation of a document against a policy configuration.

DocumentPolicyValidationStatus

Status of a document policy validation process.

Policy

Policy configuration that defines validation and

PolicyStatus

Status of a policy configuration.

Package Contents

class julee.domain.models.policy.DocumentPolicyValidation(/, **data)[source]

Bases: pydantic.BaseModel

Represents the validation of a document against a policy configuration.

A DocumentPolicyValidation tracks the complete lifecycle of validating a document against policy criteria. It includes:

  1. Initial validation: Document is scored against policy validation queries

  2. Optional transformation: If policy includes transformation queries and initial validation fails, transformations are applied

  3. Re-validation: Transformed document is re-scored against policy criteria

  4. Final determination: Pass/fail based on final validation scores

The validation process supports both validation-only policies and policies that include transformations for document quality improvement.

classmethod error_message_must_be_valid(v)[source]
classmethod input_document_id_must_not_be_empty(v)[source]
classmethod policy_id_must_not_be_empty(v)[source]
classmethod post_transform_scores_must_be_valid(v)[source]
classmethod transformed_document_id_must_be_valid(v)[source]
classmethod validation_scores_must_be_valid(v)[source]
completed_at: datetime.datetime | None = None
error_message: str | None = None
input_document_id: str = None
passed: bool | None = None
policy_id: str = None
post_transform_validation_scores: list[tuple[str, int]] | None = None
started_at: datetime.datetime | None = None
status: DocumentPolicyValidationStatus
transformed_document_id: str | None = None
validation_id: str = None
validation_scores: list[tuple[str, int]] = None
class julee.domain.models.policy.DocumentPolicyValidationStatus[source]

Bases: str, enum.Enum

Status of a document policy validation process.

ERROR = 'error'
FAILED = 'failed'
IN_PROGRESS = 'in_progress'
PASSED = 'passed'
PENDING = 'pending'
TRANSFORMATION_COMPLETE = 'transformation_complete'
TRANSFORMATION_IN_PROGRESS = 'transformation_in_progress'
TRANSFORMATION_REQUIRED = 'transformation_required'
VALIDATION_COMPLETE = 'validation_complete'
class julee.domain.models.policy.Policy(/, **data)[source]

Bases: pydantic.BaseModel

Policy configuration that defines validation and transformation criteria for documents.

A Policy represents a set of quality criteria that documents must meet. It includes validation scores that are calculated using knowledge service queries, and optional transformation queries that can be applied to improve document quality before re-validation.

The policy operates in two modes:

  1. Validation-only: Calculates scores and passes/fails based on criteria

  2. Validation with transformation: Calculates scores, applies transformations, then re-calculates scores for final pass/fail

classmethod description_must_not_be_empty(v)[source]
classmethod policy_id_must_not_be_empty(v)[source]
classmethod title_must_not_be_empty(v)[source]
classmethod transformation_queries_must_be_valid(v)[source]
classmethod validation_scores_must_be_valid(v)[source]
classmethod version_must_not_be_empty(v)[source]
created_at: datetime.datetime | None = None
description: str = None
property has_transformations: bool

Check if this policy includes transformation queries.

Returns True if transformation queries are defined and non-empty.

property is_validation_only: bool

Check if this policy operates in validation-only mode.

Returns True if no transformation queries are defined or if the transformation queries list is empty.

policy_id: str = None
status: PolicyStatus
title: str = None
transformation_queries: list[str] | None = None
updated_at: datetime.datetime | None = None
validation_scores: list[tuple[str, int]] = None
version: str = None
class julee.domain.models.policy.PolicyStatus[source]

Bases: str, enum.Enum

Status of a policy configuration.

ACTIVE = 'active'
DEPRECATED = 'deprecated'
DRAFT = 'draft'
INACTIVE = 'inactive'