Coverage for tests/conftest.py: 96%
47 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-09-09 00:02 +0000
« 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
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
13top_level_path = Path(__file__).resolve().parent.parent 1fabcde
14docs_src_path = top_level_path / "docs_src" 1fabcde
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
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)
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
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
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
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
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)