Files
aitsc/.venv/Lib/site-packages/sqlalchemy/ext/__pycache__/baked.cpython-312.pyc

234 lines
23 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
2025-08-29 00:34:40 +08:00
<00><19>h<EFBFBD>G<00><00><><00>dZddlmZddlZddlmZddlmZddl mZ
2025-02-23 09:07:52 +08:00
ddl m Z ddl mZddlmZdd lmZddlmZej&e<14>ZGd
<EFBFBD>d <0B>ZGd <0C>d <0A>ZGd<0E>d<0F>Zej2Zy)z<>Baked query extension.
Provides a creational pattern for the :class:`.query.Query` object which
allows the fully constructed object, Core select statement, and string
compiled result to be fully cached.
<EFBFBD>N<>)<01>exc)<01>util)<01>Query)<01>Session)<01>func)<01>literal_columnc<00> <00>eZdZdZdZd<03>Zd<04>Zy)<06>Bakeryz<79>Callable which returns a :class:`.BakedQuery`.
This object is returned by the class method
:meth:`.BakedQuery.bakery`. It exists as an object
so that the "cache" can be easily inspected.
.. versionadded:: 1.2
2025-08-29 00:34:40 +08:00
<20><02>cls<6C>cachec<00> <00>||_||_y<00>Nr )<03>self<6C>cls_rs <20>AD:\pythonpj\aitsc\.venv\Lib\site-packages\sqlalchemy/ext/baked.py<70>__init__zBakery.__init__1s<00><00><17><04><08><1A><04>
2025-02-23 09:07:52 +08:00
<EFBFBD>c<00><<00>|j|j||<02>Srr )r<00>
initial_fn<EFBFBD>argss r<00>__call__zBakery.__call__5s<00><00><13>x<EFBFBD>x<EFBFBD><04>
<EFBFBD>
<EFBFBD>J<EFBFBD><04>5<>5rN)<07>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F> __slots__rr<00>rrr r #s<00><00> <08><1F>I<EFBFBD><1B>6rr c<00><><00>eZdZdZdZdd<03>Zedd<05><01>Zd<06>Zdd<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z d <0B>Z d <0C>Zd <0A>Zdd<0E>Zd<0F>Zdd<10>Zdd<11>Zd<12>Zd<13>Zd<14>Zd<15>Zy)<1A>
BakedQueryz3A builder object for :class:`.query.Query` objects.)<04>steps<70>_bakery<72>
_cache_key<EFBFBD>_spoiledc<00>b<00>d|_|j||<03>|g|_d|_||_y)NrF)r$<00>_update_cache_keyr"r%r#)r<00>bakeryrrs rrzBakedQuery.__init__>s0<00><00><1C><04><0F> <0C><1E><1E>z<EFBFBD>4<EFBFBD>0<> <20>\<5C><04>
<EFBFBD><1D><04> <0A><1D><04> rNc<00>D<00>t|tj||<02><01><00>S)zSConstruct a new bakery.
:return: an instance of :class:`.Bakery`
)<01>
size_alert)r r<00>LRUCache)r <00>size<7A> _size_alerts rr(zBakedQuery.bakeryEs<00><00><16>c<EFBFBD>4<EFBFBD>=<3D>=<3D><14>+<2B>F<>G<>Grc<00><><00>tjt<00>}|j|_t|j<00>|_|j
|_|j |_|Sr)r!<00>__new__r$<00>listr"r#r%)r<00>b1s r<00>_clonezBakedQuery._cloneOsH<00><00> <17> <1F> <1F>
<EFBFBD> +<2B><02><1C><0F><0F><02> <0A><17><04>
<EFBFBD>
<EFBFBD>#<23><02><08><19>\<5C>\<5C><02>
<EFBFBD><1A>m<EFBFBD>m<EFBFBD><02> <0B><11> rc<00>J<00>|xj|jf|zz c_yr)r$<00>__code__<5F>r<00>fnrs rr'zBakedQuery._update_cache_keyWs<00><00> <0C><0F><0F>B<EFBFBD>K<EFBFBD>K<EFBFBD>><3E>D<EFBFBD>0<>0<>rc<00>j<00>t|t<00>r|j|<01>|S|j|<01>|Sr)<03>
isinstance<EFBFBD>tuple<6C> add_criteria<69>r<00>others r<00>__iadd__zBakedQuery.__iadd__Zs8<00><00> <15>e<EFBFBD>U<EFBFBD> #<23> <1D>D<EFBFBD> <1D> <1D>u<EFBFBD> %<25><14> <0B> <11> <1D> <1D>e<EFBFBD> $<24><13> rc<00>b<00>t|t<00>r|j|<01>S|j|<01>Sr)r8r9<00> with_criteriar;s r<00>__add__zBakedQuery.__add__as0<00><00> <15>e<EFBFBD>U<EFBFBD> #<23>%<25>4<EFBFBD>%<25>%<25>u<EFBFBD>-<2D> -<2D><17>%<25>%<25>e<EFBFBD>,<2C> ,rc<00>`<00>|j||<02>|jj|<01>|S)z<>Add a criteria function to this :class:`.BakedQuery`.
This is equivalent to using the ``+=`` operator to
modify a :class:`.BakedQuery` in-place.
)r'r"<00>appendr5s rr:zBakedQuery.add_criteriags+<00><00> <0A><1E><1E>r<EFBFBD>4<EFBFBD>(<28> <0C>
<EFBFBD>
<EFBFBD><19><19>"<22><1D><13> rc<00>D<00>|j<00>j|g|<02><01><06>S)z<>Add a criteria function to a :class:`.BakedQuery` cloned from this
one.
This is equivalent to using the ``+`` operator to
produce a new :class:`.BakedQuery` with modifications.
)r2r:r5s rr?zBakedQuery.with_criteriars"<00><00>*<2A>t<EFBFBD>{<7B>{<7B>}<7D>)<29>)<29>"<22>4<>t<EFBFBD>4<>4rc<00><00>t||<01>S)z<>Return a :class:`_baked.Result` object for this
:class:`.BakedQuery`.
This is equivalent to calling the :class:`.BakedQuery` as a
Python callable, e.g. ``result = my_baked_query(session)``.
)<01>Result<6C>r<00>sessions r<00> for_sessionzBakedQuery.for_session|s<00><00><16>d<EFBFBD>G<EFBFBD>$<24>$rc<00>$<00>|j|<01>Sr)rHrFs rrzBakedQuery.__call__<5F>s<00><00><13><1F><1F><07>(<28>(rc<00><><00>|sC|js7|j<00>}|xjdz c_|jg|_d|_|S)a<>Cancel any query caching that will occur on this BakedQuery object.
The BakedQuery can continue to be used normally, however additional
creational functions will not be cached; they will be called
on every invocation.
This is to support the case where a particular step in constructing
a baked query disqualifies the query from being cacheable, such
as a variant that relies upon some uncacheable value.
:param full: if False, only functions added to this
:class:`.BakedQuery` object subsequent to the spoil step will be
non-cached; the state of the :class:`.BakedQuery` up until
this point will be pulled from the cache. If True, then the
entire :class:`_query.Query` object is built from scratch each
time, with all creational functions being called on each
invocation.
)<01> _query_onlyT)r%r2r$<00>_retrieve_baked_queryr")r<00>full<6C> _spoil_points r<00>spoilzBakedQuery.spoil<69>sF<00><00>(<14>D<EFBFBD>M<EFBFBD>M<EFBFBD><1F>;<3B>;<3B>=<3D>L<EFBFBD> <18> #<23> #<23>'7<> 7<> #<23>&<26><<3C><<3C>=<3D>D<EFBFBD>J<EFBFBD><1C><04> <0A><13> rc<00>6<00>|j|jfzS)a<>Return the key that actually goes into the cache dictionary for
this :class:`.BakedQuery`, taking into account the given
:class:`.Session`.
This basically means we also will include the session's query_class,
as the actual :class:`_query.Query` object is part of what's cached
and needs to match the type of :class:`_query.Query` that a later
session will want to use.
)r$<00>
_query_clsrFs r<00>_effective_keyzBakedQuery._effective_key<65>s<00><00><14><EFBFBD><EFBFBD>'<27>"4<>"4<>!6<>6<>6rc<00>N<00>|j<00>}|j|||<03><01>|S)z)Cloning version of _add_lazyload_options.)<01>
cache_path)r2<00>_add_lazyload_options)r<00>options<6E>effective_pathrT<00>qs r<00>_with_lazyload_optionsz!BakedQuery._with_lazyload_options<6E>s'<00><00> <10>K<EFBFBD>K<EFBFBD>M<EFBFBD><01> <09><1F><1F><07><1E>J<EFBFBD><1F>O<><10>rc<00><00><01><02>d}|s<02>}<03>D]T}|js |js<01>|j<00>}|<06>|jd<03><04><00>A|drJd<06><00>||dz }<04>V|j <00><02>fd<08>|j
|<04>y) a*Used by per-state lazy loaders to add options to the
"lazy load" query from a parent query.
Creates a cache key based on given load path and query options;
if a repeatable cache key cannot be generated, the query is
"spoiled" so that it won't use caching.
rNT)rM<00>z<>loader options with variable bound parameters not supported with baked queries. Please use new-style select() statements for cached ORM queries.rc<00>@<00><02>|j<00><01>j<00><02>Sr)<02>_with_current_pathrV)rXrWrVs <20><>r<00><lambda>z2BakedQuery._add_lazyload_options.<locals>.<lambda><3E>s<00><><00>B<>a<EFBFBD>*<2A>*<2A>><3E>:<3A>B<>B<>G<EFBFBD>Lr)<06>_is_legacy_option<6F>_is_compile_state<74>_generate_cache_keyrOr:<00>path)rrVrWrT<00>key<65>opt<70>cks `` rrUz BakedQuery._add_lazyload_options<6E>s<><00><><00><11><03><19>'<27>J<EFBFBD><1A>C<EFBFBD><12>$<24>$<24><03>(=<3D>(=<3D><18>,<2C>,<2C>.<2E><02><15>:<3A><18>J<EFBFBD>J<EFBFBD>D<EFBFBD>J<EFBFBD>)<29>!<21>!<21>u<EFBFBD><16>'<27><16>9<EFBFBD> <18>2<EFBFBD>a<EFBFBD>5<EFBFBD>L<EFBFBD>C<EFBFBD><1B> <0A><19><19> L<> <16>O<EFBFBD>O<EFBFBD> <0F>
rc<00><><00>|jj|j|<01>d<00>}|<02>>|j|<01>}|j d<00>|j|j|<01><|j |<01>Sr)r#<00>getrR<00> _as_query<72> with_session)rrG<00>querys rrLz BakedQuery._retrieve_baked_query<72>sp<00><00><14> <0C> <0C> <20> <20><14>!4<>!4<>W<EFBFBD>!=<3D>t<EFBFBD>D<><05> <10>=<3D><18>N<EFBFBD>N<EFBFBD>7<EFBFBD>+<2B>E<EFBFBD>9><3E>9K<39>9K<39><14>:<0E>D<EFBFBD>L<EFBFBD>L<EFBFBD><14>,<2C>,<2C>W<EFBFBD>5<> 6<><15>!<21>!<21>'<27>*<2A>*rc<00><><00>|j|<01>}d|_|j<00>}|jjr ||f|j
|j |<01><||fSr)rhrG<00> _statement_20<32>_compile_options<6E>_bake_okr#rR)rrGrj<00> statements r<00>_bakezBakedQuery._bake<6B>sf<00><00><14><0E><0E>w<EFBFBD>'<27><05><1C><05> <0A><1A>'<27>'<27>)<29> <09> <15> %<25> %<25> .<2E> .<2E><15><19>:<0E>D<EFBFBD>L<EFBFBD>L<EFBFBD><14>,<2C>,<2C>W<EFBFBD>5<> 6<>
<15>i<EFBFBD><1F>rc<00><><00>t|t<00>r|}nJt|t<00>r#|j}|<02>,t j
d<01><00>t dt|<01>z<00><00>|j|<02>S)aReturn the :class:`_query.Query` object for use as a subquery.
This method should be used within the lambda callable being used
to generate a step of an enclosing :class:`.BakedQuery`. The
parameter should normally be the :class:`_query.Query` object that
is passed to the lambda::
sub_bq = self.bakery(lambda s: s.query(User.name))
sub_bq += lambda q: q.filter(User.id == Address.user_id).correlate(Address)
main_bq = self.bakery(lambda s: s.query(Address))
main_bq += lambda q: q.filter(sub_bq.to_query(q).exists())
In the case where the subquery is used in the first callable against
a :class:`.Session`, the :class:`.Session` is also accepted::
sub_bq = self.bakery(lambda s: s.query(User.name))
sub_bq += lambda q: q.filter(User.id == Address.user_id).correlate(Address)
main_bq = self.bakery(
lambda s: s.query(Address.id, sub_bq.to_query(q).scalar_subquery())
)
:param query_or_session: a :class:`_query.Query` object or a class
:class:`.Session` object, that is assumed to be within the context
of an enclosing :class:`.BakedQuery` callable.
.. versionadded:: 1.3
z1Given Query needs to be associated with a Sessionz)Query or Session object expected, got %r.) r8rrrG<00>sa_exc<78> ArgumentError<6F> TypeError<6F>typerh)r<00>query_or_sessionrGs r<00>to_queryzBakedQuery.to_query<72>sw<00><00>D <16>&<26><07> 0<>&<26>G<EFBFBD> <17>(<28>%<25> 0<>&<26>.<2E>.<2E>G<EFBFBD><16><EFBFBD><1C>*<2A>*<2A>G<><12><12><1C>;<3B><16>'<27>(<28>)<29><0E> <0E><14>~<7E>~<7E>g<EFBFBD>&<26>&rc<00>h<00>|jd|<01>}|jddD]
}||<02>}<02> |S<00>Nrr[)r")rrGrj<00>steps rrhzBakedQuery._as_query-s:<00><00><1D><04>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>g<EFBFBD>&<26><05><18>J<EFBFBD>J<EFBFBD>q<EFBFBD>r<EFBFBD>N<EFBFBD>D<EFBFBD><18><15>K<EFBFBD>E<EFBFBD>#<23><15> r)r)<02><>N)Fr)rrrrrr<00> classmethodr(r2r'r=r@r:r?rHrrOrRrYrUrLrprwrhrrrr!r!9sw<00><00>=<3D><<3C>I<EFBFBD><1E><11>H<01><11>H<01><12>1<><14>-<2D> <14>5<>%<25>)<29><14>6 7<><11> !
<EFBFBD>F+<2B> <20>2/'<27>brr!c<00>t<00>eZdZdZdZd<03>Zd<04>Zd<05>Zd<06>Zd<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z d <0B>Z d <0C>Zd <0A>Zd<0E>Zd<0F>Zd<10>Zd<11>Zd<12>Zy)rEaInvokes a :class:`.BakedQuery` against a :class:`.Session`.
The :class:`_baked.Result` object is where the actual :class:`.query.Query`
object gets created, or retrieved from the cache,
against a target :class:`.Session`, and is then invoked for results.
<20><04>bqrG<00>_params<6D>_post_criteriac<00><<00>||_||_i|_g|_yrr~)rrrGs rrzResult.__init__As<00><00><14><04><07><1E><04> <0C><19><04> <0C> <20><04>rc<00><><00>t|<01>dk(r|j|d<00>n#t|<01>dkDrtjd<03><00>|jj|<02>|S)z@Specify parameters to be replaced into the string SQL statement.r[rzFparams() takes zero or one positional argument, which is a dictionary.)<05>len<65>updaterrrsr<>)rr<00>kws r<00>paramsz Result.paramsGs[<00><00> <0F>t<EFBFBD>9<EFBFBD><01>><3E> <0E>I<EFBFBD>I<EFBFBD>d<EFBFBD>1<EFBFBD>g<EFBFBD> <1E> <10><14>Y<EFBFBD><11>]<5D><18>&<26>&<26>)<29><0E> <0E> <0A> <0C> <0C><1B><1B>B<EFBFBD><1F><13> rc<00>@<00>|r|jj|<01>|Sr)r<><00>extend)r<00>fnss r<00>_using_post_criteriazResult._using_post_criteriaTs<00><00> <0E> <10> <1F> <1F> &<26> &<26>s<EFBFBD> +<2B><13> rc<00>&<00>|j|g<01>S)a<>Add a criteria function that will be applied post-cache.
This adds a function that will be run against the
:class:`_query.Query` object after it is retrieved from the
cache. This currently includes **only** the
:meth:`_query.Query.params` and :meth:`_query.Query.execution_options`
methods.
.. warning:: :meth:`_baked.Result.with_post_criteria`
functions are applied
to the :class:`_query.Query`
object **after** the query's SQL statement
object has been retrieved from the cache. Only
:meth:`_query.Query.params` and
:meth:`_query.Query.execution_options`
methods should be used.
.. versionadded:: 1.2
)r<>)rr6s r<00>with_post_criteriazResult.with_post_criteriaYs<00><00>.<14>(<28>(<28>"<22><14>.<2E>.rc<00><><00>|jj|j<00>j|j<00>}|j
D]
}||<01>}<01> |Sr)rrhrGr<>r<>r<>)rrXr6s rrhzResult._as_queryrsG<00><00> <10>G<EFBFBD>G<EFBFBD> <1D> <1D>d<EFBFBD>l<EFBFBD>l<EFBFBD> +<2B> 2<> 2<>4<EFBFBD><<3C><<3C> @<40><01><16>%<25>%<25>B<EFBFBD><12>1<EFBFBD><05>A<EFBFBD>&<26><10>rc<00>4<00>t|j<00><00>Sr)<02>strrh<00>rs r<00>__str__zResult.__str__xs<00><00><12>4<EFBFBD>><3E>><3E>#<23>$<24>$rc<00>><00>|j<00>j<00>Sr)<02>_iter<65>__iter__r<5F>s rr<>zResult.__iter__{s<00><00><13>z<EFBFBD>z<EFBFBD>|<7C>$<24>$<24>&<26>&rc<00>R<00>|j}|jjr |jr|j <00>j <00>S|j j|j|j<00>d<01>\}}|<02>|j|j<00>\}}|jr|j|j<00>}n|}|jD]
}||<04>}<04> |j}t|j<00>}|j|j |j d<02><02>|jj#|||<07><03>}|j$jdd<05>r|j'<00>}|j$jdd<05>r|j)<00>}|S)N)NN)<02>_sa_orm_load_options<6E>compiled_cache)<01>execution_options<6E>is_single_entityF<79>filtered)rrG<00>enable_baked_queriesr%rhr<>r#rgrRrpr<>r<>r<><00>dict<63>_execution_optionsr<73><00> load_options<6E>execute<74> _attributes<65>scalars<72>unique) rrrjrorXr6r<>r<><00>results rr<>z Result._iter~s_<00><00> <11>W<EFBFBD>W<EFBFBD><02><13>|<7C>|<7C>0<>0<>B<EFBFBD>K<EFBFBD>K<EFBFBD><17>><3E>><3E>#<23>)<29>)<29>+<2B> +<2B><1D>:<3A>:<3A>><3E>><3E> <0E> <1D> <1D>d<EFBFBD>l<EFBFBD>l<EFBFBD> +<2B>\<5C>
<EFBFBD><18><05>y<EFBFBD> <11>=<3D>!<21>x<EFBFBD>x<EFBFBD><04> <0C> <0C>5<> <1C>E<EFBFBD>9<EFBFBD> <0F><<3C><<3C><15> <0C> <0C>T<EFBFBD>\<5C>\<5C>*<2A>A<EFBFBD><15>A<EFBFBD><16>%<25>%<25>B<EFBFBD><12>1<EFBFBD><05>A<EFBFBD>&<26><13><19><19><06> <20><11>!5<>!5<>6<><19><19> <20> <20>()<29><0E><0E>"$<24>*<2A>*<2A> <0E>
<EFBFBD><16><1C><1C>%<25>%<25> <15>v<EFBFBD>1B<31>&<26>
<EFBFBD><06> <12> <1D> <1D> !<21> !<21>"4<>e<EFBFBD> <<3C><1B>^<5E>^<5E>%<25>F<EFBFBD> <11> <1D> <1D> !<21> !<21>*<2A>e<EFBFBD> 4<><1B>]<5D>]<5D>_<EFBFBD>F<EFBFBD><15> rc<00><00><02>tjtd<01><00><00>|jj <00>fd<02><08>}|j |j <00>j|j<00>j<00>S)z<>return the 'count'.
Equivalent to :meth:`_query.Query.count`.
Note this uses a subquery to ensure an accurate count regardless
of the structure of the original statement.
<20>*c<00>&<00><01>|j<00><01>Sr)<01>_legacy_from_self)rX<00>cols <20>rr^zResult.count.<locals>.<lambda><3E>s<00><><00>Q<EFBFBD>-@<40>-@<40><13>-Er)
r<00>countr rr?rHrGr<>r<><00>scalar)rrr<>s @rr<>z Result.count<6E>sX<00><><00><13>j<EFBFBD>j<EFBFBD><1E><03>,<2C>-<2D><03> <11>W<EFBFBD>W<EFBFBD> "<22> "<22>#E<> F<><02><11>~<7E>~<7E>d<EFBFBD>l<EFBFBD>l<EFBFBD>+<2B>2<>2<>4<EFBFBD><<3C><<3C>@<40>G<>G<>I<>Irc<00><><00> |j<00>}t|tj<00>s|S|dS#tj
$rYywxYw)z<>Return the first element of the first result or None
if no rows present. If multiple rows are returned,
raises MultipleResultsFound.
Equivalent to :meth:`_query.Query.scalar`.
rN)<06>oner8<00>collections_abc<62>Sequence<63>orm_exc<78> NoResultFound)r<00>rets rr<>z Result.scalar<61>sH<00><00> <18><16>(<28>(<28>*<2A>C<EFBFBD><1D>c<EFBFBD>?<3F>#;<3B>#;<3B><<3C><1A>
<EFBFBD><16>q<EFBFBD>6<EFBFBD>M<EFBFBD><4D><16>$<24>$<24> <18><17> <18>s<00>+3<00>3<00>A <03>A c<00> <00>|jjd<01><00>}|j|j<00>j |j
<00>j |j<00>j<00>j<00>S)zRReturn the first row.
Equivalent to :meth:`_query.Query.first`.
c<00>&<00>|jdd<02>Sry)<01>slice)rXs rr^zResult.first.<locals>.<lambda><3E>s<00><00>Q<EFBFBD>W<EFBFBD>W<EFBFBD>Q<EFBFBD><01>]r)
rr?rHrGr<>r<>r<>r<>r<><00>first)rrs rr<>z Result.first<73>s[<00><00><12>W<EFBFBD>W<EFBFBD> "<22> "<22>#:<3A> ;<3B><02> <0E>N<EFBFBD>N<EFBFBD>4<EFBFBD><<3C><<3C> (<28> <13>V<EFBFBD>D<EFBFBD>L<EFBFBD>L<EFBFBD> !<21> !<21> !<21>$<24>"5<>"5<> 6<> <12>U<EFBFBD>W<EFBFBD> <12>U<EFBFBD>W<EFBFBD> 
rc<00>><00>|j<00>j<00>S)zkReturn exactly one result or raise an exception.
Equivalent to :meth:`_query.Query.one`.
)r<>r<>r<>s rr<>z
Result.one<6E><00><00><00> <14>z<EFBFBD>z<EFBFBD>|<7C><1F><1F>!<21>!rc<00>><00>|j<00>j<00>S)z<>Return one or zero results, or raise an exception for multiple
rows.
Equivalent to :meth:`_query.Query.one_or_none`.
)r<><00> one_or_noner<65>s rr<>zResult.one_or_none<6E>s<00><00><14>z<EFBFBD>z<EFBFBD>|<7C>'<27>'<27>)<29>)rc<00>><00>|j<00>j<00>S)zKReturn all rows.
Equivalent to :meth:`_query.Query.all`.
)r<><00>allr<6C>s rr<>z
Result.all<6C>r<>rc<00><><00>|jjd|j<00>}|j||j<00>S)z`Retrieve an object based on identity.
Equivalent to :meth:`_query.Query.get`.
r)rr"rG<00> _get_impl<70>_load_on_pk_identity)r<00>identrjs rrgz
Result.get<65>s8<00><00>!<21><04><07><07> <0A> <0A>a<EFBFBD> <20><14><1C><1C>.<2E><05><14><EFBFBD><EFBFBD>u<EFBFBD>d<EFBFBD>&?<3F>&?<3F>@<40>@rc <00>T<00><00><03> <0C> <0A><0E>|jdjd<00><0E>j\<00> <0C> <0A> <0C> <0A><0E><03>fd<03>}<05>j}|j <00>}|xj
<00> fz c_|j |td<04><00>D<00><00><00>}t<00><03>j<00>D<00><07>cic]\}}<08> |j|<07><02>} }}t|j<00>j<00>jdi| <09><01><01>}
t|
<EFBFBD>} | dkDrt!j"<00><00>| r|
dSycc}}w)z6Load the given primary key identity from the database.r<00> parententityc<00>v<00><05><00>}|j<00>}|j<00>d|_d<00>
vrMt<00> j<00>
<EFBFBD>D<00><03>chc]\}}|<04><0F>|j
<00><02>}}}t j||<05>}t j|ddi<01>f|_ <00> jD]
}||<02>}<02> |Scc}}w)N<>
_orm_adaptT) r2<00>_get_condition<6F> _order_by<62>zip<69> primary_keyrc<00>sql_util<69>adapt_criterion_to_null<6C>_deep_annotate<74>_where_criteriar<61>) rj<00>_lcl_get_clauserXr<><00>value<75>nonesr6<00> _get_clause<73> _get_params<6D>mapper<65>primary_key_identityrs <20><><EFBFBD><EFBFBD><EFBFBD>r<00>setupz*Result._load_on_pk_identity.<locals>.setup<75>s<><00><><00>)<29>O<EFBFBD><15> <0C> <0C><0E>A<EFBFBD> <0A> <1C> <1C> <1E><1E>A<EFBFBD>K<EFBFBD><14>+<2B>+<2B>'*<2A><1E>*<2A>*<2A>,@<40>'<16><12>'<16>
<EFBFBD><03>U<EFBFBD><1D>}<7D>  <20><03>$<24>(<28>(<28>'<16><16><12>#+<2B>"B<>"B<>#<23>U<EFBFBD>#<12><0F> <19>'<27>'<27><0F>,<2C><04>9M<39>N<>!<0E>A<EFBFBD> <1D><1B>)<29>)<29><02><16>q<EFBFBD>E<EFBFBD><01>*<2A><14>H<EFBFBD><48>%s<00>B5c3<00>$K<00>|]}|du<00><01><00>
y<00>wrr)<02>.0<EFBFBD>elems r<00> <genexpr>z.Result._load_on_pk_identity.<locals>.<genexpr>&s<00><00><><00>G<>2F<32>$<24><14><14><1C>2F<32>s<00>r[Nr)<12> _raw_columns<6E> _annotationsr<73>rr2r$r?r9r<>r<>rcr0rHrGr<>r<>r<><00>MultipleResultsFound)rrGrjr<>r<>r<>r<00>id_valr<6C>r<>r<><00>lr<6C>r<>r<>s` ` @@@rr<>zResult._load_on_pk_identity<74>s-<00><><00><17>#<23>#<23>A<EFBFBD>&<26>3<>3<>N<EFBFBD>C<><06>#)<29>#5<>#5<> <20> <0B>[<5B> <15> <15>@<12>W<EFBFBD>W<EFBFBD><02>
<10>Y<EFBFBD>Y<EFBFBD>[<5B><02>
<EFBFBD> <0A> <0A>+<2B><1E>'<27> <0A> <0F> <1D> <1D> <11>5<EFBFBD>G<>2F<32>G<>G<>
<EFBFBD><02> (+<2B>$<24>f<EFBFBD>&8<>&8<>(<0E>
<EFBFBD>(<0E>#<23><06> <0B> <18> <0B> $<24> (<28> (<28>&<26> 0<>(<0E> <0F>
<EFBFBD><16>9<>b<EFBFBD>n<EFBFBD>n<EFBFBD>T<EFBFBD>\<5C>\<5C>2<>9<>9<>C<>F<EFBFBD>C<>D<><06> <0F><06>K<EFBFBD><01> <0C>q<EFBFBD>5<EFBFBD><19>.<2E>.<2E>0<> 0<> <0E><19>!<21>9<EFBFBD> <1C><17><>
s<00>'D$N)rrrrrrr<>r<>r<>rhr<>r<>r<>r<>r<>r<>r<>r<>r<>rgr<>rrrrErE6sb<00><00><08>=<3D>I<EFBFBD>!<21> <14><14>
/<2F>2<11> %<25>'<27>%<16>N J<01><18> 
<EFBFBD> "<22>*<2A>"<22>A<01>ArrE)r<00>collections.abc<62>abcr<63><00>logging<6E>rrrr<00>ormr<6D><00> orm.queryr<00> orm.sessionr<00>sqlrr r<><00> getLoggerr<00>logr r!rEr(rrr<00><module>r<>so<00><01><04>*<2A><0E><1C><13> <20><1D>!<21><16> <20>"<22><18>g<EFBFBD><17><17><08>!<21><03>6<>6<>,z<15>z<15>zA<18>A<18>H
<14> <1A> <1A>r