import uuid from app.imports.celery_app import celery_app @celery_app.task(name="imports.process_statement", bind=True, max_retries=3, default_retry_delay=10) def process_statement_task(self, document_id: str, space_id: str) -> str: from app.imports.service import process_statement_document try: status = process_statement_document(uuid.UUID(document_id), uuid.UUID(space_id)) if status == "failed": raise RuntimeError("statement parsing failed") except Exception as exc: if self.request.retries < 3: raise self.retry(exc=exc) from exc raise return document_id def enqueue_process_statement(document_id: uuid.UUID, space_id: uuid.UUID) -> None: process_statement_task.delay(str(document_id), str(space_id))