Coverage for tests/conftest.py: 97%

58 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-10-27 00:03 +0000

1import shutil 1abcdefghij

2import subprocess 1abcdefghij

3import sys 1abcdefghij

4from dataclasses import dataclass, field 1abcdefghij

5from pathlib import Path 1abcdefghij

6from typing import Any, Callable, Dict, Generator, List, Union 1abcdefghij

7from unittest.mock import patch 1abcdefghij

8 

9import pytest 1abcdefghij

10from pydantic import BaseModel 1abcdefghij

11from sqlmodel import SQLModel 1abcdefghij

12from sqlmodel._compat import IS_PYDANTIC_V2 1abcdefghij

13from sqlmodel.main import default_registry 1abcdefghij

14 

15top_level_path = Path(__file__).resolve().parent.parent 1abcdefghij

16docs_src_path = top_level_path / "docs_src" 1abcdefghij

17 

18 

19@pytest.fixture(autouse=True) 1abcdefghij

20def clear_sqlmodel() -> Any: 1abcdefghij

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

22 SQLModel.metadata.clear() 1abcdefghij

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

24 default_registry.dispose() 1abcdefghij

25 yield 1abcdefghij

26 SQLModel.metadata.clear() 1abcdefghij

27 default_registry.dispose() 1abcdefghij

28 

29 

30@pytest.fixture() 1abcdefghij

31def cov_tmp_path(tmp_path: Path) -> Generator[Path, None, None]: 1abcdefghij

32 yield tmp_path 1abcdefghij

33 for coverage_path in tmp_path.glob(".coverage*"): 1abcdefghij

34 coverage_destiny_path = top_level_path / coverage_path.name 

35 shutil.copy(coverage_path, coverage_destiny_path) 

36 

37 

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

39 result = subprocess.run( 2JoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o

40 [ 

41 "coverage", 

42 "run", 

43 "--parallel-mode", 

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

45 "-m", 

46 module, 

47 ], 

48 cwd=str(cwd), 

49 capture_output=True, 

50 encoding="utf-8", 

51 ) 

52 return result 2JoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o

53 

54 

55def get_testing_print_function( 1abcdefghij

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

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

58 def new_print(*args: Any) -> None: 2a ndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolpl_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltlccdcecfc[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlb ~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlgchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXlocpcqcrc'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,lc /e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@lAcBcCcDc0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmd 8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fnmomEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmIcJcjgkglgmgrmsmtmumvmwmxmymzmAmBme ngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFmKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJmScTcUcVc[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5mf ~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m4c5c6c7c'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}mg /h:h;h=h?h@h[h]h^h_h`h{h|h}h~man8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCbbncn$c%coipiqiridnenfngnhninjnknlnmnnnh sitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrn'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn/c:c;c=c{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRni ejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVn?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn|c}c~cad,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.nj @j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=nbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]njdkdldmd5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

59 data: List[Any] = [] 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolpl_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltlccdcecfc[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPl~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlgchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXlocpcqcrc'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@lAcBcCcDc0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmm8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/fnmomEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmIcJcjgkglgmgrmsmtmumvmwmxmymzmAmBmngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFmKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJmScTcUcVc[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m4c5c6c7c'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}h~man8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCbbncn$c%coipiqiridnenfngnhninjnknlnmnnnsitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrn'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn/c:c;c=c{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVn?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn|c}c~cad,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=nbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]njdkdldmd5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

60 for arg in args: 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolpl_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltlccdcecfc[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPl~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlgchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXlocpcqcrc'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@lAcBcCcDc0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmm8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/fnmomEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmIcJcjgkglgmgrmsmtmumvmwmxmymzmAmBmngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFmKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJmScTcUcVc[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m4c5c6c7c'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}h~man8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCbbncn$c%coipiqiridnenfngnhninjnknlnmnnnsitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrn'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn/c:c;c=c{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVn?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn|c}c~cad,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=nbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]njdkdldmd5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

61 if isinstance(arg, BaseModel): 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolpl_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltlccdcecfc[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPl~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlgchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXlocpcqcrc'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@lAcBcCcDc0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmm8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/fnmomEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmIcJcjgkglgmgrmsmtmumvmwmxmymzmAmBmngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFmKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJmScTcUcVc[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m4c5c6c7c'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}h~man8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCbbncn$c%coipiqiridnenfngnhninjnknlnmnnnsitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrn'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn/c:c;c=c{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVn?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn|c}c~cad,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=nbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]njdkdldmd5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

62 data.append(arg.model_dump()) 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolplk l m n o p q r s QdRdSdTdUdVdWdXdYdZd0d1d2d3dt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltl[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPl~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlC D E F G H I J K CeDeEeFeGeHeIeJeKeLeMeNeOePeL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXl'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lU V W X Y Z 0 1 2 ofpfqfrfsftfufvfwfxfyfzfAfBf3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@l0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmm8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/fnmom$ % ' ( ) * :f;f=f?f@f[f]f+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmjgkglgmgrmsmtmumvmwmxmymzmAmBmngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFm; = ? @ [ ] ^ _ ` QgRgSgTgUgVgWgXgYgZg0g1g2g3g{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJm[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mfbgbhbibjbkblbmbnbChDhEhFhGhHhIhJhKhLhMhNhOhPhobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}h~manxbybzb~haibicidieifiAbBbgihiiijikiliminiCbbncnoipiqiridnenfngnhninjnknlnmnnnsitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrnDbEbFbGbHbIbJbKbLbViWiXiYiZi0i1i2i3i4i5i6i7i8iMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVnVbWbXbYbZb0b1b2b3bHjIjJjKjLjMjNjOjPjQjRjSjTjUj4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=n%b'b(b)b*b+b,b-b.btkukvkwkxkykzkAkBkCkDkEkFkGk/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]n5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

63 elif isinstance(arg, list): 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B ccdcecfc[d]d^d_d`d{d|d}d~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBegchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T ocpcqcrc'e(e)e*e+e,e-e.e/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # AcBcCcDc0f1f2f3f4f5f6f7f8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/fEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : IcJcjgkglgmgngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebScTcUcVc[g]g^g_g`g{g|g}g~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb4c5c6c7c'h(h)h*h+h,h-h.h/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}h8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCb$c%coipiqirisitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUi'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUb/c:c;c=c{i|i}i~iajbjcjdjejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGj?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$b|c}c~cad,j-j.j/j:j;j=j?j@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrkskbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^bjdkdldmd5k6k7k8k9k!k#k$k

64 new_list = [] 2_b`b{b|b}b~bacbck l m n o p q r s t u v w x y z A B ccdcecfcgchcicjckclcmcncC D E F G H I J K L M N O P Q R S T ocpcqcrcsctcucvcwcxcyczcU V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # AcBcCcDcEcFcGcHc$ % ' ( ) * + , - . / : IcJcKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebScTcUcVcWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwb4c5c6c7c8c9c!c#cxbybzbAbBbCb$c%c'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUb/c:c;c=c?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b|c}c~cadbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^bjdkdldmd

65 for item in arg: 2_b`b{b|b}b~bacbck l m n o p q r s t u v w x y z A B ccdcecfcgchcicjckclcmcncC D E F G H I J K L M N O P Q R S T ocpcqcrcsctcucvcwcxcyczcU V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # AcBcCcDcEcFcGcHc$ % ' ( ) * + , - . / : IcJcKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebScTcUcVcWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwb4c5c6c7c8c9c!c#cxbybzbAbBbCb$c%c'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUb/c:c;c=c?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b|c}c~cadbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^bjdkdldmd

66 if isinstance(item, BaseModel): 2_b`b{b|b}b~bacbck l m n o p q r s t u v w x y z A B ccdcecfcgchcicjckclcmcncC D E F G H I J K L M N O P Q R S T ocpcqcrcsctcucvcwcxcyczcU V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # AcBcCcDcEcFcGcHc$ % ' ( ) * + , - . / : IcJcKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebScTcUcVcWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwb4c5c6c7c8c9c!c#cxbybzbAbBbCb$c%c'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUb/c:c;c=c?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b|c}c~cadbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^bjdkdldmd

67 new_list.append(item.model_dump()) 2_b`b{b|b}b~bacbck l m n o p q r s t u v w x y z A B ccdcecfcgchcicjckclcmcncC D E F G H I J K L M N O P Q R S T ocpcqcrcsctcucvcwcxcyczcU V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # AcBcCcDcEcFcGcHc$ % ' ( ) * + , - . / : IcJcKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebScTcUcVcWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwb4c5c6c7c8c9c!c#cxbybzbAbBbCb$c%c'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUb/c:c;c=c?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b|c}c~cadbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^bjdkdldmd

68 data.append(new_list) 2_b`b{b|b}b~bacbck l m n o p q r s t u v w x y z A B ccdcecfcgchcicjckclcmcncC D E F G H I J K L M N O P Q R S T ocpcqcrcsctcucvcwcxcyczcU V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # AcBcCcDcEcFcGcHc$ % ' ( ) * + , - . / : IcJcKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebScTcUcVcWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwb4c5c6c7c8c9c!c#cxbybzbAbBbCb$c%c'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUb/c:c;c=c?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b|c}c~cadbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^bjdkdldmd

69 else: 

70 data.append(arg) 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdk l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B [d]d^d_d`d{d|d}d~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBeC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T 'e(e)e*e+e,e-e.e/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # 0f1f2f3f4f5f6f7f8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/f$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : jgkglgmgngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPg; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbeb[g]g^g_g`g{g|g}g~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb'h(h)h*h+h,h-h.h/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}hxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCboipiqirisitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUb{i|i}i~iajbjcjdjejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$b,j-j.j/j:j;j=j?j@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b5k6k7k8k9k!k#k$k

71 calls.append(data) 2ndodpdqdrdsdpoqotdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolpl_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltlccdcecfc[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPl~daebecedeeerosofegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlgchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXlocpcqcrc'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l/e:e;e=e?e@etouo[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@lAcBcCcDc0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmm8f9f!fvowo#f$f%f'f(f)f*f+f,f-f.f/fnmomEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmIcJcjgkglgmgrmsmtmumvmwmxmymzmAmBmngogpgqgrgsgxoyotgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFmKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJmScTcUcVc[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m~gahbhchdhehzoAofhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m4c5c6c7c'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m/h:h;hBoCo=h?h@h[h]h^h_h`h{h|h}h~man8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCbbncn$c%coipiqiridnenfngnhninjnknlnmnnnsitiuiviwixiDoEoyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrn'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn/c:c;c=c{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnejfjgjhjijjjFoGokjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVn?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn|c}c~cad,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n@j[j]j^j_j`jHoIo{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=nbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]njdkdldmd5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

72 

73 return new_print 2a ndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdmlnlolpl_b`b{b|b}b~bacbck l m n o p q r s QdRd%k'kSdTdUdVdWdXdYdZd0d1d2d3d(k)kt u v w x y 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@dz A B qlrlsltlccdcecfc[d]d^d_d`d{d|d}dulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlb ~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeQlRlSlTlgchcicjckclcmcncC D E F G H I J K CeDe*k+kEeFeGeHeIeJeKeLeMeNeOePe,k-kL M N O P Q QeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%eR S T UlVlWlXlocpcqcrc'e(e)e*e+e,e-e.eYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,lc /e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnf-l.l/l:lsctcucvcwcxcyczcU V W X Y Z 0 1 2 ofpf.k/kqfrfsftfufvfwfxfyfzfAfBf:k;k3 4 5 6 7 8 CfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf9 ! # ;l=l?l@lAcBcCcDc0f1f2f3f4f5f6f7f[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmd 8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fnmomEcFcGcHc$ % ' ( ) * :f=k;f=f?f@f[f]f?k+ , - . ^f_f`f{f|f}f~fagbgcgdgegfggghgig/ : pmqmIcJcjgkglgmgrmsmtmumvmwmxmymzmAmBme ngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgCmDmEmFmKcLcMcNcOcPcQcRc; = ? @ [ ] ^ _ ` QgRg@k[kSgTgUgVgWgXgYgZg0g1g2g3g]k^k{ | } ~ abbb4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@gcbdbebGmHmImJmScTcUcVc[g]g^g_g`g{g|g}gKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5mf ~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBh6m7m8m9mWcXcYcZc0c1c2c3cfbgbhbibjbkblbmbnbChDh_k`kEhFhGhHhIhJhKhLhMhNhOhPh{k|kobpbqbrbsbtbQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%hubvbwb!m#m$m%m4c5c6c7c'h(h)h*h+h,h-h.h'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}mg /h:h;h=h?h@h[h]h^h_h`h{h|h}h~man8c9c!c#cxbybzb~h}kaibicidieifi~kAbBbgihiiijikiliminiCbbncn$c%coipiqiridnenfngnhninjnknlnmnnnh sitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUionpnqnrn'c(c)c*c+c,c-c.cDbEbFbGbHbIbJbKbLbViWialblXiYiZi0i1i2i3i4i5i6i7i8icldlMbNbObPbQbRb9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`iSbTbUbsntnunvn/c:c;c=c{i|i}i~iajbjcjdjwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRni ejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjSnTnUnVn?c@c[c]c^c_c`c{cVbWbXbYbZb0b1b2b3bHjIjelflJjKjLjMjNjOjPjQjRjSjTjUjglhl4b5b6b7b8b9bVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j!b#b$bWnXnYnZn|c}c~cad,j-j.j/j:j;j=j?j0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.nj @j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksk/n:n;n=nbdcdddedfdgdhdid%b'b(b)b*b+b,b-b.btkukiljlvkwkxkykzkAkBkCkDkEkFkGkklll/b:b;b=b?b@bHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k[b]b^b?n@n[n]njdkdldmd5k6k7k8k9k!k#k$k^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooo

74 

75 

76@dataclass 1abcdefghij

77class PrintMock: 1abcdefghij

78 calls: List[Any] = field(default_factory=list) 1abcdefghij

79 

80 

81@pytest.fixture(name="print_mock") 1abcdefghij

82def print_mock_fixture() -> Generator[PrintMock, None, None]: 1abcdefghij

83 print_mock = PrintMock() 1abcdefghij

84 new_print = get_testing_print_function(print_mock.calls) 1abcdefghij

85 with patch("builtins.print", new=new_print): 1abcdefghij

86 yield print_mock 1abcdefghij

87 

88 

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

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

91 

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

93needs_py310 = pytest.mark.skipif( 1abcdefghij

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

95)