diff --git a/itemloaders/utils.py b/itemloaders/utils.py index 91a6556..4279b0f 100644 --- a/itemloaders/utils.py +++ b/itemloaders/utils.py @@ -20,7 +20,7 @@ def arg_to_iter(arg: Any) -> Iterable[Any]: """ if arg is None: return [] - if isinstance(arg, (list, tuple, Generator)): + if isinstance(arg, (list, tuple, set, Generator)): return arg return [arg] diff --git a/tests/test_nested_items.py b/tests/test_nested_items.py index fee9913..1536680 100644 --- a/tests/test_nested_items.py +++ b/tests/test_nested_items.py @@ -39,6 +39,13 @@ class TestItem: def test_dict(self): self._test_item({"foo": "bar"}) + def test_set(self): + item = {"foo", "bar"} + il = ItemLoader() + il.add_value("item_list", item) + + self.assertEqual(il.load_item(), {"item_list": ["foo", "bar"]}) + def test_scrapy_item(self): try: from scrapy import Field, Item