diff --git a/src/julee/api/dependencies.py b/src/julee/api/dependencies.py index 632680bf..62a217b3 100644 --- a/src/julee/api/dependencies.py +++ b/src/julee/api/dependencies.py @@ -24,16 +24,16 @@ from temporalio.client import Client from temporalio.contrib.pydantic import pydantic_data_converter -from julee.domain.repositories.assembly_specification import ( +from julee.contrib.ceap.domain.repositories.assembly_specification import ( AssemblySpecificationRepository, ) -from julee.domain.repositories.document import ( +from julee.contrib.ceap.domain.repositories.document import ( DocumentRepository, ) -from julee.domain.repositories.knowledge_service_config import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_config import ( KnowledgeServiceConfigRepository, ) -from julee.domain.repositories.knowledge_service_query import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_query import ( KnowledgeServiceQueryRepository, ) from julee.repositories.minio.assembly_specification import ( @@ -224,7 +224,7 @@ async def get_system_initialization_service( from julee.api.services.system_initialization import ( SystemInitializationService, ) - from julee.domain.use_cases.initialize_system_data import ( + from julee.contrib.ceap.use_cases.initialize_system_data import ( InitializeSystemDataUseCase, ) diff --git a/src/julee/api/requests.py b/src/julee/api/requests.py index 0bb3bbab..5ddd439f 100644 --- a/src/julee/api/requests.py +++ b/src/julee/api/requests.py @@ -12,7 +12,7 @@ from pydantic import BaseModel, Field, ValidationInfo, field_validator -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( AssemblySpecification, AssemblySpecificationStatus, KnowledgeServiceQuery, diff --git a/src/julee/api/routers/assembly_specifications.py b/src/julee/api/routers/assembly_specifications.py index f237618c..a9fff71c 100644 --- a/src/julee/api/routers/assembly_specifications.py +++ b/src/julee/api/routers/assembly_specifications.py @@ -22,8 +22,8 @@ get_assembly_specification_repository, ) from julee.api.requests import CreateAssemblySpecificationRequest -from julee.domain.models import AssemblySpecification -from julee.domain.repositories.assembly_specification import ( +from julee.contrib.ceap.domain.models import AssemblySpecification +from julee.contrib.ceap.domain.repositories.assembly_specification import ( AssemblySpecificationRepository, ) diff --git a/src/julee/api/routers/documents.py b/src/julee/api/routers/documents.py index ee241142..1d19a8e8 100644 --- a/src/julee/api/routers/documents.py +++ b/src/julee/api/routers/documents.py @@ -20,8 +20,8 @@ from fastapi_pagination import Page, paginate from julee.api.dependencies import get_document_repository -from julee.domain.models.document import Document -from julee.domain.repositories.document import DocumentRepository +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.repositories.document import DocumentRepository logger = logging.getLogger(__name__) diff --git a/src/julee/api/routers/knowledge_service_configs.py b/src/julee/api/routers/knowledge_service_configs.py index df489064..d1107705 100644 --- a/src/julee/api/routers/knowledge_service_configs.py +++ b/src/julee/api/routers/knowledge_service_configs.py @@ -20,10 +20,10 @@ from julee.api.dependencies import ( get_knowledge_service_config_repository, ) -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) -from julee.domain.repositories.knowledge_service_config import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_config import ( KnowledgeServiceConfigRepository, ) diff --git a/src/julee/api/routers/knowledge_service_queries.py b/src/julee/api/routers/knowledge_service_queries.py index 9d69adbe..101da832 100644 --- a/src/julee/api/routers/knowledge_service_queries.py +++ b/src/julee/api/routers/knowledge_service_queries.py @@ -23,8 +23,8 @@ get_knowledge_service_query_repository, ) from julee.api.requests import CreateKnowledgeServiceQueryRequest -from julee.domain.models import KnowledgeServiceQuery -from julee.domain.repositories.knowledge_service_query import ( +from julee.contrib.ceap.domain.models import KnowledgeServiceQuery +from julee.contrib.ceap.domain.repositories.knowledge_service_query import ( KnowledgeServiceQueryRepository, ) diff --git a/src/julee/api/routers/workflows.py b/src/julee/api/routers/workflows.py index 7c5dd5ab..2c139c2d 100644 --- a/src/julee/api/routers/workflows.py +++ b/src/julee/api/routers/workflows.py @@ -20,7 +20,7 @@ from temporalio.client import Client from julee.api.dependencies import get_temporal_client -from julee.workflows.extract_assemble import ( +from julee.contrib.ceap.apps.worker.extract_assemble import ( EXTRACT_ASSEMBLE_RETRY_POLICY, ExtractAssembleWorkflow, ) diff --git a/src/julee/api/services/system_initialization.py b/src/julee/api/services/system_initialization.py index 3b0c8c17..db381c60 100644 --- a/src/julee/api/services/system_initialization.py +++ b/src/julee/api/services/system_initialization.py @@ -13,7 +13,7 @@ import logging from typing import Any -from julee.domain.use_cases.initialize_system_data import ( +from julee.contrib.ceap.use_cases.initialize_system_data import ( InitializeSystemDataRequest, InitializeSystemDataUseCase, ) diff --git a/src/julee/api/tests/routers/test_assembly_specifications.py b/src/julee/api/tests/routers/test_assembly_specifications.py index 524622fd..b8c8a6d4 100644 --- a/src/julee/api/tests/routers/test_assembly_specifications.py +++ b/src/julee/api/tests/routers/test_assembly_specifications.py @@ -17,7 +17,7 @@ get_assembly_specification_repository, ) from julee.api.routers.assembly_specifications import router -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( AssemblySpecification, AssemblySpecificationStatus, ) diff --git a/src/julee/api/tests/routers/test_documents.py b/src/julee/api/tests/routers/test_documents.py index 90c42ea0..79d69aa0 100644 --- a/src/julee/api/tests/routers/test_documents.py +++ b/src/julee/api/tests/routers/test_documents.py @@ -15,7 +15,7 @@ from julee.api.dependencies import get_document_repository from julee.api.routers.documents import router -from julee.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus from julee.repositories.memory import MemoryDocumentRepository pytestmark = pytest.mark.unit diff --git a/src/julee/api/tests/routers/test_knowledge_service_configs.py b/src/julee/api/tests/routers/test_knowledge_service_configs.py index dbbcfa5c..ad4586c4 100644 --- a/src/julee/api/tests/routers/test_knowledge_service_configs.py +++ b/src/julee/api/tests/routers/test_knowledge_service_configs.py @@ -17,7 +17,7 @@ from julee.api.dependencies import ( get_knowledge_service_config_repository, ) -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) diff --git a/src/julee/api/tests/routers/test_knowledge_service_queries.py b/src/julee/api/tests/routers/test_knowledge_service_queries.py index f8827cdd..913df912 100644 --- a/src/julee/api/tests/routers/test_knowledge_service_queries.py +++ b/src/julee/api/tests/routers/test_knowledge_service_queries.py @@ -17,7 +17,7 @@ get_knowledge_service_query_repository, ) from julee.api.routers.knowledge_service_queries import router -from julee.domain.models import KnowledgeServiceQuery +from julee.contrib.ceap.domain.models import KnowledgeServiceQuery from julee.repositories.memory import ( MemoryKnowledgeServiceQueryRepository, ) diff --git a/src/julee/api/tests/test_app.py b/src/julee/api/tests/test_app.py index 27bba4f9..88040e26 100644 --- a/src/julee/api/tests/test_app.py +++ b/src/julee/api/tests/test_app.py @@ -17,7 +17,7 @@ get_knowledge_service_query_repository, ) from julee.api.responses import ServiceStatus -from julee.domain.models import KnowledgeServiceQuery +from julee.contrib.ceap.domain.models import KnowledgeServiceQuery from julee.repositories.memory import ( MemoryKnowledgeServiceQueryRepository, ) diff --git a/src/julee/api/tests/test_requests.py b/src/julee/api/tests/test_requests.py index d608404c..302fb94f 100644 --- a/src/julee/api/tests/test_requests.py +++ b/src/julee/api/tests/test_requests.py @@ -15,7 +15,7 @@ CreateAssemblySpecificationRequest, CreateKnowledgeServiceQueryRequest, ) -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( AssemblySpecification, AssemblySpecificationStatus, KnowledgeServiceQuery, diff --git a/src/julee/contrib/ceap/__init__.py b/src/julee/contrib/ceap/__init__.py new file mode 100644 index 00000000..e708cd46 --- /dev/null +++ b/src/julee/contrib/ceap/__init__.py @@ -0,0 +1,6 @@ +""" +CEAP (Capture, Extract, Assemble, Publish) contrib package. + +This package contains the domain models, repositories, use cases, and +workflows for the CEAP pipeline, following Clean Architecture principles. +""" diff --git a/src/julee/contrib/ceap/apps/__init__.py b/src/julee/contrib/ceap/apps/__init__.py new file mode 100644 index 00000000..25ee2b90 --- /dev/null +++ b/src/julee/contrib/ceap/apps/__init__.py @@ -0,0 +1,3 @@ +""" +Application entry points for the CEAP contrib package. +""" diff --git a/src/julee/contrib/ceap/apps/worker/__init__.py b/src/julee/contrib/ceap/apps/worker/__init__.py new file mode 100644 index 00000000..6f78a174 --- /dev/null +++ b/src/julee/contrib/ceap/apps/worker/__init__.py @@ -0,0 +1,22 @@ +""" +Temporal workflow definitions for the CEAP pipeline. + +This package contains Temporal workflow definitions that orchestrate +CEAP use cases with durability guarantees, retry logic, and state management. +""" + +from .extract_assemble import ( + EXTRACT_ASSEMBLE_RETRY_POLICY, + ExtractAssembleWorkflow, +) +from .validate_document import ( + VALIDATE_DOCUMENT_RETRY_POLICY, + ValidateDocumentWorkflow, +) + +__all__ = [ + "ExtractAssembleWorkflow", + "EXTRACT_ASSEMBLE_RETRY_POLICY", + "ValidateDocumentWorkflow", + "VALIDATE_DOCUMENT_RETRY_POLICY", +] diff --git a/src/julee/workflows/extract_assemble.py b/src/julee/contrib/ceap/apps/worker/extract_assemble.py similarity index 98% rename from src/julee/workflows/extract_assemble.py rename to src/julee/contrib/ceap/apps/worker/extract_assemble.py index eade003b..f266334c 100644 --- a/src/julee/workflows/extract_assemble.py +++ b/src/julee/contrib/ceap/apps/worker/extract_assemble.py @@ -12,8 +12,8 @@ from temporalio import workflow from temporalio.common import RetryPolicy -from julee.domain.models.assembly import Assembly -from julee.domain.use_cases import ExtractAssembleDataUseCase +from julee.contrib.ceap.domain.models.assembly import Assembly +from julee.contrib.ceap.use_cases import ExtractAssembleDataUseCase from julee.repositories.temporal.proxies import ( WorkflowAssemblyRepositoryProxy, WorkflowAssemblySpecificationRepositoryProxy, diff --git a/src/julee/workflows/validate_document.py b/src/julee/contrib/ceap/apps/worker/validate_document.py similarity index 98% rename from src/julee/workflows/validate_document.py rename to src/julee/contrib/ceap/apps/worker/validate_document.py index 0b850e0e..0abd0ecc 100644 --- a/src/julee/workflows/validate_document.py +++ b/src/julee/contrib/ceap/apps/worker/validate_document.py @@ -12,8 +12,8 @@ from temporalio import workflow from temporalio.common import RetryPolicy -from julee.domain.models.policy import DocumentPolicyValidation -from julee.domain.use_cases import ValidateDocumentUseCase +from julee.contrib.ceap.domain.models.policy import DocumentPolicyValidation +from julee.contrib.ceap.use_cases import ValidateDocumentUseCase from julee.repositories.temporal.proxies import ( WorkflowDocumentRepositoryProxy, WorkflowKnowledgeServiceConfigRepositoryProxy, diff --git a/src/julee/contrib/ceap/domain/__init__.py b/src/julee/contrib/ceap/domain/__init__.py new file mode 100644 index 00000000..3ca78d46 --- /dev/null +++ b/src/julee/contrib/ceap/domain/__init__.py @@ -0,0 +1,3 @@ +""" +CEAP domain package. +""" diff --git a/src/julee/contrib/ceap/domain/models/__init__.py b/src/julee/contrib/ceap/domain/models/__init__.py new file mode 100644 index 00000000..f05b356b --- /dev/null +++ b/src/julee/contrib/ceap/domain/models/__init__.py @@ -0,0 +1,44 @@ +""" +Domain models for the CEAP (Capture, Extract, Assemble, Publish) pipeline. + +Re-exports commonly used models for convenient importing: + from julee.contrib.ceap.domain.models import Document, Assembly, Policy +""" + +# Document models +# Assembly models +from .assembly import Assembly, AssemblyStatus +from .assembly_specification import ( + AssemblySpecification, + AssemblySpecificationStatus, + KnowledgeServiceQuery, +) + +# Custom field types +from .custom_fields.content_stream import ContentStream +from .document import Document, DocumentStatus + +# Configuration models +from .knowledge_service_config import KnowledgeServiceConfig + +# Policy models +from .policy import DocumentPolicyValidation, Policy, PolicyStatus + +__all__ = [ + # Document models + "Document", + "DocumentStatus", + "ContentStream", + # Assembly models + "Assembly", + "AssemblyStatus", + "AssemblySpecification", + "AssemblySpecificationStatus", + "KnowledgeServiceQuery", + # Configuration models + "KnowledgeServiceConfig", + # Policy models + "Policy", + "PolicyStatus", + "DocumentPolicyValidation", +] diff --git a/src/julee/domain/models/assembly/__init__.py b/src/julee/contrib/ceap/domain/models/assembly/__init__.py similarity index 100% rename from src/julee/domain/models/assembly/__init__.py rename to src/julee/contrib/ceap/domain/models/assembly/__init__.py diff --git a/src/julee/domain/models/assembly/assembly.py b/src/julee/contrib/ceap/domain/models/assembly/assembly.py similarity index 100% rename from src/julee/domain/models/assembly/assembly.py rename to src/julee/contrib/ceap/domain/models/assembly/assembly.py diff --git a/src/julee/domain/models/assembly/tests/__init__.py b/src/julee/contrib/ceap/domain/models/assembly/tests/__init__.py similarity index 100% rename from src/julee/domain/models/assembly/tests/__init__.py rename to src/julee/contrib/ceap/domain/models/assembly/tests/__init__.py diff --git a/src/julee/domain/models/assembly/tests/factories.py b/src/julee/contrib/ceap/domain/models/assembly/tests/factories.py similarity index 94% rename from src/julee/domain/models/assembly/tests/factories.py rename to src/julee/contrib/ceap/domain/models/assembly/tests/factories.py index 6ba77d0a..b6300b9d 100644 --- a/src/julee/domain/models/assembly/tests/factories.py +++ b/src/julee/contrib/ceap/domain/models/assembly/tests/factories.py @@ -11,7 +11,7 @@ from factory.declarations import LazyFunction from factory.faker import Faker -from julee.domain.models.assembly import ( +from julee.contrib.ceap.domain.models.assembly import ( Assembly, AssemblyStatus, ) diff --git a/src/julee/domain/models/assembly/tests/test_assembly.py b/src/julee/contrib/ceap/domain/models/assembly/tests/test_assembly.py similarity index 99% rename from src/julee/domain/models/assembly/tests/test_assembly.py rename to src/julee/contrib/ceap/domain/models/assembly/tests/test_assembly.py index 63e2b012..7d17caf8 100644 --- a/src/julee/domain/models/assembly/tests/test_assembly.py +++ b/src/julee/contrib/ceap/domain/models/assembly/tests/test_assembly.py @@ -25,7 +25,7 @@ import pytest from pydantic import ValidationError -from julee.domain.models.assembly import Assembly, AssemblyStatus +from julee.contrib.ceap.domain.models.assembly import Assembly, AssemblyStatus from .factories import AssemblyFactory diff --git a/src/julee/domain/models/assembly_specification/__init__.py b/src/julee/contrib/ceap/domain/models/assembly_specification/__init__.py similarity index 100% rename from src/julee/domain/models/assembly_specification/__init__.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/__init__.py diff --git a/src/julee/domain/models/assembly_specification/assembly_specification.py b/src/julee/contrib/ceap/domain/models/assembly_specification/assembly_specification.py similarity index 100% rename from src/julee/domain/models/assembly_specification/assembly_specification.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/assembly_specification.py diff --git a/src/julee/domain/models/assembly_specification/knowledge_service_query.py b/src/julee/contrib/ceap/domain/models/assembly_specification/knowledge_service_query.py similarity index 100% rename from src/julee/domain/models/assembly_specification/knowledge_service_query.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/knowledge_service_query.py diff --git a/src/julee/domain/models/assembly_specification/tests/__init__.py b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/__init__.py similarity index 100% rename from src/julee/domain/models/assembly_specification/tests/__init__.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/tests/__init__.py diff --git a/src/julee/domain/models/assembly_specification/tests/factories.py b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/factories.py similarity index 97% rename from src/julee/domain/models/assembly_specification/tests/factories.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/tests/factories.py index 2c61e9a9..05e1fd1d 100644 --- a/src/julee/domain/models/assembly_specification/tests/factories.py +++ b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/factories.py @@ -12,7 +12,7 @@ from factory.declarations import LazyAttribute, LazyFunction from factory.faker import Faker -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, AssemblySpecificationStatus, KnowledgeServiceQuery, diff --git a/src/julee/domain/models/assembly_specification/tests/test_assembly_specification.py b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/test_assembly_specification.py similarity index 99% rename from src/julee/domain/models/assembly_specification/tests/test_assembly_specification.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/tests/test_assembly_specification.py index 52fb1c65..b52dad1f 100644 --- a/src/julee/domain/models/assembly_specification/tests/test_assembly_specification.py +++ b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/test_assembly_specification.py @@ -24,7 +24,7 @@ import pytest from pydantic import ValidationError -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, AssemblySpecificationStatus, ) diff --git a/src/julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/test_knowledge_service_query.py similarity index 99% rename from src/julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py rename to src/julee/contrib/ceap/domain/models/assembly_specification/tests/test_knowledge_service_query.py index 3a7961fb..90674551 100644 --- a/src/julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py +++ b/src/julee/contrib/ceap/domain/models/assembly_specification/tests/test_knowledge_service_query.py @@ -21,7 +21,7 @@ import pytest from pydantic import ValidationError -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( KnowledgeServiceQuery, ) diff --git a/src/julee/domain/models/custom_fields/__init__.py b/src/julee/contrib/ceap/domain/models/custom_fields/__init__.py similarity index 100% rename from src/julee/domain/models/custom_fields/__init__.py rename to src/julee/contrib/ceap/domain/models/custom_fields/__init__.py diff --git a/src/julee/domain/models/custom_fields/content_stream.py b/src/julee/contrib/ceap/domain/models/custom_fields/content_stream.py similarity index 100% rename from src/julee/domain/models/custom_fields/content_stream.py rename to src/julee/contrib/ceap/domain/models/custom_fields/content_stream.py diff --git a/src/julee/domain/models/custom_fields/tests/__init__.py b/src/julee/contrib/ceap/domain/models/custom_fields/tests/__init__.py similarity index 100% rename from src/julee/domain/models/custom_fields/tests/__init__.py rename to src/julee/contrib/ceap/domain/models/custom_fields/tests/__init__.py diff --git a/src/julee/domain/models/custom_fields/tests/test_custom_fields.py b/src/julee/contrib/ceap/domain/models/custom_fields/tests/test_custom_fields.py similarity index 96% rename from src/julee/domain/models/custom_fields/tests/test_custom_fields.py rename to src/julee/contrib/ceap/domain/models/custom_fields/tests/test_custom_fields.py index 041ef88a..ae8f60c1 100644 --- a/src/julee/domain/models/custom_fields/tests/test_custom_fields.py +++ b/src/julee/contrib/ceap/domain/models/custom_fields/tests/test_custom_fields.py @@ -17,7 +17,7 @@ import pytest -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) diff --git a/src/julee/domain/models/document/__init__.py b/src/julee/contrib/ceap/domain/models/document/__init__.py similarity index 100% rename from src/julee/domain/models/document/__init__.py rename to src/julee/contrib/ceap/domain/models/document/__init__.py diff --git a/src/julee/domain/models/document/document.py b/src/julee/contrib/ceap/domain/models/document/document.py similarity index 98% rename from src/julee/domain/models/document/document.py rename to src/julee/contrib/ceap/domain/models/document/document.py index b0bab6fb..6493e18c 100644 --- a/src/julee/domain/models/document/document.py +++ b/src/julee/contrib/ceap/domain/models/document/document.py @@ -15,7 +15,7 @@ from pydantic import BaseModel, Field, ValidationInfo, field_validator, model_validator -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) diff --git a/src/julee/domain/models/document/tests/__init__.py b/src/julee/contrib/ceap/domain/models/document/tests/__init__.py similarity index 100% rename from src/julee/domain/models/document/tests/__init__.py rename to src/julee/contrib/ceap/domain/models/document/tests/__init__.py diff --git a/src/julee/domain/models/document/tests/factories.py b/src/julee/contrib/ceap/domain/models/document/tests/factories.py similarity index 93% rename from src/julee/domain/models/document/tests/factories.py rename to src/julee/contrib/ceap/domain/models/document/tests/factories.py index ed52bc4b..aec9978a 100644 --- a/src/julee/domain/models/document/tests/factories.py +++ b/src/julee/contrib/ceap/domain/models/document/tests/factories.py @@ -13,10 +13,10 @@ from factory.declarations import LazyAttribute, LazyFunction from factory.faker import Faker -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus # Helper functions to generate content bytes consistently diff --git a/src/julee/domain/models/document/tests/test_document.py b/src/julee/contrib/ceap/domain/models/document/tests/test_document.py similarity index 99% rename from src/julee/domain/models/document/tests/test_document.py rename to src/julee/contrib/ceap/domain/models/document/tests/test_document.py index 48597b60..7c200bc6 100644 --- a/src/julee/domain/models/document/tests/test_document.py +++ b/src/julee/contrib/ceap/domain/models/document/tests/test_document.py @@ -24,7 +24,7 @@ import pytest from pydantic import ValidationError -from julee.domain.models.document import Document +from julee.contrib.ceap.domain.models.document import Document from .factories import ContentStreamFactory, DocumentFactory diff --git a/src/julee/domain/models/knowledge_service_config/__init__.py b/src/julee/contrib/ceap/domain/models/knowledge_service_config/__init__.py similarity index 100% rename from src/julee/domain/models/knowledge_service_config/__init__.py rename to src/julee/contrib/ceap/domain/models/knowledge_service_config/__init__.py diff --git a/src/julee/domain/models/knowledge_service_config/knowledge_service_config.py b/src/julee/contrib/ceap/domain/models/knowledge_service_config/knowledge_service_config.py similarity index 100% rename from src/julee/domain/models/knowledge_service_config/knowledge_service_config.py rename to src/julee/contrib/ceap/domain/models/knowledge_service_config/knowledge_service_config.py diff --git a/src/julee/domain/models/policy/__init__.py b/src/julee/contrib/ceap/domain/models/policy/__init__.py similarity index 100% rename from src/julee/domain/models/policy/__init__.py rename to src/julee/contrib/ceap/domain/models/policy/__init__.py diff --git a/src/julee/domain/models/policy/document_policy_validation.py b/src/julee/contrib/ceap/domain/models/policy/document_policy_validation.py similarity index 100% rename from src/julee/domain/models/policy/document_policy_validation.py rename to src/julee/contrib/ceap/domain/models/policy/document_policy_validation.py diff --git a/src/julee/domain/models/policy/policy.py b/src/julee/contrib/ceap/domain/models/policy/policy.py similarity index 100% rename from src/julee/domain/models/policy/policy.py rename to src/julee/contrib/ceap/domain/models/policy/policy.py diff --git a/src/julee/domain/models/policy/tests/__init__.py b/src/julee/contrib/ceap/domain/models/policy/tests/__init__.py similarity index 100% rename from src/julee/domain/models/policy/tests/__init__.py rename to src/julee/contrib/ceap/domain/models/policy/tests/__init__.py diff --git a/src/julee/domain/models/policy/tests/factories.py b/src/julee/contrib/ceap/domain/models/policy/tests/factories.py similarity index 95% rename from src/julee/domain/models/policy/tests/factories.py rename to src/julee/contrib/ceap/domain/models/policy/tests/factories.py index f463aba8..c6912b05 100644 --- a/src/julee/domain/models/policy/tests/factories.py +++ b/src/julee/contrib/ceap/domain/models/policy/tests/factories.py @@ -11,7 +11,7 @@ from factory.declarations import LazyFunction from factory.faker import Faker -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.policy import ( DocumentPolicyValidation, DocumentPolicyValidationStatus, ) diff --git a/src/julee/domain/models/policy/tests/test_document_policy_validation.py b/src/julee/contrib/ceap/domain/models/policy/tests/test_document_policy_validation.py similarity index 99% rename from src/julee/domain/models/policy/tests/test_document_policy_validation.py rename to src/julee/contrib/ceap/domain/models/policy/tests/test_document_policy_validation.py index 7c32b6ee..c4979582 100644 --- a/src/julee/domain/models/policy/tests/test_document_policy_validation.py +++ b/src/julee/contrib/ceap/domain/models/policy/tests/test_document_policy_validation.py @@ -18,7 +18,7 @@ import pytest from pydantic import ValidationError -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.policy import ( DocumentPolicyValidation, DocumentPolicyValidationStatus, ) diff --git a/src/julee/domain/models/policy/tests/test_policy.py b/src/julee/contrib/ceap/domain/models/policy/tests/test_policy.py similarity index 99% rename from src/julee/domain/models/policy/tests/test_policy.py rename to src/julee/contrib/ceap/domain/models/policy/tests/test_policy.py index 9d3349e0..1cb5eb2a 100644 --- a/src/julee/domain/models/policy/tests/test_policy.py +++ b/src/julee/contrib/ceap/domain/models/policy/tests/test_policy.py @@ -10,7 +10,7 @@ import pytest from pydantic import ValidationError -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.policy import ( Policy, PolicyStatus, ) diff --git a/src/julee/contrib/ceap/domain/repositories/__init__.py b/src/julee/contrib/ceap/domain/repositories/__init__.py new file mode 100644 index 00000000..b14fdceb --- /dev/null +++ b/src/julee/contrib/ceap/domain/repositories/__init__.py @@ -0,0 +1,24 @@ +""" +Repository protocols for the CEAP (Capture, Extract, Assemble, Publish) domain. + +This module exports all repository protocol interfaces for the CEAP workflow, +following the Clean Architecture patterns established in the Julee framework. +""" + +from .assembly import AssemblyRepository +from .assembly_specification import AssemblySpecificationRepository +from .document import DocumentRepository +from .document_policy_validation import DocumentPolicyValidationRepository +from .knowledge_service_config import KnowledgeServiceConfigRepository +from .knowledge_service_query import KnowledgeServiceQueryRepository +from .policy import PolicyRepository + +__all__ = [ + "DocumentRepository", + "AssemblyRepository", + "AssemblySpecificationRepository", + "KnowledgeServiceConfigRepository", + "KnowledgeServiceQueryRepository", + "PolicyRepository", + "DocumentPolicyValidationRepository", +] diff --git a/src/julee/domain/repositories/assembly.py b/src/julee/contrib/ceap/domain/repositories/assembly.py similarity index 93% rename from src/julee/domain/repositories/assembly.py rename to src/julee/contrib/ceap/domain/repositories/assembly.py index df58d54c..553ae7df 100644 --- a/src/julee/domain/repositories/assembly.py +++ b/src/julee/contrib/ceap/domain/repositories/assembly.py @@ -29,9 +29,8 @@ from typing import Protocol, runtime_checkable -from julee.domain.models import Assembly - -from .base import BaseRepository +from julee.contrib.ceap.domain.models import Assembly +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/domain/repositories/assembly_specification.py b/src/julee/contrib/ceap/domain/repositories/assembly_specification.py similarity index 93% rename from src/julee/domain/repositories/assembly_specification.py rename to src/julee/contrib/ceap/domain/repositories/assembly_specification.py index 980febd5..2dce9777 100644 --- a/src/julee/domain/repositories/assembly_specification.py +++ b/src/julee/contrib/ceap/domain/repositories/assembly_specification.py @@ -31,11 +31,10 @@ from typing import Protocol, runtime_checkable -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, ) - -from .base import BaseRepository +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/domain/repositories/document.py b/src/julee/contrib/ceap/domain/repositories/document.py similarity index 94% rename from src/julee/domain/repositories/document.py rename to src/julee/contrib/ceap/domain/repositories/document.py index 1ca25da2..72e6c33c 100644 --- a/src/julee/domain/repositories/document.py +++ b/src/julee/contrib/ceap/domain/repositories/document.py @@ -31,9 +31,8 @@ from typing import Protocol, runtime_checkable -from julee.domain.models import Document - -from .base import BaseRepository +from julee.contrib.ceap.domain.models import Document +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/domain/repositories/document_policy_validation.py b/src/julee/contrib/ceap/domain/repositories/document_policy_validation.py similarity index 93% rename from src/julee/domain/repositories/document_policy_validation.py rename to src/julee/contrib/ceap/domain/repositories/document_policy_validation.py index 079bc6da..21aca8ff 100644 --- a/src/julee/domain/repositories/document_policy_validation.py +++ b/src/julee/contrib/ceap/domain/repositories/document_policy_validation.py @@ -31,9 +31,8 @@ from typing import Protocol, runtime_checkable -from julee.domain.models.policy import DocumentPolicyValidation - -from .base import BaseRepository +from julee.contrib.ceap.domain.models.policy import DocumentPolicyValidation +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/domain/repositories/knowledge_service_config.py b/src/julee/contrib/ceap/domain/repositories/knowledge_service_config.py similarity index 93% rename from src/julee/domain/repositories/knowledge_service_config.py rename to src/julee/contrib/ceap/domain/repositories/knowledge_service_config.py index 882a2d99..d1e8cc3f 100644 --- a/src/julee/domain/repositories/knowledge_service_config.py +++ b/src/julee/contrib/ceap/domain/repositories/knowledge_service_config.py @@ -32,11 +32,10 @@ from typing import Protocol, runtime_checkable -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) - -from .base import BaseRepository +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/domain/repositories/knowledge_service_query.py b/src/julee/contrib/ceap/domain/repositories/knowledge_service_query.py similarity index 91% rename from src/julee/domain/repositories/knowledge_service_query.py rename to src/julee/contrib/ceap/domain/repositories/knowledge_service_query.py index 8c7bc8b0..02798510 100644 --- a/src/julee/domain/repositories/knowledge_service_query.py +++ b/src/julee/contrib/ceap/domain/repositories/knowledge_service_query.py @@ -22,11 +22,10 @@ from typing import Protocol, runtime_checkable -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( KnowledgeServiceQuery, ) - -from .base import BaseRepository +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/domain/repositories/policy.py b/src/julee/contrib/ceap/domain/repositories/policy.py similarity index 94% rename from src/julee/domain/repositories/policy.py rename to src/julee/contrib/ceap/domain/repositories/policy.py index 6482602e..e1be8152 100644 --- a/src/julee/domain/repositories/policy.py +++ b/src/julee/contrib/ceap/domain/repositories/policy.py @@ -31,9 +31,8 @@ from typing import Protocol, runtime_checkable -from julee.domain.models import Policy - -from .base import BaseRepository +from julee.contrib.ceap.domain.models import Policy +from julee.domain.repositories.base import BaseRepository @runtime_checkable diff --git a/src/julee/contrib/ceap/use_cases/__init__.py b/src/julee/contrib/ceap/use_cases/__init__.py new file mode 100644 index 00000000..dd8ccc5c --- /dev/null +++ b/src/julee/contrib/ceap/use_cases/__init__.py @@ -0,0 +1,17 @@ +""" +Use cases for the CEAP (Capture, Extract, Assemble, Publish) pipeline. + +This package contains use case classes that orchestrate business logic +for the CEAP workflow while remaining framework-agnostic, following +Clean Architecture principles. +""" + +from .extract_assemble_data import ExtractAssembleDataUseCase +from .initialize_system_data import InitializeSystemDataUseCase +from .validate_document import ValidateDocumentUseCase + +__all__ = [ + "ExtractAssembleDataUseCase", + "InitializeSystemDataUseCase", + "ValidateDocumentUseCase", +] diff --git a/src/julee/domain/use_cases/decorators.py b/src/julee/contrib/ceap/use_cases/decorators.py similarity index 100% rename from src/julee/domain/use_cases/decorators.py rename to src/julee/contrib/ceap/use_cases/decorators.py diff --git a/src/julee/domain/use_cases/extract_assemble_data.py b/src/julee/contrib/ceap/use_cases/extract_assemble_data.py similarity index 99% rename from src/julee/domain/use_cases/extract_assemble_data.py rename to src/julee/contrib/ceap/use_cases/extract_assemble_data.py index 9aa09d7d..25d1ceca 100644 --- a/src/julee/domain/use_cases/extract_assemble_data.py +++ b/src/julee/contrib/ceap/use_cases/extract_assemble_data.py @@ -18,7 +18,7 @@ import multihash from pydantic import BaseModel -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( Assembly, AssemblySpecification, AssemblyStatus, @@ -26,7 +26,7 @@ DocumentStatus, KnowledgeServiceQuery, ) -from julee.domain.repositories import ( +from julee.contrib.ceap.domain.repositories import ( AssemblyRepository, AssemblySpecificationRepository, DocumentRepository, diff --git a/src/julee/domain/use_cases/initialize_system_data.py b/src/julee/contrib/ceap/use_cases/initialize_system_data.py similarity index 97% rename from src/julee/domain/use_cases/initialize_system_data.py rename to src/julee/contrib/ceap/use_cases/initialize_system_data.py index e56090b7..1dc233ea 100644 --- a/src/julee/domain/use_cases/initialize_system_data.py +++ b/src/julee/contrib/ceap/use_cases/initialize_system_data.py @@ -22,24 +22,24 @@ import yaml from pydantic import BaseModel -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, AssemblySpecificationStatus, KnowledgeServiceQuery, ) -from julee.domain.models.document import Document, DocumentStatus -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) -from julee.domain.repositories.assembly_specification import ( +from julee.contrib.ceap.domain.repositories.assembly_specification import ( AssemblySpecificationRepository, ) -from julee.domain.repositories.document import DocumentRepository -from julee.domain.repositories.knowledge_service_config import ( +from julee.contrib.ceap.domain.repositories.document import DocumentRepository +from julee.contrib.ceap.domain.repositories.knowledge_service_config import ( KnowledgeServiceConfigRepository, ) -from julee.domain.repositories.knowledge_service_query import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_query import ( KnowledgeServiceQueryRepository, ) @@ -135,7 +135,7 @@ def _get_demo_fixture_path(self, filename: str) -> Path: Path to the fixture file """ current_file = Path(__file__) - julee_dir = current_file.parent.parent.parent + julee_dir = current_file.parent.parent.parent.parent return julee_dir / "fixtures" / filename async def _ensure_knowledge_service_configs_exist(self) -> None: @@ -838,7 +838,7 @@ def _create_document_from_fixture_data(self, doc_data: dict[str, Any]) -> Docume ) else: current_file = Path(__file__) - julee_dir = current_file.parent.parent.parent + julee_dir = current_file.parent.parent.parent.parent fixture_path = julee_dir / "fixtures" / doc_data["original_filename"] open_mode = "r" if is_text else "rb" diff --git a/src/julee/domain/use_cases/pointable_json_schema.py b/src/julee/contrib/ceap/use_cases/pointable_json_schema.py similarity index 100% rename from src/julee/domain/use_cases/pointable_json_schema.py rename to src/julee/contrib/ceap/use_cases/pointable_json_schema.py diff --git a/src/julee/domain/use_cases/tests/__init__.py b/src/julee/contrib/ceap/use_cases/tests/__init__.py similarity index 100% rename from src/julee/domain/use_cases/tests/__init__.py rename to src/julee/contrib/ceap/use_cases/tests/__init__.py diff --git a/src/julee/domain/use_cases/tests/test_extract_assemble_data.py b/src/julee/contrib/ceap/use_cases/tests/test_extract_assemble_data.py similarity index 99% rename from src/julee/domain/use_cases/tests/test_extract_assemble_data.py rename to src/julee/contrib/ceap/use_cases/tests/test_extract_assemble_data.py index 261b01b0..da1cb196 100644 --- a/src/julee/domain/use_cases/tests/test_extract_assemble_data.py +++ b/src/julee/contrib/ceap/use_cases/tests/test_extract_assemble_data.py @@ -13,7 +13,7 @@ import pytest -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( Assembly, AssemblySpecification, AssemblySpecificationStatus, @@ -24,8 +24,8 @@ KnowledgeServiceConfig, KnowledgeServiceQuery, ) -from julee.domain.models.knowledge_service_config import ServiceApi -from julee.domain.use_cases import ExtractAssembleDataUseCase +from julee.contrib.ceap.domain.models.knowledge_service_config import ServiceApi +from julee.contrib.ceap.use_cases import ExtractAssembleDataUseCase from julee.repositories.memory import ( MemoryAssemblyRepository, MemoryAssemblySpecificationRepository, diff --git a/src/julee/domain/use_cases/tests/test_initialize_system_data.py b/src/julee/contrib/ceap/use_cases/tests/test_initialize_system_data.py similarity index 98% rename from src/julee/domain/use_cases/tests/test_initialize_system_data.py rename to src/julee/contrib/ceap/use_cases/tests/test_initialize_system_data.py index 596b4a63..335f6de9 100644 --- a/src/julee/domain/use_cases/tests/test_initialize_system_data.py +++ b/src/julee/contrib/ceap/use_cases/tests/test_initialize_system_data.py @@ -15,11 +15,11 @@ import pytest import yaml -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) -from julee.domain.use_cases.initialize_system_data import ( +from julee.contrib.ceap.use_cases.initialize_system_data import ( InitializeSystemDataRequest, InitializeSystemDataUseCase, ) @@ -84,7 +84,7 @@ def fixture_configs() -> list[dict]: """Load actual configurations from YAML fixture file.""" # Get the fixture file path current_file = Path(__file__) - julee_dir = current_file.parent.parent.parent.parent + julee_dir = current_file.parent.parent.parent.parent.parent fixture_path = julee_dir / "fixtures" / "knowledge_service_configs.yaml" assert fixture_path.exists(), f"Fixture file not found: {fixture_path}" @@ -316,7 +316,7 @@ def test_fixture_file_exists_and_is_valid(self) -> None: """Test that the fixture file exists and contains valid data.""" # Get the fixture file path current_file = Path(__file__) - julee_dir = current_file.parent.parent.parent.parent + julee_dir = current_file.parent.parent.parent.parent.parent fixture_path = julee_dir / "fixtures" / "knowledge_service_configs.yaml" # Verify file exists diff --git a/src/julee/domain/use_cases/tests/test_pointable_json_schema.py b/src/julee/contrib/ceap/use_cases/tests/test_pointable_json_schema.py similarity index 99% rename from src/julee/domain/use_cases/tests/test_pointable_json_schema.py rename to src/julee/contrib/ceap/use_cases/tests/test_pointable_json_schema.py index 96c6065b..68c4c60a 100644 --- a/src/julee/domain/use_cases/tests/test_pointable_json_schema.py +++ b/src/julee/contrib/ceap/use_cases/tests/test_pointable_json_schema.py @@ -8,7 +8,7 @@ import pytest -from julee.domain.use_cases.pointable_json_schema import PointableJSONSchema +from julee.contrib.ceap.use_cases.pointable_json_schema import PointableJSONSchema class TestPointableJSONSchema: diff --git a/src/julee/domain/use_cases/tests/test_validate_document.py b/src/julee/contrib/ceap/use_cases/tests/test_validate_document.py similarity index 99% rename from src/julee/domain/use_cases/tests/test_validate_document.py rename to src/julee/contrib/ceap/use_cases/tests/test_validate_document.py index 26e642d7..e4c22948 100644 --- a/src/julee/domain/use_cases/tests/test_validate_document.py +++ b/src/julee/contrib/ceap/use_cases/tests/test_validate_document.py @@ -13,21 +13,21 @@ import pytest from pydantic import ValidationError -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( ContentStream, Document, DocumentStatus, KnowledgeServiceConfig, KnowledgeServiceQuery, ) -from julee.domain.models.knowledge_service_config import ServiceApi -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ServiceApi +from julee.contrib.ceap.domain.models.policy import ( DocumentPolicyValidation, DocumentPolicyValidationStatus, Policy, PolicyStatus, ) -from julee.domain.use_cases import ValidateDocumentUseCase +from julee.contrib.ceap.use_cases import ValidateDocumentUseCase from julee.repositories.memory import ( MemoryDocumentPolicyValidationRepository, MemoryDocumentRepository, diff --git a/src/julee/domain/use_cases/validate_document.py b/src/julee/contrib/ceap/use_cases/validate_document.py similarity index 99% rename from src/julee/domain/use_cases/validate_document.py rename to src/julee/contrib/ceap/use_cases/validate_document.py index 66679b25..2bd6e948 100644 --- a/src/julee/domain/use_cases/validate_document.py +++ b/src/julee/contrib/ceap/use_cases/validate_document.py @@ -17,7 +17,7 @@ import multihash from pydantic import BaseModel -from julee.domain.models import ( +from julee.contrib.ceap.domain.models import ( ContentStream, Document, DocumentPolicyValidation, @@ -25,10 +25,10 @@ KnowledgeServiceQuery, Policy, ) -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.policy import ( DocumentPolicyValidationStatus, ) -from julee.domain.repositories import ( +from julee.contrib.ceap.domain.repositories import ( DocumentPolicyValidationRepository, DocumentRepository, KnowledgeServiceConfigRepository, diff --git a/src/julee/domain/__init__.py b/src/julee/domain/__init__.py index d0ce5dcc..47a127af 100644 --- a/src/julee/domain/__init__.py +++ b/src/julee/domain/__init__.py @@ -12,11 +12,11 @@ Import domain components using package imports for convenience, e.g.: # Models from the models package - from julee.domain.models import Document, Assembly, Policy + from julee.contrib.ceap.domain.models import Document, Assembly, Policy # Repository protocols from the repositories package - from julee.domain.repositories import DocumentRepository + from julee.contrib.ceap.domain.repositories import DocumentRepository # Use cases from the use_cases package - from julee.domain.use_cases import ValidateDocumentUseCase + from julee.contrib.ceap.use_cases import ValidateDocumentUseCase """ diff --git a/src/julee/domain/models/__init__.py b/src/julee/domain/models/__init__.py index c746d486..6b40744b 100644 --- a/src/julee/domain/models/__init__.py +++ b/src/julee/domain/models/__init__.py @@ -1,48 +1,5 @@ """ Domain models for julee. -This package contains all the domain entities and value objects following -Clean Architecture principles. These models are framework-independent and -contain only business logic. - -Re-exports commonly used models for convenient importing: - from julee.domain.models import Document, Assembly, Policy +CEAP domain models have moved to julee.contrib.ceap.domain.models. """ - -# Document models -# Assembly models -from .assembly import Assembly, AssemblyStatus -from .assembly_specification import ( - AssemblySpecification, - AssemblySpecificationStatus, - KnowledgeServiceQuery, -) - -# Custom field types -from .custom_fields.content_stream import ContentStream -from .document import Document, DocumentStatus - -# Configuration models -from .knowledge_service_config import KnowledgeServiceConfig - -# Policy models -from .policy import DocumentPolicyValidation, Policy, PolicyStatus - -__all__ = [ - # Document models - "Document", - "DocumentStatus", - "ContentStream", - # Assembly models - "Assembly", - "AssemblyStatus", - "AssemblySpecification", - "AssemblySpecificationStatus", - "KnowledgeServiceQuery", - # Configuration models - "KnowledgeServiceConfig", - # Policy models - "Policy", - "PolicyStatus", - "DocumentPolicyValidation", -] diff --git a/src/julee/domain/repositories/__init__.py b/src/julee/domain/repositories/__init__.py index 7c921e8b..2e60c3ab 100644 --- a/src/julee/domain/repositories/__init__.py +++ b/src/julee/domain/repositories/__init__.py @@ -1,27 +1,12 @@ """ Repository protocols for julee domain. -This module exports all repository protocol interfaces for the Capture, -Extract, Assemble, Publish workflow, following the Clean Architecture -patterns established in the Fun-Police framework. +CEAP repository protocols have moved to julee.contrib.ceap.domain.repositories. +BaseRepository remains here as generic framework infrastructure. """ -from .assembly import AssemblyRepository -from .assembly_specification import AssemblySpecificationRepository from .base import BaseRepository -from .document import DocumentRepository -from .document_policy_validation import DocumentPolicyValidationRepository -from .knowledge_service_config import KnowledgeServiceConfigRepository -from .knowledge_service_query import KnowledgeServiceQueryRepository -from .policy import PolicyRepository __all__ = [ "BaseRepository", - "DocumentRepository", - "AssemblyRepository", - "AssemblySpecificationRepository", - "KnowledgeServiceConfigRepository", - "KnowledgeServiceQueryRepository", - "PolicyRepository", - "DocumentPolicyValidationRepository", ] diff --git a/src/julee/domain/use_cases/__init__.py b/src/julee/domain/use_cases/__init__.py index 8244cdd7..48264445 100644 --- a/src/julee/domain/use_cases/__init__.py +++ b/src/julee/domain/use_cases/__init__.py @@ -1,17 +1,5 @@ """ Use cases for julee domain. -This package contains use case classes that orchestrate business logic -for the Capture, Extract, Assemble, Publish workflow while remaining -framework-agnostic following Clean Architecture principles. +CEAP use cases have moved to julee.contrib.ceap.use_cases. """ - -from .extract_assemble_data import ExtractAssembleDataUseCase -from .initialize_system_data import InitializeSystemDataUseCase -from .validate_document import ValidateDocumentUseCase - -__all__ = [ - "ExtractAssembleDataUseCase", - "InitializeSystemDataUseCase", - "ValidateDocumentUseCase", -] diff --git a/src/julee/repositories/memory/assembly.py b/src/julee/repositories/memory/assembly.py index bb685758..7215a7c5 100644 --- a/src/julee/repositories/memory/assembly.py +++ b/src/julee/repositories/memory/assembly.py @@ -14,8 +14,8 @@ import logging from typing import Any -from julee.domain.models.assembly import Assembly -from julee.domain.repositories.assembly import AssemblyRepository +from julee.contrib.ceap.domain.models.assembly import Assembly +from julee.contrib.ceap.domain.repositories.assembly import AssemblyRepository from .base import MemoryRepositoryMixin diff --git a/src/julee/repositories/memory/assembly_specification.py b/src/julee/repositories/memory/assembly_specification.py index ec385661..addbbfc7 100644 --- a/src/julee/repositories/memory/assembly_specification.py +++ b/src/julee/repositories/memory/assembly_specification.py @@ -16,10 +16,10 @@ import logging from typing import Any -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, ) -from julee.domain.repositories.assembly_specification import ( +from julee.contrib.ceap.domain.repositories.assembly_specification import ( AssemblySpecificationRepository, ) diff --git a/src/julee/repositories/memory/document.py b/src/julee/repositories/memory/document.py index 83fea739..dc53c3fe 100644 --- a/src/julee/repositories/memory/document.py +++ b/src/julee/repositories/memory/document.py @@ -16,11 +16,11 @@ import logging from typing import Any -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document -from julee.domain.repositories.document import DocumentRepository +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.repositories.document import DocumentRepository from .base import MemoryRepositoryMixin diff --git a/src/julee/repositories/memory/document_policy_validation.py b/src/julee/repositories/memory/document_policy_validation.py index 1820f181..10eea6f9 100644 --- a/src/julee/repositories/memory/document_policy_validation.py +++ b/src/julee/repositories/memory/document_policy_validation.py @@ -15,8 +15,8 @@ import logging from typing import Any -from julee.domain.models.policy import DocumentPolicyValidation -from julee.domain.repositories.document_policy_validation import ( +from julee.contrib.ceap.domain.models.policy import DocumentPolicyValidation +from julee.contrib.ceap.domain.repositories.document_policy_validation import ( DocumentPolicyValidationRepository, ) diff --git a/src/julee/repositories/memory/knowledge_service_config.py b/src/julee/repositories/memory/knowledge_service_config.py index 006ce611..67b2491d 100644 --- a/src/julee/repositories/memory/knowledge_service_config.py +++ b/src/julee/repositories/memory/knowledge_service_config.py @@ -16,10 +16,10 @@ import logging from typing import Any -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) -from julee.domain.repositories.knowledge_service_config import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_config import ( KnowledgeServiceConfigRepository, ) diff --git a/src/julee/repositories/memory/knowledge_service_query.py b/src/julee/repositories/memory/knowledge_service_query.py index 1b840245..7effc4a2 100644 --- a/src/julee/repositories/memory/knowledge_service_query.py +++ b/src/julee/repositories/memory/knowledge_service_query.py @@ -15,10 +15,10 @@ import logging from typing import Any -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( KnowledgeServiceQuery, ) -from julee.domain.repositories.knowledge_service_query import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_query import ( KnowledgeServiceQueryRepository, ) diff --git a/src/julee/repositories/memory/policy.py b/src/julee/repositories/memory/policy.py index 50e0014f..3f3d379d 100644 --- a/src/julee/repositories/memory/policy.py +++ b/src/julee/repositories/memory/policy.py @@ -14,8 +14,8 @@ import logging from typing import Any -from julee.domain.models.policy import Policy -from julee.domain.repositories.policy import PolicyRepository +from julee.contrib.ceap.domain.models.policy import Policy +from julee.contrib.ceap.domain.repositories.policy import PolicyRepository from .base import MemoryRepositoryMixin diff --git a/src/julee/repositories/memory/tests/test_document.py b/src/julee/repositories/memory/tests/test_document.py index 16401de9..eb6c3717 100644 --- a/src/julee/repositories/memory/tests/test_document.py +++ b/src/julee/repositories/memory/tests/test_document.py @@ -10,10 +10,10 @@ import pytest -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus from julee.repositories.memory.document import ( MemoryDocumentRepository, ) diff --git a/src/julee/repositories/memory/tests/test_document_policy_validation.py b/src/julee/repositories/memory/tests/test_document_policy_validation.py index 935f5f0f..27ea4281 100644 --- a/src/julee/repositories/memory/tests/test_document_policy_validation.py +++ b/src/julee/repositories/memory/tests/test_document_policy_validation.py @@ -11,7 +11,7 @@ import pytest -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.policy import ( DocumentPolicyValidation, DocumentPolicyValidationStatus, ) diff --git a/src/julee/repositories/memory/tests/test_policy.py b/src/julee/repositories/memory/tests/test_policy.py index 90acf422..df8a6c93 100644 --- a/src/julee/repositories/memory/tests/test_policy.py +++ b/src/julee/repositories/memory/tests/test_policy.py @@ -10,7 +10,7 @@ import pytest -from julee.domain.models.policy import Policy, PolicyStatus +from julee.contrib.ceap.domain.models.policy import Policy, PolicyStatus from julee.repositories.memory.policy import MemoryPolicyRepository pytestmark = pytest.mark.unit diff --git a/src/julee/repositories/minio/assembly.py b/src/julee/repositories/minio/assembly.py index 641f559b..17afe95e 100644 --- a/src/julee/repositories/minio/assembly.py +++ b/src/julee/repositories/minio/assembly.py @@ -12,8 +12,8 @@ import logging -from julee.domain.models.assembly import Assembly -from julee.domain.repositories.assembly import AssemblyRepository +from julee.contrib.ceap.domain.models.assembly import Assembly +from julee.contrib.ceap.domain.repositories.assembly import AssemblyRepository from .client import MinioClient, MinioRepositoryMixin diff --git a/src/julee/repositories/minio/assembly_specification.py b/src/julee/repositories/minio/assembly_specification.py index 69a1d0d5..d5042152 100644 --- a/src/julee/repositories/minio/assembly_specification.py +++ b/src/julee/repositories/minio/assembly_specification.py @@ -15,10 +15,10 @@ import logging -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, ) -from julee.domain.repositories.assembly_specification import ( +from julee.contrib.ceap.domain.repositories.assembly_specification import ( AssemblySpecificationRepository, ) diff --git a/src/julee/repositories/minio/client.py b/src/julee/repositories/minio/client.py index e2d99372..cf8b6ff7 100644 --- a/src/julee/repositories/minio/client.py +++ b/src/julee/repositories/minio/client.py @@ -29,7 +29,7 @@ from urllib3.response import BaseHTTPResponse # Import ContentStream here to avoid circular imports -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) diff --git a/src/julee/repositories/minio/document.py b/src/julee/repositories/minio/document.py index f1ccc50d..b9813f08 100644 --- a/src/julee/repositories/minio/document.py +++ b/src/julee/repositories/minio/document.py @@ -21,11 +21,11 @@ from minio.error import S3Error # type: ignore[import-untyped] from pydantic import BaseModel, ConfigDict -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document -from julee.domain.repositories.document import DocumentRepository +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.repositories.document import DocumentRepository from .client import MinioClient, MinioRepositoryMixin diff --git a/src/julee/repositories/minio/document_policy_validation.py b/src/julee/repositories/minio/document_policy_validation.py index 85beb8eb..c5cba441 100644 --- a/src/julee/repositories/minio/document_policy_validation.py +++ b/src/julee/repositories/minio/document_policy_validation.py @@ -15,8 +15,8 @@ import logging -from julee.domain.models.policy import DocumentPolicyValidation -from julee.domain.repositories.document_policy_validation import ( +from julee.contrib.ceap.domain.models.policy import DocumentPolicyValidation +from julee.contrib.ceap.domain.repositories.document_policy_validation import ( DocumentPolicyValidationRepository, ) diff --git a/src/julee/repositories/minio/knowledge_service_config.py b/src/julee/repositories/minio/knowledge_service_config.py index 99955a92..228d4f66 100644 --- a/src/julee/repositories/minio/knowledge_service_config.py +++ b/src/julee/repositories/minio/knowledge_service_config.py @@ -15,10 +15,10 @@ import logging -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) -from julee.domain.repositories.knowledge_service_config import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_config import ( KnowledgeServiceConfigRepository, ) diff --git a/src/julee/repositories/minio/knowledge_service_query.py b/src/julee/repositories/minio/knowledge_service_query.py index 836d90e8..8b995fd3 100644 --- a/src/julee/repositories/minio/knowledge_service_query.py +++ b/src/julee/repositories/minio/knowledge_service_query.py @@ -16,10 +16,10 @@ import logging import uuid -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( KnowledgeServiceQuery, ) -from julee.domain.repositories.knowledge_service_query import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_query import ( KnowledgeServiceQueryRepository, ) diff --git a/src/julee/repositories/minio/policy.py b/src/julee/repositories/minio/policy.py index e1027d2c..a3d2bbff 100644 --- a/src/julee/repositories/minio/policy.py +++ b/src/julee/repositories/minio/policy.py @@ -14,8 +14,8 @@ import logging -from julee.domain.models.policy import Policy -from julee.domain.repositories.policy import PolicyRepository +from julee.contrib.ceap.domain.models.policy import Policy +from julee.contrib.ceap.domain.repositories.policy import PolicyRepository from .client import MinioClient, MinioRepositoryMixin diff --git a/src/julee/repositories/minio/tests/test_assembly.py b/src/julee/repositories/minio/tests/test_assembly.py index 74227424..ee4077de 100644 --- a/src/julee/repositories/minio/tests/test_assembly.py +++ b/src/julee/repositories/minio/tests/test_assembly.py @@ -10,7 +10,7 @@ import pytest -from julee.domain.models.assembly import Assembly, AssemblyStatus +from julee.contrib.ceap.domain.models.assembly import Assembly, AssemblyStatus from julee.repositories.minio.assembly import MinioAssemblyRepository from .fake_client import FakeMinioClient diff --git a/src/julee/repositories/minio/tests/test_assembly_specification.py b/src/julee/repositories/minio/tests/test_assembly_specification.py index df88c1d6..38eea85a 100644 --- a/src/julee/repositories/minio/tests/test_assembly_specification.py +++ b/src/julee/repositories/minio/tests/test_assembly_specification.py @@ -10,7 +10,7 @@ import pytest -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( AssemblySpecification, AssemblySpecificationStatus, ) diff --git a/src/julee/repositories/minio/tests/test_document.py b/src/julee/repositories/minio/tests/test_document.py index 0c669219..fe4534f5 100644 --- a/src/julee/repositories/minio/tests/test_document.py +++ b/src/julee/repositories/minio/tests/test_document.py @@ -15,10 +15,10 @@ import pytest from minio.error import S3Error -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus from julee.repositories.minio.document import MinioDocumentRepository from .fake_client import FakeMinioClient diff --git a/src/julee/repositories/minio/tests/test_document_policy_validation.py b/src/julee/repositories/minio/tests/test_document_policy_validation.py index e9d23493..2193c7d7 100644 --- a/src/julee/repositories/minio/tests/test_document_policy_validation.py +++ b/src/julee/repositories/minio/tests/test_document_policy_validation.py @@ -11,7 +11,7 @@ import pytest -from julee.domain.models.policy import ( +from julee.contrib.ceap.domain.models.policy import ( DocumentPolicyValidation, DocumentPolicyValidationStatus, ) diff --git a/src/julee/repositories/minio/tests/test_knowledge_service_config.py b/src/julee/repositories/minio/tests/test_knowledge_service_config.py index dc269174..6967945c 100644 --- a/src/julee/repositories/minio/tests/test_knowledge_service_config.py +++ b/src/julee/repositories/minio/tests/test_knowledge_service_config.py @@ -10,7 +10,7 @@ import pytest -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) diff --git a/src/julee/repositories/minio/tests/test_knowledge_service_query.py b/src/julee/repositories/minio/tests/test_knowledge_service_query.py index 8ae5a9d0..4f564d3d 100644 --- a/src/julee/repositories/minio/tests/test_knowledge_service_query.py +++ b/src/julee/repositories/minio/tests/test_knowledge_service_query.py @@ -10,7 +10,7 @@ import pytest -from julee.domain.models.assembly_specification import ( +from julee.contrib.ceap.domain.models.assembly_specification import ( KnowledgeServiceQuery, ) from julee.repositories.minio.knowledge_service_query import ( diff --git a/src/julee/repositories/minio/tests/test_policy.py b/src/julee/repositories/minio/tests/test_policy.py index 5a74e34b..4c4701d6 100644 --- a/src/julee/repositories/minio/tests/test_policy.py +++ b/src/julee/repositories/minio/tests/test_policy.py @@ -10,7 +10,7 @@ import pytest -from julee.domain.models.policy import Policy, PolicyStatus +from julee.contrib.ceap.domain.models.policy import Policy, PolicyStatus from julee.repositories.minio.policy import MinioPolicyRepository from .fake_client import FakeMinioClient diff --git a/src/julee/repositories/temporal/proxies.py b/src/julee/repositories/temporal/proxies.py index 78864cbb..333c2431 100644 --- a/src/julee/repositories/temporal/proxies.py +++ b/src/julee/repositories/temporal/proxies.py @@ -11,21 +11,21 @@ and retry policies. """ -from julee.domain.repositories.assembly import AssemblyRepository -from julee.domain.repositories.assembly_specification import ( +from julee.contrib.ceap.domain.repositories.assembly import AssemblyRepository +from julee.contrib.ceap.domain.repositories.assembly_specification import ( AssemblySpecificationRepository, ) -from julee.domain.repositories.document import DocumentRepository -from julee.domain.repositories.document_policy_validation import ( +from julee.contrib.ceap.domain.repositories.document import DocumentRepository +from julee.contrib.ceap.domain.repositories.document_policy_validation import ( DocumentPolicyValidationRepository, ) -from julee.domain.repositories.knowledge_service_config import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_config import ( KnowledgeServiceConfigRepository, ) -from julee.domain.repositories.knowledge_service_query import ( +from julee.contrib.ceap.domain.repositories.knowledge_service_query import ( KnowledgeServiceQueryRepository, ) -from julee.domain.repositories.policy import PolicyRepository +from julee.contrib.ceap.domain.repositories.policy import PolicyRepository # Import activity name bases from shared module from julee.repositories.temporal.activity_names import ( diff --git a/src/julee/services/knowledge_service/anthropic/knowledge_service.py b/src/julee/services/knowledge_service/anthropic/knowledge_service.py index 62857eab..80f7cede 100644 --- a/src/julee/services/knowledge_service/anthropic/knowledge_service.py +++ b/src/julee/services/knowledge_service/anthropic/knowledge_service.py @@ -20,8 +20,8 @@ from anthropic import AsyncAnthropic -from julee.domain.models.document import Document -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) diff --git a/src/julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py b/src/julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py index a97be081..14c33b99 100644 --- a/src/julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py +++ b/src/julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py @@ -12,11 +12,11 @@ import pytest -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document, DocumentStatus -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) diff --git a/src/julee/services/knowledge_service/factory.py b/src/julee/services/knowledge_service/factory.py index b14e0b3d..341d0036 100644 --- a/src/julee/services/knowledge_service/factory.py +++ b/src/julee/services/knowledge_service/factory.py @@ -8,8 +8,8 @@ import logging from typing import Any -from julee.domain.models.document import Document -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) @@ -86,8 +86,8 @@ def knowledge_service_factory( ValueError: If the service_api is not supported Example: - >>> from julee.domain import KnowledgeServiceConfig - >>> from julee.domain.models.knowledge_service_config import ( + >>> from julee.contrib.ceap.domain.models import KnowledgeServiceConfig + >>> from julee.contrib.ceap.domain.models.knowledge_service_config import ( ... ServiceApi ... ) >>> config = KnowledgeServiceConfig( diff --git a/src/julee/services/knowledge_service/knowledge_service.py b/src/julee/services/knowledge_service/knowledge_service.py index 8820c35e..53a0424b 100644 --- a/src/julee/services/knowledge_service/knowledge_service.py +++ b/src/julee/services/knowledge_service/knowledge_service.py @@ -22,11 +22,11 @@ from pydantic import BaseModel, Field if TYPE_CHECKING: - from julee.domain.models.knowledge_service_config import ( + from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) -from julee.domain.models.document import Document +from julee.contrib.ceap.domain.models.document import Document class QueryResult(BaseModel): diff --git a/src/julee/services/knowledge_service/memory/knowledge_service.py b/src/julee/services/knowledge_service/memory/knowledge_service.py index 7bab8e59..a08677bd 100644 --- a/src/julee/services/knowledge_service/memory/knowledge_service.py +++ b/src/julee/services/knowledge_service/memory/knowledge_service.py @@ -13,8 +13,8 @@ from datetime import datetime, timezone from typing import Any -from julee.domain.models.document import Document -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) diff --git a/src/julee/services/knowledge_service/memory/test_knowledge_service.py b/src/julee/services/knowledge_service/memory/test_knowledge_service.py index 2a7797ab..fbf9b644 100644 --- a/src/julee/services/knowledge_service/memory/test_knowledge_service.py +++ b/src/julee/services/knowledge_service/memory/test_knowledge_service.py @@ -11,11 +11,11 @@ import pytest -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document, DocumentStatus -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) diff --git a/src/julee/services/knowledge_service/test_factory.py b/src/julee/services/knowledge_service/test_factory.py index 3da3504b..7824be38 100644 --- a/src/julee/services/knowledge_service/test_factory.py +++ b/src/julee/services/knowledge_service/test_factory.py @@ -10,11 +10,11 @@ import pytest -from julee.domain.models.custom_fields.content_stream import ( +from julee.contrib.ceap.domain.models.custom_fields.content_stream import ( ContentStream, ) -from julee.domain.models.document import Document, DocumentStatus -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document, DocumentStatus +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ServiceApi, ) diff --git a/src/julee/services/temporal/activities.py b/src/julee/services/temporal/activities.py index 9ab549b0..050ce866 100644 --- a/src/julee/services/temporal/activities.py +++ b/src/julee/services/temporal/activities.py @@ -16,11 +16,11 @@ from typing_extensions import override -from julee.domain.models.document import Document -from julee.domain.models.knowledge_service_config import ( +from julee.contrib.ceap.domain.models.document import Document +from julee.contrib.ceap.domain.models.knowledge_service_config import ( KnowledgeServiceConfig, ) -from julee.domain.repositories.document import DocumentRepository +from julee.contrib.ceap.domain.repositories.document import DocumentRepository from julee.services.knowledge_service.factory import ( ConfigurableKnowledgeService, ) diff --git a/src/julee/util/validation/repository.py b/src/julee/util/validation/repository.py index 43a2ef43..e9b22373 100644 --- a/src/julee/util/validation/repository.py +++ b/src/julee/util/validation/repository.py @@ -35,7 +35,7 @@ def validate_repository_protocol(repository: object, protocol: type[P]) -> None: Example: >>> from julee.util.validation.repository import validate_repository_protocol - >>> from julee.domain.repositories import DocumentRepository + >>> from julee.contrib.ceap.domain.repositories import DocumentRepository >>> repo = MinioDocumentRepository() >>> validate_repository_protocol(repo, DocumentRepository) """ @@ -91,7 +91,7 @@ def ensure_repository_protocol(repository: object, protocol: type[P]) -> P: Example: >>> from julee.util.validation.repository import ensure_repository_protocol - >>> from julee.domain.repositories import DocumentRepository + >>> from julee.contrib.ceap.domain.repositories import DocumentRepository >>> repo = MinioDocumentRepository() >>> validated_repo = ensure_repository_protocol(repo, DocumentRepository) >>> # Type checker now knows validated_repo satisfies DocumentRepository diff --git a/src/julee/worker.py b/src/julee/worker.py index 53f9aa9f..bbd667f9 100644 --- a/src/julee/worker.py +++ b/src/julee/worker.py @@ -14,6 +14,10 @@ from temporalio.service import RPCError from temporalio.worker import Worker +from julee.contrib.ceap.apps.worker import ( + ExtractAssembleWorkflow, + ValidateDocumentWorkflow, +) from julee.repositories.minio.client import MinioClient from julee.repositories.temporal.activities import ( TemporalMinioAssemblyRepository, @@ -29,10 +33,6 @@ ) from julee.util.repos.temporal.data_converter import temporal_data_converter from julee.util.temporal.activities import collect_activities_from_instances -from julee.workflows import ( - ExtractAssembleWorkflow, - ValidateDocumentWorkflow, -) logger = logging.getLogger(__name__) diff --git a/src/julee/workflows/__init__.py b/src/julee/workflows/__init__.py index c2d8d26d..86416134 100644 --- a/src/julee/workflows/__init__.py +++ b/src/julee/workflows/__init__.py @@ -1,26 +1,5 @@ """ Temporal workflows for the julee domain. -This package contains Temporal workflow definitions that orchestrate -use cases with durability guarantees, retry logic, and state management. - -Workflows in this package: -- ExtractAssembleWorkflow: Orchestrates document extraction and assembly -- ValidateDocumentWorkflow: Orchestrates document validation against policies +CEAP workflows have moved to julee.contrib.ceap.apps.worker. """ - -from .extract_assemble import ( - EXTRACT_ASSEMBLE_RETRY_POLICY, - ExtractAssembleWorkflow, -) -from .validate_document import ( - VALIDATE_DOCUMENT_RETRY_POLICY, - ValidateDocumentWorkflow, -) - -__all__ = [ - "ExtractAssembleWorkflow", - "EXTRACT_ASSEMBLE_RETRY_POLICY", - "ValidateDocumentWorkflow", - "VALIDATE_DOCUMENT_RETRY_POLICY", -]