This commit is contained in:
Matthias Bisping 2022-06-19 00:53:53 +02:00
parent d69c3c32f7
commit 5978c7d09e
5 changed files with 7 additions and 6 deletions

View File

@ -1,6 +1,7 @@
import abc
# TODO: rename
class DispatchCallback(abc.ABC):
@abc.abstractmethod
def __call__(self, payload):

View File

@ -1,7 +1,7 @@
import abc
class ParsingStrategy(abc.ABC):
class BlobParsingStrategy(abc.ABC):
@abc.abstractmethod
def parse(self, data: bytes):
pass

View File

@ -4,12 +4,12 @@ from pyinfra.parser.parser_composer import EitherParserComposer
from pyinfra.parser.parsers.identity import IdentityBlobParser
from pyinfra.parser.parsers.json import JsonBlobParser
from pyinfra.parser.parsers.string import StringBlobParser
from pyinfra.visitor.strategies.parsing.parsing import ParsingStrategy
from pyinfra.visitor.strategies.blob_parsing.blob_parsing import BlobParsingStrategy
# TODO: Each analysis service should specify a custom parsing strategy for the type of data it expects to be found
# on the storage. This class is only a temporary trial-and-error->fallback type of solution.
class DynamicParsingStrategy(ParsingStrategy):
class DynamicParsingStrategy(BlobParsingStrategy):
def __init__(self):
self.parser = EitherParserComposer(JsonBlobParser(), StringBlobParser(), IdentityBlobParser())

View File

@ -5,8 +5,8 @@ from funcy import lflatten, compose
from pyinfra.storage.storage import Storage
from pyinfra.utils.func import lift
from pyinfra.visitor.strategies.download.download import DownloadStrategy
from pyinfra.visitor.strategies.parsing.dynamic import DynamicParsingStrategy
from pyinfra.visitor.strategies.parsing.parsing import ParsingStrategy
from pyinfra.visitor.strategies.blob_parsing.dynamic import DynamicParsingStrategy
from pyinfra.visitor.strategies.blob_parsing.blob_parsing import BlobParsingStrategy
from pyinfra.visitor.strategies.response.response import ResponseStrategy
from pyinfra.visitor.strategies.response.storage import StorageStrategy
from pyinfra.visitor.utils import standardize, get_download_strategy
@ -18,7 +18,7 @@ class QueueVisitor:
storage: Storage,
callback: Callable,
download_strategy: DownloadStrategy = None,
parsing_strategy: ParsingStrategy = None,
parsing_strategy: BlobParsingStrategy = None,
response_strategy: ResponseStrategy = None,
):
"""Processes queue messages that specify items on a storage to process with a given callback.