8000 Fix bug that set-like types aren't serialized · nirum-lang/nirum-python@098b1bd · GitHub
[go: up one dir, main page]

Skip to content

Commit 098b1bd

committed
Fix bug that set-like types aren't serialized
1 parent ca4f214 commit 098b1bd

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

CHANGES.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
Changelog
22
=========
33

4+
Version 0.4.2
5+
-------------
6+
7+
To be released.
8+
9+
- Fixed a serialization bug that other set-like (i.e. ``collections.Set``) types
10+
than Python built-in ``set`` hadn't been reduced to simpler forms so that they
11+
can be encoded to JSON.
12+
13+
14+
415
Version 0.4.1
516
-------------
617

nirum/serialize.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def serialize_meta(data):
6666
d = data.isoformat()
6767
elif isinstance(data, decimal.Decimal) or isinstance(data, uuid.UUID):
6868
d = str(data)
69-
elif isinstance(data, set) or isinstance(data, list):
69+
elif isinstance(data, collections.Set) or isinstance(data, list):
7070
d = [serialize_meta(e) for e in data]
7171
elif isinstance(data, collections.Mapping):
7272
d = [

tests/serialize_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ def test_serialize_meta_set_of_record(fx_record_type, fx_unboxed_type,
101101
serialize_result = serialize_meta({record, record2})
102102
assert record.__nirum_serialize__() in serialize_result
103103
assert record2.__nirum_serialize__() in serialize_result
104+
assert (sorted(serialize_meta(frozenset([record, record2])), key=repr) ==
105+
sorted(serialize_result, key=repr))
104106

105107

106108
def test_serialize_meta_map(fx_point):

0 commit comments

Comments
 (0)
0