From 79e8ba03777d815cafbc61db52428891ac83ba86 Mon Sep 17 00:00:00 2001 From: David Hewitt Date: Mon, 15 Sep 2025 15:06:05 +0100 Subject: [PATCH] add benchmark for wrap serializer --- tests/benchmarks/test_serialization_micro.py | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/benchmarks/test_serialization_micro.py b/tests/benchmarks/test_serialization_micro.py index 687c48a7e..a7c7a54ef 100644 --- a/tests/benchmarks/test_serialization_micro.py +++ b/tests/benchmarks/test_serialization_micro.py @@ -482,3 +482,25 @@ def test_dataclass_serialization_json(benchmark): def test_dataclass_to_json(benchmark): dc = Foo(a='hello', b=b'more', c=123, d=1.23) benchmark(to_json, dc) + + +@pytest.mark.benchmark(group='function') +def test_function_wrap_python(benchmark): + def f(value, serializer, _info): + return f'result={serializer(len(value))}' + + s = SchemaSerializer( + core_schema.int_schema(serialization=core_schema.wrap_serializer_function_ser_schema(f, info_arg=True)) + ) + benchmark(s.to_python, 'foo') + + +@pytest.mark.benchmark(group='function') +def test_function_wrap_json(benchmark): + def f(value, serializer, _info): + return f'result={serializer(len(value))}' + + s = SchemaSerializer( + core_schema.int_schema(serialization=core_schema.wrap_serializer_function_ser_schema(f, info_arg=True)) + ) + benchmark(s.to_json, 'foo')