refactoring

This commit is contained in:
Matthias Bisping 2022-05-04 10:52:19 +02:00
parent a4079f6710
commit 630ed51b27

View File

@ -17,13 +17,8 @@ logger.setLevel(logging.WARNING)
def post_partial(url, data: Iterable[bytes], metadata: dict):
"""Posts `data` to `url` and aggregates responses for each element of `data`."""
input_data_to_result_data = rcompose(
poster_patcher(url),
flatten, # each analysis call returns an iterable. Can be empty, singleton or multi item. Hence, flatten.
)
return input_data_to_result_data(data, repeat(metadata))
pipe = pipeline(url, identity)
yield from pipe(data, repeat(metadata))
def submit_and_pickup(url, data, metadata):
@ -35,18 +30,26 @@ def submit_and_pickup(url, data, metadata):
- responses must have status code 206 for more responses coming and 204 for the last response already sent
"""
input_data_to_payload_stream = rcompose(
poster_patcher(f"{url}/submit"),
receiver = rcompose(
lift(itemgetter("pickup_endpoint")),
lift(lambda ep: f"{url}/{ep}"),
lift(stream_response_payloads),
flatten,
)
yield from input_data_to_payload_stream(data, repeat(metadata))
pipe = pipeline(f"{url}/submit", receiver)
yield from pipe(data, repeat(metadata))
def poster_patcher(url):
def pipeline(url, receiver):
return rcompose(
sender(url),
receiver,
flatten, # each analysis call returns an iterable. Can be empty, singleton or multi item. Hence, flatten.
)
def sender(url):
send_data_with_method_to_analyzer = starlift(dispatcher(url))