julee.util.validation.repository ================================ .. py:module:: julee.util.validation.repository .. autoapi-nested-parse:: Repository validation utilities for ensuring architectural contracts. This module provides functions to validate repository implementations against their defined Protocols using @runtime_checkable. Attributes ---------- .. autoapisummary:: julee.util.validation.repository.P julee.util.validation.repository.logger Exceptions ---------- .. autoapisummary:: julee.util.validation.repository.RepositoryValidationError Functions --------- .. autoapisummary:: julee.util.validation.repository.ensure_repository_protocol julee.util.validation.repository.validate_repository_protocol Module Contents --------------- .. py:exception:: RepositoryValidationError Bases: :py:obj:`Exception` Raised when repository contract validation fails .. py:function:: ensure_repository_protocol(repository, protocol) Validate and return a repository with proper type annotation. This provides both runtime validation and static type checking benefits. :param repository: The repository implementation to validate :param protocol: The protocol class to validate against :returns: The validated repository (type checker knows it satisfies the protocol) :raises RepositoryValidationError: If validation fails .. admonition:: 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 .. py:function:: validate_repository_protocol(repository, protocol) Validate that a repository implementation satisfies a protocol contract. Uses Python's built-in isinstance() with @runtime_checkable for robust, idiomatic protocol validation. :param repository: The repository implementation to validate :param protocol: The protocol class to validate against :raises RepositoryValidationError: If validation fails .. admonition:: Example >>> from julee.util.validation.repository import validate_repository_protocol >>> from julee.domain.repositories import DocumentRepository >>> repo = MinioDocumentRepository() >>> validate_repository_protocol(repo, DocumentRepository) .. py:data:: P .. py:data:: logger