julee.util.validation.repository

Repository validation utilities for ensuring architectural contracts.

This module provides functions to validate repository implementations against their defined Protocols using @runtime_checkable.

Attributes

Exceptions

RepositoryValidationError

Raised when repository contract validation fails

Functions

ensure_repository_protocol(repository, protocol)

Validate and return a repository with proper type annotation.

validate_repository_protocol(repository, protocol)

Validate that a repository implementation satisfies a protocol contract.

Module Contents

exception julee.util.validation.repository.RepositoryValidationError[source]

Bases: Exception

Raised when repository contract validation fails

julee.util.validation.repository.ensure_repository_protocol(repository, protocol)[source]

Validate and return a repository with proper type annotation.

This provides both runtime validation and static type checking benefits.

Parameters:
  • repository (object) – The repository implementation to validate

  • protocol (type[P]) – The protocol class to validate against

Returns:

The validated repository (type checker knows it satisfies the protocol)

Raises:

RepositoryValidationError – If validation fails

Return type:

P

Example

>>> from julee.util.validation.repository import ensure_repository_protocol
>>> from julee.domain.repositories import DocumentRepository
>>> repo = MinioDocumentRepository()
>>> validated_repo = ensure_repository_protocol(repo, DocumentRepository)
>>> # Type checker now knows validated_repo satisfies DocumentRepository
julee.util.validation.repository.validate_repository_protocol(repository, protocol)[source]

Validate that a repository implementation satisfies a protocol contract.

Uses Python’s built-in isinstance() with @runtime_checkable for robust, idiomatic protocol validation.

Parameters:
  • repository (object) – The repository implementation to validate

  • protocol (type[P]) – The protocol class to validate against

Raises:

RepositoryValidationError – If validation fails

Example

>>> from julee.util.validation.repository import validate_repository_protocol
>>> from julee.domain.repositories import DocumentRepository
>>> repo = MinioDocumentRepository()
>>> validate_repository_protocol(repo, DocumentRepository)
julee.util.validation.repository.P[source]
julee.util.validation.repository.logger[source]