I can finally chain Processor calls

This commit is contained in:
2025-08-05 19:45:25 +02:00
parent 64e7c44a7d
commit f0d98d23ff
3 changed files with 695 additions and 2 deletions

View File

@@ -1,10 +1,12 @@
import ast
import logging
from abc import ABC, abstractmethod
from typing import Any, Generator
from components.admin.admin_db_manager import AdminDbManager
from core.Expando import Expando
from core.jira import Jira
from core.preprocessor import PlainTextPreprocessor
from core.utils import UnreferencedNamesVisitor
from utils.Datahelper import DataHelper
@@ -92,6 +94,8 @@ class TableDataProducer(DataProducer):
class JiraDataProducer(DataProducer):
"""Base class for data producers that emit data from Jira."""
logger = logging.getLogger("DataProcessor.Producer.Jira")
def __init__(self, session, settings_manager, component_id, request_type='issues', request='', fields=None):
super().__init__(component_id)
self._session = session
@@ -102,11 +106,20 @@ class JiraDataProducer(DataProducer):
self.db = AdminDbManager(session, settings_manager).jira
def emit(self, data: Any = None) -> Generator[Any, None, None]:
jira = Jira(self.db.user_name, self.db.api_token, fields=self.fields)
self.logger.debug(f"Emitting data from Jira: {self.request_type} {self.request} {self.fields}")
preprocessor = PlainTextPreprocessor()
preprocessed_fields = preprocessor.preprocess(self.fields, {"data": data})
self.logger.debug(f" {preprocessed_fields=}")
jira = Jira(self.db.user_name, self.db.api_token, fields=preprocessed_fields)
if not hasattr(jira, self.request_type):
raise ValueError(f"Invalid request type: {self.request_type}")
yield from getattr(jira, self.request_type)(self.request)
preprocessed_request = preprocessor.preprocess(self.request, {"data": data})
self.logger.debug(f" {preprocessed_request=}")
yield from getattr(jira, self.request_type)(preprocessed_request)
class DefaultDataFilter(DataFilter):