plexus.reports.service module
- class plexus.reports.service.ReportBlockExtractor
Bases:
BaseRenderer- __init__()
- block_code(token, state)
- finalize(data)
- heading(token, state)
- name = 'report_block_extractor'
- paragraph(token, state)
- render_tokens(tokens, state)
- text(token, state)
- plexus.reports.service.generate_report(task_id: str)
Celery task handler for generating a report based on a Task record. Fetches task, initializes tracker, calls core logic, and sets final task status.
- Args:
task_id: The ID of the Task record triggering this report generation.
- Returns:
None. Task status indicates success or failure.
- plexus.reports.service.generate_report_with_parameters(config_id: str, parameters: Dict[str, Any], account_id: str, client: PlexusDashboardClient, trigger: str = 'api', task_object: Task | None = None, log_prefix: str | None = None) Tuple[str, str | None, str]
Complete report generation workflow with parameter handling.
This is the shared implementation used by both CLI and MCP interfaces. It handles parameter validation, Jinja2 rendering, task creation, and report generation.
- Args:
config_id: Report configuration ID parameters: Dictionary of parameter values (pre-collected, not interactive) account_id: Account ID owning the report client: Dashboard API client trigger: Source of the generation request (cli_sync, mcp, etc.) task_object: Optional existing Task object. If None, creates new task. log_prefix: Optional log prefix override
- Returns:
Tuple of (report_id, error_message, task_id) - report_id: ID of created report - error_message: First block error message (None if success) - task_id: ID of the task tracking this generation
- Raises:
ValueError: If configuration not found, parameters invalid, or rendering fails