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

1from __future__ import annotations as _annotations 

2 

3from collections import deque 

4from typing import Any, Pattern 

5 

6from pydantic_core import PydanticOmit 

7from pydantic_core.core_schema import SerializationInfo, SerializerFunctionWrapHandler 

8 

9 

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 

15 

16 

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)