Coverage for tests/conftest.py: 96%

47 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-03-24 00:02 +0000

1import shutil 1abcdef

2import subprocess 1abcdef

3import sys 1abcdef

4from pathlib import Path 1abcdef

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

6 

7import pytest 1abcdef

8from pydantic import BaseModel 1abcdef

9from sqlmodel import SQLModel 1abcdef

10from sqlmodel._compat import IS_PYDANTIC_V2 1abcdef

11from sqlmodel.main import default_registry 1abcdef

12 

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

14docs_src_path = top_level_path / "docs_src" 1abcdef

15 

16 

17@pytest.fixture() 1abcdef

18def clear_sqlmodel(): 1abcdef

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

20 SQLModel.metadata.clear() 1abcdef

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

22 default_registry.dispose() 1abcdef

23 yield 1abcdef

24 SQLModel.metadata.clear() 1abcdef

25 default_registry.dispose() 1abcdef

26 

27 

28@pytest.fixture() 1abcdef

29def cov_tmp_path(tmp_path: Path): 1abcdef

30 yield tmp_path 1abcdef

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

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: 1abcdef

37 result = subprocess.run( 2yiziAiBiCiDiEiFiGiHi

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 2yiziAiBiCiDiEiFiGiHi

51 

52 

53def get_testing_print_function( 1abcdef

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

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

56 def new_print(*args): 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1ghbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl 2g3glbmbkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+grbsb4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahBbCbDbEbTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhNbObPbQbMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4hRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hZb0b1b2bFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibi#b$b%b'bygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

57 data = [] 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1ghbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl 2g3glbmbkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+grbsb4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahBbCbDbEbTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhNbObPbQbMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4hRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hZb0b1b2bFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibi#b$b%b'bygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

58 for arg in args: 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1ghbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl 2g3glbmbkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+grbsb4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahBbCbDbEbTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhNbObPbQbMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4hRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hZb0b1b2bFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibi#b$b%b'bygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

59 if isinstance(arg, BaseModel): 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1ghbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl 2g3glbmbkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+grbsb4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahBbCbDbEbTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhNbObPbQbMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4hRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hZb0b1b2bFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibi#b$b%b'bygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

60 data.append(arg.model_dump()) 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1gg h i `b{b|b}b~bacbcj k ccdcecfcgchcicjcl 2g3gkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gm n o p q r HcIcJcKcLcMcNcs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+g4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gy z A B C D E F G hdidjdkdldmdndodpdqdrdsdtdudH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhQ R S T U V W X Y aebecedeeefegeheiejekelemeneZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4h8 9 ! # $ % ' ( ) ^e_e`e{e|e}e~eafbfcfdfefffgf* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h? @ [ ] ^ _ ` { | :f;f=f?f@f[f]f^f_f`f{f|f}f~f} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibiygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

61 elif isinstance(arg, list): 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bhbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl lbmbkclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x rbsb4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P BbCbDbEbTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!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}d~dFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 NbObPbQbMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]eRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = Zb0b1b2bFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb#b$b%b'bygzgAgBgCgDgEgFg

62 new_list = [] 2hbibjbkbg h i j k l lbmbnbobpbqbm n o p q r s t u v w x rbsbtbubvbwbxbybzbAby z A B C D E F G H I J K L M N O P BbCbDbEbFbGbHbIbJbKbLbMbQ R S T U V W X Y Z 0 1 2 3 4 5 6 7 NbObPbQbRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) * + , - . / : ; = Zb0b1b2b3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgb#b$b%b'b

63 for item in arg: 2hbibjbkbg h i j k l lbmbnbobpbqbm n o p q r s t u v w x rbsbtbubvbwbxbybzbAby z A B C D E F G H I J K L M N O P BbCbDbEbFbGbHbIbJbKbLbMbQ R S T U V W X Y Z 0 1 2 3 4 5 6 7 NbObPbQbRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) * + , - . / : ; = Zb0b1b2b3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgb#b$b%b'b

64 if isinstance(item, BaseModel): 2hbibjbkbg h i j k l lbmbnbobpbqbm n o p q r s t u v w x rbsbtbubvbwbxbybzbAby z A B C D E F G H I J K L M N O P BbCbDbEbFbGbHbIbJbKbLbMbQ R S T U V W X Y Z 0 1 2 3 4 5 6 7 NbObPbQbRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) * + , - . / : ; = Zb0b1b2b3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgb#b$b%b'b

65 new_list.append(item.model_dump()) 2hbibjbkbg h i j k l lbmbnbobpbqbm n o p q r s t u v w x rbsbtbubvbwbxbybzbAby z A B C D E F G H I J K L M N O P BbCbDbEbFbGbHbIbJbKbLbMbQ R S T U V W X Y Z 0 1 2 3 4 5 6 7 NbObPbQbRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) * + , - . / : ; = Zb0b1b2b3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgb#b$b%b'b

66 data.append(new_list) 2hbibjbkbg h i j k l lbmbnbobpbqbm n o p q r s t u v w x rbsbtbubvbwbxbybzbAby z A B C D E F G H I J K L M N O P BbCbDbEbFbGbHbIbJbKbLbMbQ R S T U V W X Y Z 0 1 2 3 4 5 6 7 NbObPbQbRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) * + , - . / : ; = Zb0b1b2b3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgb#b$b%b'b

67 else: 

68 data.append(arg) 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl kclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x 4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdy z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P TdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!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}d~dQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 MeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = FfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgbygzgAgBgCgDgEgFg

69 calls.append(data) 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1ghbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl 2g3glbmbkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+grbsb4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahBbCbDbEbTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhNbObPbQbMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4hRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hZb0b1b2bFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibi#b$b%b'bygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

70 

71 return new_print 2(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b0g1ghbibjbkbg h i `bGg{b|b}b~bacbcHgj k ccdcecfcgchcicjcl 2g3glbmbkclcmcnc4g5g6g7g8g9g!g#g$g%g'gocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGc(g)gnbobpbqbm n o p q r HcIgIcJcKcLcMcNcJgs t u v OcPcQcRcScTcUcVcWcXcYcZc0c1c2c3cw x *g+grbsb4c5c6c7c,g-g.g/g:g;g=g?g@g[g]g8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgd^g_g`g{gtbubvbwbxbybzbAby z A B C D E F G hdidKgLgjdkdldmdndodpdqdrdsdtdudMgNgH I J K L M vdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdN O P |g}g~gahBbCbDbEbTdUdVdWdXdYdZd0dbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwh1d2d3d4d5d6d7d8d9d!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}d~dxhyhzhAhFbGbHbIbJbKbLbMbQ R S T U V W X Y aebeOgPgcedeeefegeheiejekelemeneQgRgZ 0 1 2 3 4 oepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLe5 6 7 BhChDhEhNbObPbQbMeNeOePeQeReSeTeFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0hUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e1h2h3h4hRbSbTbUbVbWbXbYb8 9 ! # $ % ' ( ) ^e_eSgTg`e{e|e}e~eafbfcfdfefffgfUgVg* + , - . / hfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEf: ; = 5h6h7h8hZb0b1b2bFfGfHfIfJfKfLfMf9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^hNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f_h`h{h|h3b4b5b6b7b8b9b!b? @ [ ] ^ _ ` { | :f;fWgXg=f?f@f[f]f^f_f`f{f|f}f~fYgZg} ~ abbbcbdbagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgebfbgb}h~haibi#b$b%b'bygzgAgBgCgDgEgFgcidieifigihiiijikiliminioipiqirisitiuiviwixi

72 

73 

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

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

76 

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

78needs_py310 = pytest.mark.skipif( 1abcdef

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

80)