Coverage for sqlmodel/orm/session.py: 100%
25 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-07 05:42 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-07 05:42 +0000
1from typing import ( 1gabcdef
2 Any,
3 Dict,
4 Mapping,
5 Optional,
6 Sequence,
7 TypeVar,
8 Union,
9 overload,
10)
12from sqlalchemy import util 1gabcdef
13from sqlalchemy.engine.interfaces import _CoreAnyExecuteParams 1gabcdef
14from sqlalchemy.engine.result import Result, ScalarResult, TupleResult 1gabcdef
15from sqlalchemy.orm import Query as _Query 1gabcdef
16from sqlalchemy.orm import Session as _Session 1gabcdef
17from sqlalchemy.orm._typing import OrmExecuteOptionsParameter 1gabcdef
18from sqlalchemy.sql._typing import _ColumnsClauseArgument 1gabcdef
19from sqlalchemy.sql.base import Executable as _Executable 1gabcdef
20from sqlmodel.sql.base import Executable 1gabcdef
21from sqlmodel.sql.expression import Select, SelectOfScalar 1gabcdef
22from typing_extensions import deprecated 1gabcdef
24_TSelectParam = TypeVar("_TSelectParam", bound=Any) 1gabcdef
27class Session(_Session): 1gabcdef
28 @overload 1gabcdef
29 def exec( 1abcdef
30 self,
31 statement: Select[_TSelectParam], 1abcdef
32 *,
33 params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None, 1gabcdef
34 execution_options: Mapping[str, Any] = util.EMPTY_DICT, 1gabcdef
35 bind_arguments: Optional[Dict[str, Any]] = None, 1gabcdef
36 _parent_execute_state: Optional[Any] = None, 1gabcdef
37 _add_event: Optional[Any] = None, 1gabcdef
38 ) -> TupleResult[_TSelectParam]: ... 1gabcdef
40 @overload 1gabcdef
41 def exec( 1abcdef
42 self,
43 statement: SelectOfScalar[_TSelectParam], 1abcdef
44 *,
45 params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None, 1gabcdef
46 execution_options: Mapping[str, Any] = util.EMPTY_DICT, 1gabcdef
47 bind_arguments: Optional[Dict[str, Any]] = None, 1gabcdef
48 _parent_execute_state: Optional[Any] = None, 1gabcdef
49 _add_event: Optional[Any] = None, 1gabcdef
50 ) -> ScalarResult[_TSelectParam]: ... 1gabcdef
52 def exec( 1abcdef
53 self,
54 statement: Union[
55 Select[_TSelectParam],
56 SelectOfScalar[_TSelectParam],
57 Executable[_TSelectParam],
58 ],
59 *,
60 params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None,
61 execution_options: Mapping[str, Any] = util.EMPTY_DICT,
62 bind_arguments: Optional[Dict[str, Any]] = None,
63 _parent_execute_state: Optional[Any] = None,
64 _add_event: Optional[Any] = None,
65 ) -> Union[TupleResult[_TSelectParam], ScalarResult[_TSelectParam]]:
66 results = super().execute( 2egfgh gghgi j k l m n o p q r s t u v w x y z A B C igjgkglgmgngogpgqgD E rgsgtgF G ugvgH I J K L M N O P wgxgygzgQ R S T AgBgCgDgEgFgGgHgIgJgKgLgMgU NgOgV W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( PgQgRgSgTgUgVgWgXg) * YgZg0g+ , 1g2g- . / : ; = ? @ [ 3g4g5g6g] ^ _ ` 7g8g9g!g#g$g%g'g(g)g*g+g,g-g{ .g/g| } ~ abbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCb:g;g=g?g@g[g]g^g_gDbEbFbGb`g{g|gHbIb}g~gJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0bahbhchdh1b2b3b4behfhghhhihjhkhlhmhnhohphqhrhshth5b6buhvh7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhvcwcxcyczcAcOhPhQhRhShThBcCcDcEcUhVhWhXhFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cYhZh0h1h2h3h4h5h6c7c8c9c!c#c$c%c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h'c(c{h|h)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDd}h~haibicidieifigihiiijikiliminioipiEdFdGdHdIdJdqirisitiuiviKdLdMdNdwixiyiziOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'dAiBiCiDiEiFiGiHi(d)d*d+d,d-d.d/dIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i:d;d9i!i=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMe#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[iNeOePeQeReSe]i^i_i`i{i|iTeUeVeWe}i~iajbjXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:ecjdjejfjgjhjijjj;e=e?e@e[e]e^e_ekjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKj`e{eLjMj|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4jWfXfYfZf0f1f5j6j7j8j9j!j2f3f4f5f#j$j%j'j6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f(j)j*j+j,j-j.j/j{f|f}f~fagbgcgdg:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhk
67 statement,
68 params=params,
69 execution_options=execution_options,
70 bind_arguments=bind_arguments,
71 _parent_execute_state=_parent_execute_state,
72 _add_event=_add_event,
73 )
74 if isinstance(statement, SelectOfScalar): 2egfgh gghgi j k l m n o p q r s t u v w x y z A B C igjgkglgmgngogpgqgD E rgsgtgF G ugvgH I J K L M N O P wgxgygzgQ R S T AgBgCgDgEgFgGgHgIgJgKgLgMgU NgOgV W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( PgQgRgSgTgUgVgWgXg) * YgZg0g+ , 1g2g- . / : ; = ? @ [ 3g4g5g6g] ^ _ ` 7g8g9g!g#g$g%g'g(g)g*g+g,g-g{ .g/g| } ~ abbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCb:g;g=g?g@g[g]g^g_gDbEbFbGb`g{g|gHbIb}g~gJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0bahbhchdh1b2b3b4behfhghhhihjhkhlhmhnhohphqhrhshth5b6buhvh7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhvcwcxcyczcAcOhPhQhRhShThBcCcDcEcUhVhWhXhFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cYhZh0h1h2h3h4h5h6c7c8c9c!c#c$c%c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h'c(c{h|h)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDd}h~haibicidieifigihiiijikiliminioipiEdFdGdHdIdJdqirisitiuiviKdLdMdNdwixiyiziOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'dAiBiCiDiEiFiGiHi(d)d*d+d,d-d.d/dIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i:d;d9i!i=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMe#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[iNeOePeQeReSe]i^i_i`i{i|iTeUeVeWe}i~iajbjXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:ecjdjejfjgjhjijjj;e=e?e@e[e]e^e_ekjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKj`e{eLjMj|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4jWfXfYfZf0f1f5j6j7j8j9j!j2f3f4f5f#j$j%j'j6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f(j)j*j+j,j-j.j/j{f|f}f~fagbgcgdg:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhk
75 return results.scalars() 2egfgh gghgi j n p q r s t u v w x y z A B C igjgkglgmgngogpgqgD E rgsgtgF G ugvgH I J K L M N O P wgxgygzgQ R S T AgBgCgDgEgFgGgHgIgJgKgLgMgU NgOgV W 0 2 3 4 5 6 7 8 9 ! # $ % ' ( PgQgRgSgTgUgVgWgXg) * YgZg0g+ , 1g2g- . / : ; = ? @ [ 3g4g5g6g] ^ _ ` 7g8g9g!g#g$g%g'g(g)g*g+g,g-g{ .g/g| } cbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCb:g;g=g?g@g[g]g^g_gDbEbFbGb`g{g|gHbIb}g~gJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0bahbhchdh1b2b3b4behfhghhhihjhkhlhmhnhohphqhrhshth5b6buhvh7b8b(b)b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhvcwcxcyczcAcOhPhQhRhShThBcCcDcEcUhVhWhXhFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cYhZh0h1h2h3h4h5h6c7c8c9c!c#c$c%c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h'c(c{h|h)c*c;c=c[c]c^c_c`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDd}h~haibicidieifigihiiijikiliminioipiEdFdGdHdIdJdqirisitiuiviKdLdMdNdwixiyiziOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'dAiBiCiDiEiFiGiHi(d)d*d+d,d-d.d/dIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i:d;d9i!i=d?d{d|daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMe#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[iNeOePeQeReSe]i^i_i`i{i|iTeUeVeWe}i~iajbjXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:ecjdjejfjgjhjijjj;e=e?e@e[e]e^e_ekjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKj`e{eLjMj|e}effgfjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4jWfXfYfZf0f1f5j6j7j8j9j!j2f3f4f5f#j$j%j'j6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f(j)j*j+j,j-j.j/j{f|f}f~fagbgcgdg:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhk
76 return results # type: ignore 2k l m o F G X Y Z 1 + , ~ abbbdbHbIb9b!b#b$b%b'b*b+bBcCcDcEc+c,c-c.c/c:c?c@cKdLdMdNd@d[d]d^d_d`d}d~dTeUeVeWe~eafbfcfdfefhfif2f3f4f5f
78 @deprecated( 1gabcdef
79 """
80 🚨 You probably want to use `session.exec()` instead of `session.execute()`.
82 This is the original SQLAlchemy `session.execute()` method that returns objects
83 of type `Row`, and that you have to call `scalars()` to get the model objects.
85 For example:
87 ```Python
88 heroes = session.execute(select(Hero)).scalars().all()
89 ```
91 instead you could use `exec()`:
93 ```Python
94 heroes = session.exec(select(Hero)).all()
95 ```
96 """,
97 category=None,
98 )
99 def execute( # type: ignore 1abcdef
100 self,
101 statement: _Executable,
102 params: Optional[_CoreAnyExecuteParams] = None,
103 *,
104 execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT,
105 bind_arguments: Optional[Dict[str, Any]] = None,
106 _parent_execute_state: Optional[Any] = None,
107 _add_event: Optional[Any] = None,
108 ) -> Result[Any]:
109 """
110 🚨 You probably want to use `session.exec()` instead of `session.execute()`.
112 This is the original SQLAlchemy `session.execute()` method that returns objects
113 of type `Row`, and that you have to call `scalars()` to get the model objects.
115 For example:
117 ```Python
118 heroes = session.execute(select(Hero)).scalars().all()
119 ```
121 instead you could use `exec()`:
123 ```Python
124 heroes = session.exec(select(Hero)).all()
125 ```
126 """
127 return super().execute( 2pkqkrksktkukvkwkxkykzkAkBkh CkDki j EkikFkGkHkIkJkKkk l m n o Lkp q MkNkOkPkQkRkr s t u v w x y z A B C SkD E TkUkH I VkWkJ K L M N O P Q R S T XkYkZk0k1k2k3k4k5k6k7k8k9kU !k#kV W $kjk%k'k(k)k*k+kX Y Z 0 1 ,k2 3 -k.k/k:k;k=k4 5 6 7 8 9 ! # $ % ' ( ?k) * @k[k- . ]k^k/ : ; = ? @ [ ] ^ _ ` _k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltl{ ulvl| } wlkkxlylzlAlBlClDlEl~ abbbcbdbFlebfbGlHlIlJlKlLlgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbMlNlDbEbFbGbOlPlJbKbLbMbQlRlSlTlNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4bUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l5b6b{l|l}l7b8b~llkambmcmdmemfmgmhmimjmkmlmmmnm9b!b#b$b%b'b(b)b*b+bompm,b-b.b/bqmrmsmtmumvm:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucwmxmymvcwcxcyczcAczmAmBmCmFcGcHcIcJcKcDmEmFmGmHmImLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%cJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m'c(c/m:m;m)c*c=mmk?m@m[m]m^m_m`m{m|m}m~manbncn+c,c-c.c/c:c;c=c?c@cdnen[c]c^c_cfngnhninjnkn`c{c|c}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdlnmnnnEdFdGdHdIdJdonpnqnrnOdPdQdRdSdTdsntnunvnwnxnUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/dynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n:d;d#n$n%n=d?d'nnk(n)n*n+n,n-n.n/n:n;n=n?n@n[n@d[d]d^d_d`d{d|d}d~d]n^naebecede_n`n{n|n}n~neefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMeaobocoNeOePeQeReSedoeofogoXeYeZe0e1e2ehoiojokolomo3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_enooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo`e{e0o1o2o|e}e3ook4o5o6o7o8o9o!o#o$o%o'o(o)o*o~eafbfcfdfefffgfhfif+o,ojfkflfmf-o.o/o:o;o=onfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVf?o@o[oWfXfYfZf0f1f]o^o_o`o6f7f8f9f!f#f{o|o}o~oapbp$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdg
128 statement,
129 params=params,
130 execution_options=execution_options,
131 bind_arguments=bind_arguments,
132 _parent_execute_state=_parent_execute_state,
133 _add_event=_add_event,
134 )
136 @deprecated( 1gabcdef
137 """
138 🚨 You probably want to use `session.exec()` instead of `session.query()`.
140 `session.exec()` is SQLModel's own short version with increased type
141 annotations.
143 Or otherwise you might want to use `session.execute()` instead of
144 `session.query()`.
145 """
146 )
147 def query( # type: ignore 1abcdef
148 self, *entities: _ColumnsClauseArgument[Any], **kwargs: Any
149 ) -> _Query[Any]:
150 """
151 🚨 You probably want to use `session.exec()` instead of `session.query()`.
153 `session.exec()` is SQLModel's own short version with increased type
154 annotations.
156 Or otherwise you might want to use `session.execute()` instead of
157 `session.query()`.
158 """
159 return super().query(*entities, **kwargs) 2ikjkkklkmknkok