julee.workflows.extract_assemble ================================ .. py:module:: julee.workflows.extract_assemble .. autoapi-nested-parse:: Temporal workflow for extract and assemble data operations. This workflow orchestrates the ExtractAssembleDataUseCase with Temporal's durability guarantees, providing retry logic, state management, and compensation for the complex document assembly process. Attributes ---------- .. autoapisummary:: julee.workflows.extract_assemble.EXTRACT_ASSEMBLE_RETRY_POLICY julee.workflows.extract_assemble.logger Classes ------- .. autoapisummary:: julee.workflows.extract_assemble.ExtractAssembleWorkflow Module Contents --------------- .. py:class:: ExtractAssembleWorkflow Temporal workflow for document extract and assemble operations. This workflow: 1. Receives document_id and assembly_specification_id 2. Orchestrates the ExtractAssembleDataUseCase with workflow-safe proxies 3. Provides durability and retry logic for long-running assembly 4. Returns the completed Assembly object The workflow remains framework-agnostic by delegating all business logic to the use case, while providing Temporal-specific orchestration concerns like retry policies, timeouts, and state management. .. py:method:: cancel_assembly(reason) :async: Signal handler to cancel the assembly process. :param reason: Reason for cancellation .. note:: This is a placeholder for future cancellation logic. Currently, we rely on Temporal's built-in workflow cancellation. .. py:method:: get_assembly_id() Query method to get the assembly ID once created .. py:method:: get_current_step() Query method to get the current workflow step .. py:method:: run(document_id, assembly_specification_id) :async: Execute the extract and assemble workflow. :param document_id: ID of the document to assemble :param assembly_specification_id: ID of the specification to use :returns: Completed Assembly object with assembled document :raises ValueError: If required entities are not found :raises RuntimeError: If assembly processing fails after retries .. py:attribute:: assembly_id :type: str | None :value: None .. py:attribute:: current_step :value: 'initialized' .. py:data:: EXTRACT_ASSEMBLE_RETRY_POLICY .. py:data:: logger