Coverage for tests/conftest.py: 96%

47 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-09 00:02 +0000

1import shutil 1fabcde

2import subprocess 1fabcde

3import sys 1fabcde

4from pathlib import Path 1fabcde

5from typing import Any, Callable, Dict, List, Union 1fabcde

6 

7import pytest 1fabcde

8from pydantic import BaseModel 1fabcde

9from sqlmodel import SQLModel 1fabcde

10from sqlmodel._compat import IS_PYDANTIC_V2 1fabcde

11from sqlmodel.main import default_registry 1fabcde

12 

13top_level_path = Path(__file__).resolve().parent.parent 1fabcde

14docs_src_path = top_level_path / "docs_src" 1fabcde

15 

16 

17@pytest.fixture() 1fabcde

18def clear_sqlmodel(): 1abcde

19 # Clear the tables in the metadata for the default base model 

20 SQLModel.metadata.clear() 1fabcde

21 # Clear the Models associated with the registry, to avoid warnings 

22 default_registry.dispose() 1fabcde

23 yield 1fabcde

24 SQLModel.metadata.clear() 1fabcde

25 default_registry.dispose() 1fabcde

26 

27 

28@pytest.fixture() 1fabcde

29def cov_tmp_path(tmp_path: Path): 1fabcde

30 yield tmp_path 1fabcde

31 for coverage_path in tmp_path.glob(".coverage*"): 1fabcde

32 coverage_destiny_path = top_level_path / coverage_path.name 

33 shutil.copy(coverage_path, coverage_destiny_path) 

34 

35 

36def coverage_run(*, module: str, cwd: Union[str, Path]) -> subprocess.CompletedProcess: 1fabcde

37 result = subprocess.run( 2GhHhIhJhKhLhMhNhOh

38 [ 

39 "coverage", 

40 "run", 

41 "--parallel-mode", 

42 "--source=docs_src,tests,sqlmodel", 

43 "-m", 

44 module, 

45 ], 

46 cwd=str(cwd), 

47 capture_output=True, 

48 encoding="utf-8", 

49 ) 

50 return result 2GhHhIhJhKhLhMhNhOh

51 

52 

53def get_testing_print_function( 1abcde

54 calls: List[List[Union[str, Dict[str, Any]]]], 

55) -> Callable[..., Any]: 

56 def new_print(*args): 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;f` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl =f?f~ ab]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr dgegfbgbCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrghbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtglbmb/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMgvbwbxbyb#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)gHbIbJbKb4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfhLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhTbUbVbWbXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

57 data = [] 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;f` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl =f?f~ ab]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr dgegfbgbCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrghbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtglbmb/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMgvbwbxbyb#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)gHbIbJbKb4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfhLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhTbUbVbWbXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

58 for arg in args: 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;f` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl =f?f~ ab]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr dgegfbgbCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrghbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtglbmb/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMgvbwbxbyb#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)gHbIbJbKb4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfhLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhTbUbVbWbXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

59 if isinstance(arg, BaseModel): 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;f` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl =f?f~ ab]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr dgegfbgbCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrghbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtglbmb/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMgvbwbxbyb#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)gHbIbJbKb4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfhLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhTbUbVbWbXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

60 data.append(arg.model_dump()) 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;fg h i 'b(b)b*b+b,b-bj k .b/b:b;b=b?b@b[bl =f?f]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgm n o ncocpcqcrcsctcp q ucvcwcxcyczcAcBcr dgegCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrgs t u v w x Zc0c1c2c3c4c5cy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtg/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgE F G H I J K L M zdAdBdCdDdEdFdGdHdIdJdKdLdMdN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMg#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gW X Y Z 0 1 2 3 4 seteuevewexeyezeAeBeCeDeEeFe5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)g4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfh' ( ) * + , - . / lfmfnfofpfqfrfsftfufvfwfxfyf: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

61 elif isinstance(arg, list): 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl ~ ab]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr fbgbCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYchbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D lbmb/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V vbwbxbyb#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqerezbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % HbIbJbKb4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ TbUbVbWbXfYfZf0f1f2f3f4f

62 new_list = [] 2` { | } g h i j k l ~ abbbcbdbebm n o p q r fbgbhbibjbkbs t u v w x y z A B C D lbmbnbobpbqbrbsbtbubE F G H I J K L M N O P Q R S T U V vbwbxbybzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % HbIbJbKbLbMbNbObPbQbRbSb' ( ) * + , - . / : ; = ? @ [ ] ^ _ TbUbVbWb

63 for item in arg: 2` { | } g h i j k l ~ abbbcbdbebm n o p q r fbgbhbibjbkbs t u v w x y z A B C D lbmbnbobpbqbrbsbtbubE F G H I J K L M N O P Q R S T U V vbwbxbybzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % HbIbJbKbLbMbNbObPbQbRbSb' ( ) * + , - . / : ; = ? @ [ ] ^ _ TbUbVbWb

64 if isinstance(item, BaseModel): 2` { | } g h i j k l ~ abbbcbdbebm n o p q r fbgbhbibjbkbs t u v w x y z A B C D lbmbnbobpbqbrbsbtbubE F G H I J K L M N O P Q R S T U V vbwbxbybzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % HbIbJbKbLbMbNbObPbQbRbSb' ( ) * + , - . / : ; = ? @ [ ] ^ _ TbUbVbWb

65 new_list.append(item.model_dump()) 2` { | } g h i j k l ~ abbbcbdbebm n o p q r fbgbhbibjbkbs t u v w x y z A B C D lbmbnbobpbqbrbsbtbubE F G H I J K L M N O P Q R S T U V vbwbxbybzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % HbIbJbKbLbMbNbObPbQbRbSb' ( ) * + , - . / : ; = ? @ [ ] ^ _ TbUbVbWb

66 data.append(new_list) 2` { | } g h i j k l ~ abbbcbdbebm n o p q r fbgbhbibjbkbs t u v w x y z A B C D lbmbnbobpbqbrbsbtbubE F G H I J K L M N O P Q R S T U V vbwbxbybzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % HbIbJbKbLbMbNbObPbQbRbSb' ( ) * + , - . / : ; = ? @ [ ] ^ _ TbUbVbWb

67 else: 

68 data.append(arg) 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%bg h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl ]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr CcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D /c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V #d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % 4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkf' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ XfYfZf0f1f2f3f4f

69 calls.append(data) 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;f` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl =f?f~ ab]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr dgegfbgbCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrghbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtglbmb/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMgvbwbxbyb#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)gHbIbJbKb4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfhLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhTbUbVbWbXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

70 

71 return new_print 2XbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b:f;f` { | } g h i 'b5f(b)b*b+b,b-b6fj k .b/b:b;b=b?b@b[bl =f?f~ ab]b^b_b`b@f[f]f^f_f`f{f|f}f~fag{b|b}b~bacbcccdcecfcgchcicjckclcmcbgcgbbcbdbebm n o nc7focpcqcrcsctc8fp q ucvcwcxcyczcAcBcr dgegfbgbCcDcEcFcfggghgigjgkglgmgngogpgGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcqgrghbibjbkbs t u v w x Zc9f0c1c2c3c4c5c!fy z A B 6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.cC D sgtglbmb/c:c;c=cugvgwgxgygzgAgBgCgDgEg?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydFgGgHgIgnbobpbqbrbsbtbubE F G H I J K L M zdAd#f$fBdCdDdEdFdGdHdIdJdKdLdMd%f'fN O P Q R S NdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!dT U V JgKgLgMgvbwbxbyb#d$d%d'd(d)d*d+dNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqere9g!g#g$gzbAbBbCbDbEbFbGbW X Y Z 0 1 2 3 4 sete(f)fuevewexeyezeAeBeCeDeEeFe*f+f5 6 7 8 9 ! GeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e# $ % %g'g(g)gHbIbJbKb4e5e6e7e8e9e!e#e*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbh$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkfchdhehfhLbMbNbObPbQbRbSb' ( ) * + , - . / lfmf,f-fnfofpfqfrfsftfufvfwfxfyf.f/f: ; = ? @ [ zfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf] ^ _ ghhhihjhTbUbVbWbXfYfZf0f1f2f3f4fkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFh

72 

73 

74needs_pydanticv2 = pytest.mark.skipif(not IS_PYDANTIC_V2, reason="requires Pydantic v2") 1fabcde

75needs_pydanticv1 = pytest.mark.skipif(IS_PYDANTIC_V2, reason="requires Pydantic v1") 1fabcde

76 

77needs_py39 = pytest.mark.skipif(sys.version_info < (3, 9), reason="requires python3.9+") 1fabcde

78needs_py310 = pytest.mark.skipif( 1fabcde

79 sys.version_info < (3, 10), reason="requires python3.10+" 

80)