return rv
+@asyncfiltervariant(filters.do_slice)
+async def do_slice(value, slices, fill_with=None):
+ return filters.do_slice(await auto_to_seq(value), slices, fill_with)
+
+
ASYNC_FILTERS = {
'first': do_first,
'groupby': do_groupby,
'select': do_select,
'selectattr': do_selectattr,
'sum': do_sum,
+ 'slice': do_slice,
}
'bar': 1,
'baz': 18,
}) == '42'
+
+
+@mark_dualiter('items', lambda: range(10))
+def test_slice(env_async, items):
+ tmpl = env_async.from_string('{{ items()|slice(3)|list }}|'
+ '{{ items()|slice(3, "X")|list }}')
+ out = tmpl.render(items=items)
+ assert out == ("[[0, 1, 2, 3], [4, 5, 6], [7, 8, 9]]|"
+ "[[0, 1, 2, 3], [4, 5, 6, 'X'], [7, 8, 9, 'X']]")