Support typing.Any as a seralization annotation

This commit is contained in:
Michael Hudson-Doyle 2022-10-04 16:01:06 +13:00
parent ff8bb0c8ba
commit 97c276faca
2 changed files with 8 additions and 2 deletions

View File

@ -191,7 +191,7 @@ class Serializer:
if annotation is None:
context.assert_type(type(None))
return None
if annotation is inspect.Signature.empty:
if annotation is inspect.Signature.empty or annotation is typing.Any:
return context.cur
if attr.has(annotation):
return self._serialize_attr(annotation, context)
@ -258,7 +258,7 @@ class Serializer:
if annotation is None:
context.assert_type(type(None))
return None
if annotation is inspect.Signature.empty:
if annotation is inspect.Signature.empty or annotation is typing.Any:
return context.cur
if attr.has(annotation):
return self._deserialize_attr(annotation, context)

View File

@ -16,6 +16,7 @@
import attr
import datetime
import enum
import inspect
import random
import string
import typing
@ -143,6 +144,11 @@ class CommonSerializerTests:
compact=self.serializer.compact, serialize_enums_by="value")
self.assertSerialization(MyEnum, MyEnum.name, "value")
def test_serialize_any(self):
o = object()
self.assertSerialization(typing.Any, o, o)
self.assertSerialization(inspect.Signature.empty, o, o)
class TestSerializer(CommonSerializerTests, unittest.TestCase):