Coverage for /pythoncovmergedfiles/medio/medio/src/pydantic/pydantic/_internal/_serializers.py: 35%
20 statements
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-27 07:38 +0000
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-27 07:38 +0000
1from __future__ import annotations as _annotations
3from collections import deque
4from typing import Any, Pattern
6from pydantic_core import PydanticOmit
7from pydantic_core.core_schema import SerializationInfo, SerializerFunctionWrapHandler
10def pattern_serializer(input_value: Pattern[Any], info: SerializationInfo) -> str | Pattern[Any]:
11 if info.mode == 'json':
12 return input_value.pattern
13 else:
14 return input_value
17def serialize_deque(
18 __value: Any, __serialize: SerializerFunctionWrapHandler, __info: SerializationInfo
19) -> list[Any] | deque[Any]:
20 items = []
21 for index, item in enumerate(__value):
22 try:
23 v = __serialize(item, index)
24 except PydanticOmit:
25 pass
26 else:
27 items.append(v)
28 if __info.mode_is_json():
29 return items
30 else:
31 return deque(items)