fixed bug introduced by aggr strat refac: singleton lists are now unpacked before upload via default merge function
This commit is contained in:
parent
d52ac8fd74
commit
2362619bef
@ -1,7 +1,7 @@
|
||||
from collections import deque
|
||||
from typing import Callable
|
||||
|
||||
from funcy import omit, filter
|
||||
from funcy import omit, filter, first
|
||||
from more_itertools import peekable
|
||||
|
||||
from pyinfra.server.dispatcher.dispatcher import Nothing, is_not_nothing
|
||||
@ -10,10 +10,16 @@ from pyinfra.visitor.strategies.response.response import ResponseStrategy
|
||||
from pyinfra.visitor.utils import build_storage_upload_info
|
||||
|
||||
|
||||
def default_merge(items):
|
||||
merged = list(items)
|
||||
merged = first(merged) if len(merged) == 1 else merged
|
||||
return merged
|
||||
|
||||
|
||||
class AggregationStorageStrategy(ResponseStrategy):
|
||||
def __init__(self, storage, merger: Callable = None):
|
||||
self.storage = storage
|
||||
self.merger = merger or list
|
||||
self.merger = merger or default_merge
|
||||
self.buffer = deque()
|
||||
self.response_files = deque()
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ from itertools import starmap, repeat, chain
|
||||
from operator import itemgetter
|
||||
|
||||
import pytest
|
||||
from funcy import compose, lpluck, first, second, pluck, lflatten
|
||||
from funcy import compose, first, second, pluck, lflatten
|
||||
|
||||
from pyinfra.default_objects import (
|
||||
get_callback,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user