import dataclasses
-from collections import defaultdict
+from collections import defaultdict, deque
from enum import Enum
from pathlib import PurePath
from types import GeneratorType
)
encoded_dict[encoded_key] = encoded_value
return encoded_dict
- if isinstance(obj, (list, set, frozenset, GeneratorType, tuple)):
+ if isinstance(obj, (list, set, frozenset, GeneratorType, tuple, deque)):
encoded_list = []
for item in obj:
encoded_list.append(
+from collections import deque
from dataclasses import dataclass
from datetime import datetime, timezone
from enum import Enum
def test_encode_root():
model = ModelWithRoot(__root__="Foo")
assert jsonable_encoder(model) == "Foo"
+
+
+def test_encode_deque_encodes_child_models():
+ class Model(BaseModel):
+ test: str
+
+ dq = deque([Model(test="test")])
+
+ assert jsonable_encoder(dq)[0]["test"] == "test"