I can finally chain Processor calls
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user