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 collections import deque
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
from funcy import omit, filter
|
from funcy import omit, filter, first
|
||||||
from more_itertools import peekable
|
from more_itertools import peekable
|
||||||
|
|
||||||
from pyinfra.server.dispatcher.dispatcher import Nothing, is_not_nothing
|
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
|
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):
|
class AggregationStorageStrategy(ResponseStrategy):
|
||||||
def __init__(self, storage, merger: Callable = None):
|
def __init__(self, storage, merger: Callable = None):
|
||||||
self.storage = storage
|
self.storage = storage
|
||||||
self.merger = merger or list
|
self.merger = merger or default_merge
|
||||||
self.buffer = deque()
|
self.buffer = deque()
|
||||||
self.response_files = deque()
|
self.response_files = deque()
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from itertools import starmap, repeat, chain
|
|||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from funcy import compose, lpluck, first, second, pluck, lflatten
|
from funcy import compose, first, second, pluck, lflatten
|
||||||
|
|
||||||
from pyinfra.default_objects import (
|
from pyinfra.default_objects import (
|
||||||
get_callback,
|
get_callback,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user