L ix dZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlmZ"ddlmZddl#m$Z$ddl%m&Z&dd l%m'Z'dd!l%m(Z(dd"l)m*Z*ddl)mZ+dd#l,m-Z-dd$l,m.Z.dd%l,m/Z/dd&lm0Z0e rBdd'l1m2Z2dd(lm3Z3dd)l4m5Z5dd*l6m7Z7dd+l8m9Z9dd,l:m;Z;dd-lm?Z?dd/l@mAZAdd0l%mBZBdd1l)mCZCe d2e3ZDe d4eE3ZFejZHeeIee eIeffZJdOd5ZKejd6dPd7ZMejd8d9:ejd6 dP dQd;ZO dRd<ZPd=d=d=d=d>ej`ej`d>d>d? dSd@ZQd=d=d=d=d=d>ej`ej`d>d>dA dTdBZR dUdCZS dVdDZTdEZU dWdFZVdGZWdHZXdIZYdJZZdKZ[GdLdMZ\dNZ]y=)Xzprivate module containing functions used to convert database rows into object instances and associated state. the functions here are called primarily by Query, Mapper, as well as some of the attribute loading strategies. ) annotations)Any)Dict)Iterable)List)Mapping)Optional)Sequence)Tuple) TYPE_CHECKING)TypeVar)Union) attributes)exc) path_registry)_DEFER_FOR_STATE)_RAISE_FOR_STATE)_SET_DEFERRED_EXPIRED) PassiveFlag) FromStatement)ORMCompileState) QueryContext)SelectInLoader) _none_set) state_str)util) result_tuple)ChunkedIteratorResult) FrozenResult)SimpleResultMetaData)select) ForUpdateArg)LABEL_STYLE_TABLENAME_PLUS_COL) SelectState) EMPTY_DICT)_IdentityKeyType)LoaderCallableStatus) ORMOption)Mapper)Query)Session) InstanceState) CursorResult)_ExecuteOptions)Result)Select_T)bound_Oc &t_jrdjj_n di_j}|j }j j xr3t|jdk(xr|jdj ttjjDcgc]}|jc}\}}jr-js j rt#j$dd}dddd }jjD cgc]} jr|nt| j.sU| j0s | j2r=|| j4j6j j8| j2n| j.rt:nd} } t=| } fd } j>jAd drt| dfd } tC| | jDjF} | jHjKtM|| _$jjNr d}d|f| _(jr| jj| Scc}w#t&$r>t)j*5j-dddn #1swYnxYwYwxYwcc} w)aReturn a :class:`.Result` given an ORM query context. :param cursor: a :class:`.CursorResult`, generated by a statement which came from :class:`.ORMCompileState` :param context: a :class:`.QueryContext` object :return: a :class:`.Result` object representing ORM results .. versionchanged:: 1.4 The instances() function now uses :class:`.Result` objects and has an all new interface. FTrrzCan't use yield_per with eager loaders that require uniquing or row buffering, e.g. joinedload() against collections or subqueryload(). Consider the selectinload() strategy for better flexibility in loading objects.Nc,tjd)Nz@Can't use the ORM yield_per feature in conjunction with unique()sa_excInvalidRequestError)entrys \/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/orm/loading.py _no_uniquezinstances.._no_uniques(( N  )legacy uncertainc>|sfd}|SstSdfd}|S)Ncnr t|Stjddrdndd#Y$xYw)Nz=Can't apply uniqueness to row tuple containing value of type z; z the values returned appear to bezthis datatype producesz non-hashable values)hashr9r:)objdatatyper@s r<goz,instances.._not_hashable..gosZ#Cy(00&\$;5,* -s 04FcJs t|St|S#YnxYwd)NT)rCid)rD_use_ids r<rFz,instances.._not_hashable..gos4#Cy(#w #Gs )rH)rEr?r@rFrIs` ` @r< _not_hashablez instances.._not_hashables+  IIG  Ir>)_unique_filtersc 3K |}i _|r j|}|sy j}r d}|Dcgc] }|| }}n.|Dcgc]!}t Dcgc] }|| c}#}}} r|r#t j j } j rft j j } j j|D]\}} | j | j rf|r5 j j j j||syScc}wcc}wcc}}ww)Nr) partials fetchmany _raw_all_rowstuplelistpost_load_pathsitemsclearinvokeupdate)size yield_perfetchprocrowrowstop_level_post_loads post_loadspath post_loadcontextcursor is_top_levelprocess single_entitys r<chunkszinstances..chunkssjI!G ((3,,.qz-23cS 33GL?BE9499:,0//557,(--!%g&=&=&C&C&E!FJ++113+58i!(($78-- ++113++223GHJ_4:s<.chunkss % %r>)source_supports_scalarsrawdynamic_yield_per)filteredis_single_entityc,tjd)Nz~The unique() method must be invoked on this Result, as it contains results that include joined eager loads against collectionsr8)rDs r<require_uniquez!instances..require_uniques,,& r>)) _new_runidrunidtop_level_contextrR compile_state_has_mapper_entities load_options_only_return_tupleslen _entitiessupports_single_entityrQzip row_processorrXloaders_require_bufferingloaders_require_uniquingr9r: Exceptionr safe_reraisecloseuse_id_for_hash_non_hashable_value_null_column_typecolumntype_legacy_uniquingrHr"execution_optionsgetr ra_is_server_side _attributesuniondictmulti_row_eager_loaders_unique_filter_state)rbrarvro query_entitylabelsextrar=rJentunique_filters row_metadatarfresultrrrkrcrdres`` @@@@r< instancesrOsLGM   ")";";"K"K "$))M11H  4 44 >  '' (A - >  # #A & = = #' )0(=(=(G(G$!..w? $  &%     - -//,,=  +05)x((22#"    ++00C4I4IJJOO"//@@!33..RD N((~L00d  $$%5u=F4L)  &# -  ..88 F ++11 h?F 44 (,^&<#**+ Mo$       LLN   hsD."KJ? )AKB L?KL !K;2 L ;L L  L zsqlalchemy.orm.contextc @tjj}|r|j|jj |d}|j } d|_t|jDcgc]\}}t||jr|} }}|jD cgc]} | j} } t| |jD cgc]} | jc} } g} |jD]k}| D]M}|| |jt!j"||t!j$|||ii||<O| j'| |m|j)| ||_Scc}}wcc} wcc} w#||_wxYw)azMerge a :class:`_engine.FrozenResult` back into a :class:`_orm.Session`, returning a new :class:`_engine.Result` object with :term:`persistent` objects. See the section :ref:`do_orm_execute_re_executing` for an example. .. seealso:: :ref:`do_orm_execute_re_executing` :meth:`_engine.Result.freeze` :class:`_engine.FrozenResult` Fr?load _recursive_resolve_conflict_map)r preloaded orm_context _autoflushORMSelectCompileState_create_entities_collection autoflush enumerater{ isinstance _MapperEntity _label_namer_extra_entities rewrite_rows_mergerinstance_state instance_dictappend with_new_rows)session statement frozen_resultr querycontextctxriemapped_entitiesrkeys keyed_tuplernewrows r<merge_frozen_resultr,s">>--L   , , H H% I C!!I&!"#--0 1!\778   ,/==9C99" #--@33&&@ #002 /F$ !9( '"11&)<"00;!#%.0 !/!F1I  MM+f- . /**62%7 :A&&s=F6"FF)F <FF %&F A0FF Fz:func:`_orm.merge_result`zyThe function as well as the method on :class:`_orm.Query` is superseded by the :func:`_orm.merge_frozen_result` function.) alternativec  tjj}|j}|r|j t |t r|}t|j}nd}|jj|d}|j} d|_ | xrt|jdk(}|r{t |jd|jrK|D cgc]>} |jt!j"| t!j$| |ii@} } nt'|} n t)|jD cgc]\} } t | |jr| } } } g} |jDcgc]}|j*}}t-||jDcgc]}|j.c}}|D]v}t'|}| D]M} ||  |jt!j"|| t!j$|| |ii|| <O| j1||x|r|j3| ||_ St| ||_ Scc} wcc} } wcc}wcc}w#||_ wxYw)zMerge a result into the given :class:`.Query` object's Session. See :meth:`_orm.Query.merge_result` for top-level documentation on this function. NTrFrrr)rrrrrrr!rjdatarrrrzr{rrrrrrQrrrrrr)queryiteratorrrrrrrreinstancerrrrrrrr[rs r< merge_resultrhs~$>>--LmmG (L)  **+  , , H H d I C!!I1&!))Ec#--.@A.E #--*L,F,FG%- !NN"11(;"00:!#%.0 #  h&cmm4Aqa!;!;<O F/2}}=COO=D=&cmmDss**DK 3c(Aay,$+NN&55fQi@&44VAY?!%')24 %3%q  k&12 3  ..v6&<%W  >E*&sQ A I:AI%)I:"I*(I:;I0I:$I5 7!I:A2I: I:%I:: Jc|jj|}|tj|}|jr+|j j |stjS|jrM|tjzstjS|tjzs|S |j|||S|Sy#tj$r|j|gYywxYw)zqLook up the given key in the given session's identity map, check the object for expired state if found. N) identity_maprrrinheritsmapperisaPASSIVE_CLASS_MISMATCHexpiredSQL_OKPASSIVE_NO_RESULTRELATED_OBJECT_OK _load_expiredorm_excObjectDeletedError_remove_newly_deleted)rrkeypassiverstates r<get_from_identityrs##'',H))(3 ??5<<#3#3F#;44 4 ==Z...!333z;;;   ##E73x -- --ug6 s/C%C.-C.NF) rx refresh_statewith_for_updateonly_load_props no_autoflushbind_argumentsrrequire_pk_colsis_user_refreshc T| |d} |d} ndx} } t||| ||||| ||| | |  S)z.Load the given identity key from the database.Nrr rxrrridentity_tokenrrrrr)load_on_pk_identity)rrrrxrrrrrrrridentrs r< load_on_identrsY  AQ!%%  !#''%!%+'' r>rc |} | j}|jrJ|tj}|jt j urtj}n |j}|| jd}|j\}}d|vryt|j|Dchc]\}}|||j}}}tj||}t!|t!|k(rt#j$dtj&|ddif|_t||jDcic]\}}||j|}}}nd}| d}||_n"| j*d}| j*|_nd}| r|r|st-j.d|j0j2}|j5|Dchc]+}|j6|j8j;r|-}}|r&t-j<d|d |j0d |j0j>}|D]$}||j@s|jC|}n|r@|jDr4|d |jFjHiz }|jJ|jD}tM||||||| \}}||_d|_'|r|d diz }t"jPjS| d|i} |jU||| | jWjY} | j[Scc}}wcc}}wcc}w#t\j^$rYywxYw)z6Load the given primary key identity from the database.Nplugin_subjectzofully NULL primary key identity cannot load any object. This condition may raise an error in a future release. _orm_adaptTFz9refresh_state is required when require_pk_cols is presentz7Please flush pending primary key changes on attributes z for mapper z! before proceeding with a refresh _current_path) version_checkrrrrr_sa_orm_load_options)paramsrr)0_clone_is_lambda_elementrdefault_load_options_compile_optionsr&default_select_compile_optionsrdefault_compile_options_propagate_attrs _get_clauser} primary_keyrsql_utiladapt_criterion_to_nullrzrwarn_deep_annotate_where_criteria_for_update_argr9 ArgumentErrorr_primary_key_propkeys differenceattrshistory has_changesr:_props_is_relationshiprrx load_pathparentoptions_set_get_options _order_byr' merge_withexecuteuniquescalarsoner NoResultFound)!rrprimary_key_identityrxrrrrrrrrrrqcompile_optionsrr _get_paramscolvaluenonesid_valrrrrefresh_state_prokeysrrmppnew_compile_optionsrs! r<rrs$ E A### ##88  ""  5 5 6*AA#44'''(89%+%7%7"k ' '#&f&8&8:N"OC=C $$E #::;NK5zS!566   # #K,1E F  (+$f&8&8( #   $ ( (& 0  " +    * !11 ?&&K !. 4 4 J J-77H ""3'//;;=   ,,-|M,@,@+AB,, D ! ! ( (  A!u%%"7"="=o"N  33O]-D-D-K-KLL AII}11 2(8#'#%')%-AAKu-- 222LA  /)    zz|S& 2 |  s$)L=M0M -MM$#M$ci}i} |r|| d<|r|| d<|r || d<d|d<|rt||d<|r|| d<|r|| d<| r|| z }|r||z }||fS) N_version_check_populate_existing_refresh_stateT_for_refresh_state_only_load_props_identity_token_is_user_refresh) frozenset) compile_optload_optpopulate_existingrrrrrrrxs r<rrsOL)6 %&-> )*)6 %&04,-.7.H*+*8 &'+: '(L &   r>c |r|j|} n |j} i} |j|jd| |xrt |dk(xr|dj } | D].} |r| j |vr| j||||f||| | d| 0|5||jur&|r|j|}n|}|j|yyy)Nmemoized_setupsr)rcolumn_collectionmemoized_populatorscheck_for_adapt) _iterate_polymorphic_properties_polymorphic_propertiessetrrzis_aliased_classrsetuppolymorphic_oncolumnsr)rvrrr_adapterr'with_polymorphicrpolymorphic_discriminatorkwpoly_propertiesquick_populatorsr)rpds r<_setup_entity_queryr8s @@  !88HH] % %'8:JK N#d)q.NT"X5N5NO   uyy?      ,/ 0+    "- %V-B-B B !:;B*B  $ C .r>cHtjdt|dy)NzLoading context for aW has changed within a load/refresh handler, suggesting a row refresh operation took place. If this event handler is expected to be emitting row refresh operations within an existing load or refresh operation, set restore_load_context=True when establishing the listener to ensure the context remains unchanged when the event handler completes.)rrr)rs r<_warn_for_runid_changedr: sII!*% 0  3r>c  "#$%&'()*+,-./0123456j"j} df} |j| j| d} | j} | j fdD} |jjdt }g}ggggggd}<j}|r|Dcgc]}|j|}}|j|.nd.||.d} | D]$}||vr ||}|tur+|dj|j|jfA|tur!|dj|jd fj|tur+|dj|j|j fd}|r#|j|}||j#|d }|s|j#|d }|r!|d j|j|f|j%||||||j|'|j'| j| | | d }|j)Dcic]\}}|t+|c}},| d D]}|j%||||,j,/jj.j0rjj.|zn|(j2j44j6xs j8+t;j<j>j@'t;j<j>jB0t;j2j>jD**r j2j>jD)tjF%tjH$j2jJ3jL2jN#jP55r3jR}|#|r|j|}|j#|6nd6s| d |j0f}|jvr9j|jTdk(rj|jVd}nd}jY|| }|r|| urJ|jZr/g}|}|r,|| ur(|j||j\}|r || ur$n|g}|D]M}t^ja(|rtc||| |}t^je(|jf|||Ot^ji(-r j11jk1nd1| d.jlrtnjp&ntnj &"#$%&'()*+,-./0123456fd} jrr| ss"#&.fd}!tu| ||||||! } | Scc}wcc}}w)z]Produce a mapper level row processor callable which processes rows into mapped instances.gettersNc3<K|]}j|ywri)r).0krs r< z&_instance_processor..Vs'%& a 'sr%)newquickdeferredexpireexistingeager)cached_populatorstodoprimary_key_getterrArDFrBrGrHloader))selectinload_polymorphicTentitiesrIc r.}|j}|}|j k7}d}d}n |f}"j|}|:|}|}|j k7}| }d}#rw$ru|sst|||$nc|dryd}d}d}jj }|}|}||_|_!|_"j||}|urd}|s|r9|rs|s|_ |_ t |||||| |r|j} |rrr@|jjj| |j| k7r t!|rq j"||j| k7rOt!|nCrA|jjj%| |j k7r t!||s |j&r)rr|j)|n|j+|"rj-|d|S|j.} | j0v}|r| sdrut3 ||||| } |rarM|j} |jjj%| | |j| k7r t!||j)|| r j4rj-|d|S)NTFrrF)rDrtr_validate_version_id class_manager new_instancerr session_id_add_unpresentrxr_populate_fullmanagerdispatchrr:rrefreshmodified_commit _commit_all add_stateunloadedrM_populate_partialinvoke_all_eagers)%r[rrdict_isnew currentloadloaded_instance identitykeyeffective_populate_existingexisting_runidr[to_loadraidentity_classrrris_not_primary_keyload_evtrloaded_as_persistentrrpersistent_evtr# populatorsr`rIpropagated_loader_options refresh_evtrefresh_identity_keyrrtrQsession_identity_maprversion_id_getters% r< _instancez&_instance_processor.._instance,s !Eyy{H!(+EKK5(EK#O "3'K ,// %h/&x0' '5$$. $33E;G&7# E !*. ' 5)1L%>""+ +  "'" ..33E7C ;;.83E:%,W__eD ;;.83E: MM**22w{{e+/6.%..$ e_=))%1EF##E40J?~~H!1!11EH 7(; , "). ..66ugwO ;;.83E:MM%1W66##E51r>c6|f}|ds|Sy)Nr)r[rbrfrrgrIs r< ensure_no_pkz)_instance_processor..ensure_no_pks/"3'K &k!n5""r>);_identity_classrvrr _prop_set intersectionr'rr0 _tuple_getterrrr_deferred_column_loaderrr_raise_column_loader_gettercreate_row_processorr,rSrQrl current_pathr_rrr#always_refreshboolrOrUrrVrirrhash_keyrtrrversion_id_colstrategy local_opts_should_selectin_load is_mapperrPostLoad path_exists_load_subclass_via_incallable_for_pathr for_context_identity_key_from_stateallow_partial_pksr issupersetpolymorphic_map_decorate_polymorphic_switch)7rrrarr_r1rrr3_polymorphic_fromrv getter_keyr<propsr6rHrGpk_colscproprgetter adapted_colrrroption_entitiesselectin_load_via _load_supers_endmost_mapper_selectinload_entity callable_rqrtrfrrrrgrhrrirjr#rkr`rIrlrmrnrtrQrorrps7 `` `` @@@@@@@@@@@@@@@@@@@@@r<_instance_processorr,sX*++N))MV$Jhh}//TBG    &&&'*9'E 88    1:     ((G7>?!7??1-??!'!5!5g!> !% "3"4  @ "D''&t,**%e,334#?#?@11&h/66%7HI,,%e,334#<#<="F*'.ooc&: &2%+^^K%GF!!'U!;)'299488V:LM 11#( ""#- D!A@ "D )):w? 345F5L5L5NOzsE#tE{"OJ  !! \4*  !( A A  - - 2 2 **T1  #??7711JV5J5JF((11667Hv++44<<=K'//22GGHN&77LL..N,,M))J MME++N))M..  %!(!@ &~ >  $  .:# '$$ $););C)@)I)IN * &005@@LO"O"88    !2:K!K#* ** **! "3#'/@@ ''8&5&>&>O $'/@@ !22 (4 $''Y(<1(%#  **(//((  *$$WiII,00  '$*#B#B$  $$%9: &11&33^^^^@&7  1       %     s @`Ps >W-W2c  |j |j}|jdu}t jjdk( |j s|r j ||\ n j\   fd}|S)Nrc bs4|Dcgc]$\}}|jjr||f&}}}|sy|j}|jr#j |}j |} n}} |f|j z| fz} j | } |jj| _ | xjd|jiz c_ |jr| jd} |r|dtj} |tjd}|jj| t!| D cgc](\} }r| j"ddn| j"d*c}} j%j'j)|ryycc}}wcc}} w)NrT)r#rr) primary_keys)r+_would_selectin_load_only_from_given_mapperrr _prepend_path _with_optionsrrvrrr#rr _chunksizerrrrrr all)rar_states load_onlyeffective_entitysv orig_queryenable_opt_lcldisable_opt_lclrq2chunkr load_attrs disable_opt enable_optrrr zero_idxs r<do_loadz&_load_subclass_via_in..do_loads#Aq88GGOAF ]] ;;'55d;N)77=O'N)O   8 8 8O;M M QYY %33KK ==  $ $%%%=B1~889EN5578F OO # #27"-E:,4 ! Q1E" fhwwy;F"s )F%<-F+)rrrz base_mapperrr-_subclass_load_via_in_subclass_load_via_in_mapper) rar_entitypolymorphic_fromrpolymorphic_from_mappernot_against_basemostrrrrr rs ` @@@@@r<rrs]]F /552;;4G6%%112a7H "6%+%A%A $& ":{&,%H%H":{/'/'b Nr>c $|r|j|_|dD]\} } | ||| <|r>|dD]5\} } |j| d| s|jj| 7n+|dD]#\} } | s |jj| %|dD]\} } | |||y||jk7r<||_|dD]\} } | |vs | ||| <|dD]\} } | |||y|dD]\} } | |||y)NrBrDrArE)rtpopexpired_attributesaddr) rar[rr^r_rrar#rkrr set_callable populators r<rSrS1sb mm %g. %KCE#J % %/%9 6!\ #t$,,005 6 &0%9 6!\,,005 6)/ )NC eUC ( ) eoo %$&g. )KC%#C[c  ) )4 )NC eUC ( ))4 )NC eUC ( )r>c|sK|r|dD]\}} ||vs | |||<|j|} |dD]\}} || vs | |||n|} | |j|<|dD]\}} || vs | |||<|dD]:\}} || vs |j|d| s |jj|<|dD]\}} || vs | ||||dD]\}} ||vs | |||| S)NrBrErDrArF)rMrrr) rar[rr^r_rr[rkrrrerrs r<r\r\js_  )'2 - V(?!'E#J -""5)(4 -NCg~%, -")%g. )KCg~#C[c  )",H!5 6 Cg~ #t$,,005  6 )/ -NCg~%, -%W-)Y h  eUC () Nr>c |j|||j||k7rItjdt |d|j|||jd||dy)Nz Instance 'z' has version id 'z3' which does not match database-loaded version id 'z'.)_get_state_attr_by_columnrrStaleDataErrorr)rrr^r[rs r<rNrNsv '' uf++ $$% 005&"7"7s    r>c  || n j Srj  fd} tj|  j    fd} | S)Nc  j|}|ury|jsyt|S#t$rt d|zwxYw)NF)rz*No such polymorphic_identity %r is defined)rrrKeyErrorAssertionError) discriminator sub_mapperr1rarr_rrs r<configure_subclass_mapperz?_decorate_polymorphic_switch..configure_subclass_mappers| // >J V#^^F+&"(   <}L  s ;Ac |}|T|}|r||S|dur9|}|r.tjd|d dj|dy|S|}|rtjd|d dy)NFzRow with identity key zG can't be loaded into an object; the polymorphic discriminator column 'z ' refers to z-, which is not a sub-mapper of the requested z ' is NULL)r9r:r) r[rrqrbrtr instance_fnrpolymorphic_instancesr/s r<polymorphic_instancez:_decorate_polymorphic_switch..polymorphic_instancess  $-m; r>)r/r0r PopulateDictr{)rrarrrr_r3r1rtrrrrr/s`````` `` @@@r<rrsx!,2.. 8.!--.GH ^^N +F$$L r>cVeZdZdZdZdZdZdZedZ edZ edZ y ) rz4Track loaders and states for "post load" operations.)loadersr load_keyscRi|_tj|_d|_yri)rr OrderedDictrr)selfs r<__init__zPostLoad.__init__s  &&( r>c"||j|<yri)r)rr overwrites r<rZzPostLoad.add_states ' Er>c|jsytjj|}|jj D]x\}}}}}}|jj D cgc].\} } | jjj|r| | f0} } } | s`|||| |jg|i|z|jjycc} } wri) rr PathRegistrycoercervaluesrSrTrrrrT) rrar_effective_contexttokenlimit_to_mapperrJargr4rrrs r<rUzPostLoad.invoke s{{ ))006\\ "       )- (9(9(;$E9==''++O< "F %tVT^^FIMO " s.3Ccf|jj|j}| |r||_|Sri)rRrr_r)clsrar_rpls r<rzPostLoad.for_context!s/  $ $ ( ( 3 >o*BL r>c|j|jvxr%||j|jjvSri)r_rRr)rrar_rs r<rzPostLoad.path_exists(s> II00 0 Bw..tyy9AAA r>c|j|jvr|j|j}n#tx}|j|j<||||||f|j|<yri)r_rRrr) rrar_rrloader_callablerr4rs r<rzPostLoad.callable_for_path/sg 99// /((3B6>j @B((3         5r>N) __name__ __module__ __qualname____doc__ __slots__rrZrU classmethodrrrrsr>r<rrsU>0I '.     r>rc|j}|s!tjdt|zt |t j z}|r)|j|jj}|jr=|js1|j||}|t||}t||d|||St |j}|r |j} n}|j D cgc]} |j"| j} } |j$j| r!t'j(dt|z|j+|} t-j.| r |j0rt-j2| r t5j6dt|yt|t9|j;t<| |||} |r| tj>|yycc} w)z4initiate a column-based attribute refresh operation.zQInstance %s is not bound to a Session; attribute refresh operation cannot proceedN)rrrz_Instance %s cannot be refreshed - it's not persistent and does not contain a full primary key.zwInstance %s to be refreshed doesn't contain a full primary key - can't be refreshed (and shouldn't be expired, either).)rrr) rrDetachedInstanceErrorrrr NO_AUTOFLUSHrwrrrconcrete_optimized_get_statementrrrr_columntopropertyrr9r:rrissubsetrrr warn_limitedr#set_label_styler%r) rrattribute_namesrrrrstmthas_key identity_keyrpk_attrsrs r<load_scalar_attributesrAsmmG ++ 9((//"wC s2 G?)rbzCursorResult[Any]rarreturnz Result[Any])T)rz Query[Any]rz>Union[FrozenResult, Iterable[Sequence[Any]], Iterable[object]]rrrz"Union[FrozenResult, Iterable[Any]]) rr-rz Mapper[_O]rz_IdentityKeyType[_O]rrrz)Union[LoaderCallableStatus, Optional[_O]])rr-rUnion[Select, FromStatement]rzOptional[_IdentityKeyType]rxOptional[Sequence[ORMOption]]rOptional[InstanceState[Any]]rOptional[ForUpdateArg]rOptional[Iterable[str]]rrrMapping[str, Any]rr0rrrr)rr-rrr zOptional[Tuple[Any, ...]]rxrrrrrrrrz Optional[Any]rrrrrr0rrrr)NNNNNN)NNN)NNNN)^r __future__rtypingrrrrrr r r r r rrrrrbaserrrrrarrr strategiesrrrrr9enginer engine.resultr r!r"sqlr#rsql.selectabler$r%r&r'_typingr(r) interfacesr*rr+rr,rr-rr. engine.cursorr/engine.interfacesr0r1r2r3objectr5counterrsstr_PopulatorDictrpreload_modulerbecame_legacy_20rrrrrr8r:rrrSr\rNrrrrsr>r<rs# ""'"$!&!1(0");()*% $,3& T T  T\\^ c4c3h001Zz-.8&/8&vF -.Q& Q&LQ& Q&( Q&/  Q&h# # # # # / #V3726.2/3(,)-!!$ $+$ $$ 0 $ 0 $,$-$$&$'$$$X3726.2/3$((,)-!!u u+u4u 0 u 0 u,u-u"uu&u'uuuv!R"4%n &"zz EP3)r"J "V rE E PU0r>