
    ,h                       S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   SSKJr  SSK!J"r"  SSK#J$r$  SSK#J%r%  SS K#J&r&  SS!K'J(r(  SSK'Jr)  SS"K*J+r+  SS#K*J,r,  SS$K*J-r-  SS%KJ.r.  \(       aB  SS&K/J0r0  SS'KJ1r1  SS(K2J3r3  SS)K4J5r5  SS*K6J7r7  SS+K8J9r9  SS,K:J;r;  SS-K<J=r=  SS.K>J?r?  SS/K#J@r@  SS0K'JArA  \" S1\S29rB\" S3\CS29rD\R                  " 5       rF\\G\\\G\4      4   rHSNS4 jrI\R                  " S55      SOS6 j5       rK\R                  " S7S8S99\R                  " S55       SO       SPS: jj5       5       rM          SQS; jrNS<S<S<S<S=\R\                  \R\                  S=S=S>.	                       SRS? jjrOS<S<S<S<S<S=\R\                  \R\                  S=S=S@.
                         SSSA jjrP      STSB jrQ   SUSC jrRSD rS    SVSE jrTSF rUSG rVSH rWSI rXSJ rY " SK SL5      rZSM r[g<)Wzprivate 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)	_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                  ^ ^^^^^ [        5       Tl        TR                  (       a  SmTR                  R                  Tl        O	Sm0 Tl        TR                  nUR
                  nTR                  R                  (       + =(       a8    [        UR                  5      S:H  =(       a    UR                  S   R                  m [        [        TR                  R                   Vs/ s H  nUR                  TT 5      PM     sn6 5      u  mpVTR                  (       a8  TR                  (       d  TR                   (       a  ["        R$                  " S5      eS nSSS.S	 jnTR                  R                   V	s/ s H  n	TR                  (       a  UOU	R.                  (       d\  U	R0                  (       d  U	R2                  (       a:  U" U	R4                  R6                  TR                  R8                  U	R2                  S9OU	R.                  (       a  [:        OSPM     n
n	[=        WWU
S
9nUU UUU4S jnTR>                  RA                  SS5      (       a  [        U" S5      5      mU4S jn[C        UUTT T RD                  RF                  S9nURH                  RK                  [M        UTS95      Ul$        TR                  RN                  (       a  S nSU4Ul(        TR                  (       a  UR                  TR                  5        U$ s  snf ! [&         aF    [(        R*                  " 5          T R-                  5         SSS5         GM  ! , (       d  f        GN= ff = fs  sn	f )a  Return 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.

FTr   r   zCan'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                .    [         R                  " S5      e)Nz@Can't use the ORM yield_per feature in conjunction with unique()sa_excInvalidRequestError)entrys    N/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/orm/loading.py
_no_uniqueinstances.<locals>._no_unique   s    ((N
 	
    )legacy	uncertainc               V   ^ ^^ U(       d	  U U4S jnU$ T(       d  [         $ SmU4S jnU$ )Nc                   > T(       a   [        U 5      $ [        R                  " ST< ST(       a  SOS S35      e!    N+= f)Nz=Can't apply uniqueness to row tuple containing value of type z; z the values returned appear to bezthis datatype producesz non-hashable values)hashr8   r9   )objdatatyper@   s    r;   go,instances.<locals>._not_hashable.<locals>.go   sZ    #Cy( 00&\$ ;5, *- s	   
< A Fc                T   > T(       d   [        U 5      $ [        U 5      $ !    O= fSmN)NT)rC   id)rD   _use_ids    r;   rF   rG      s3     #Cy( #w
 #Gs   
  $)rI   )rE   r?   r@   rF   rJ   s   ` ` @r;   _not_hashable instances.<locals>._not_hashable   s+      IIG  Ir>   )_unique_filtersc              3  D  >#     U n0 T
l         U(       a  TR                  U5      nU(       d  g OTR                  5       nT(       a  TS   nU Vs/ s H
  oC" U5      PM     nnO3U VVs/ s H$  n[        T Vs/ s H
  o3" U5      PM     sn5      PM&     nnnT(       a  U(       a#  [	        T
R
                  R                  5       5      nT
R
                  (       am  [	        T
R
                  R                  5       5      nT
R
                  R                  5         U H  u  pU	R                  T
U5        M     T
R
                  (       a  Mm  U(       a5  T
R
                  R                  5         T
R
                  R                  W5        Uv   U(       d  g GM  s  snf s  snf s  snnf 7f)Nr   )
partials	fetchmany_raw_all_rowstuplelistpost_load_pathsitemsclearinvokeupdate)size	yield_perfetchprocrowrowstop_level_post_loads
post_loadspath	post_loadcontextcursoris_top_levelprocesssingle_entitys             r;   chunksinstances.<locals>.chunks   su    I!G((3  ,,.qz-23UcS	U3 GLFKsE9499:e    ,0//557,( --!%g&=&=&C&C&E!FJ++113+5!(($7 ,6 --- ++113++223GHJ_  4 :s>   AF F F (F7FFB0F AF FF prebuffer_rowsc                   > [        T5      $ N)iter)rY   _prebuffereds    r;   rh   ri     s    %%r>   )source_supports_scalarsrawdynamic_yield_per)filteredis_single_entityc                .    [         R                  " S5      e)Nz~The unique() method must be invoked on this Result, as it contains results that include joined eager loads against collectionsr7   )rD   s    r;   require_unique!instances.<locals>.require_unique  s    ,,& r>   ))
_new_runidrunidtop_level_contextrT   compile_state_has_mapper_entitiesload_options_only_return_tupleslen	_entitiessupports_single_entityrS   ziprow_processorrZ   loaders_require_bufferingloaders_require_uniquingr8   r9   	Exceptionr   safe_reraisecloseuse_id_for_hash_non_hashable_value_null_column_typecolumntype_legacy_uniquingrI   r!   execution_optionsgetr   rc   _is_server_side_attributesuniondictmulti_row_eager_loaders_unique_filter_state)rd   rc   rz   rr   query_entitylabelsextrar<   rK   entunique_filtersrow_metadatarh   resultru   rn   re   rf   rg   s   ``             @@@@r;   	instancesr   N   s    LGM  ")";";"K"K"$))M11H  444 	>''(A-	>##A&== #' )0(=(=(G(G(G !..w?(G$
 & --//,,= 

 +05 )x ((22#" 3C     ++00C4I4I JJOO"//@@!33 ..RD 3#  ( (~L0 0d   $$%5u== F4L)	& # - ..88F  ++11h?F
 44	 (,^&<#**+Mo$   LLN !   hsD   "L #L?AL 6B#ML M*M;M
M	MMzsqlalchemy.orm.contextc           
     X   [         R                  R                  nU(       a  U R                  5         UR                  R                  USS9nU R                  n SU l        [        UR                  5       VVs/ s H#  u  px[        XR                  5      (       d  M!  UPM%     n	nnUR                   V
s/ s H  oR                  PM     nn
[        XR                   V
s/ s H  oR                  PM     sn
5      n/ nUR                  5        Hk  nU	 HK  nX   c  M
  U R                  [         R"                  " X   5      [         R$                  " X   5      U0 0 S9X'   MM     UR'                  U" U5      5        Mm     UR)                  U5      X`l        $ s  snnf s  sn
f s  sn
f ! X`l        f = f)aZ  Merge 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`

Fr?   load
_recursive_resolve_conflict_map)r   	preloadedorm_context
_autoflushORMSelectCompileState_create_entities_collection	autoflush	enumerater   
isinstance_MapperEntity_label_namer   _extra_entitiesrewrite_rows_merger   instance_stateinstance_dictappendwith_new_rows)session	statementfrozen_resultr   querycontextctxr   iemapped_entitiesr   keyskeyed_tupler   newrows                  r;   merge_frozen_resultr   +  s   " >>--L

,
,
H
H% I C !!I&! "#--0
0!778 0 	 

 ,/==9=C=9"--@-3&&-@
 #002F$9( '"11&)<"00;!#%.0 !/ !FI % MM+f-. 3 **62%7

 : A& &sC   F! 8 FF"F! 3FF! F
2$F! A0F! F! !F)z: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                h   [         R                  R                  nU R                  nU(       a  UR	                  5         [        U[        5      (       a  Un[        UR                  5      nOSnUR                  R                  U SS9nUR                  n SUl        U(       + =(       a    [        UR                  5      S:H  nU(       a  [        UR                  S   UR                  5      (       aM  U V	s/ s H>  n	UR                  [         R"                  " U	5      [         R$                  " U	5      U0 0 S9PM@     n
n	GO(['        U5      n
GO[)        UR                  5       VVs/ s H#  u  p[        XR                  5      (       d  M!  UPM%     nnn/ n
UR                   Vs/ s H  oR*                  PM     nn[-        XR                   Vs/ s H  oR.                  PM     sn5      nU Hz  n['        U5      nU HO  nUU   c  M  UR                  [         R"                  " UU   5      [         R$                  " UU   5      U0 0 S9UU'   MQ     U
R1                  U" U5      5        M|     U(       a  UR3                  U
5      Xtl        $ [        U
5      Xtl        $ s  sn	f s  snnf s  snf s  snf ! Xtl        f = f)zMerge a result into the given :class:`.Query` object's Session.

See :meth:`_orm.Query.merge_result` for top-level documentation on this
function.

NTr   Fr   r   r   )r   r   r   r   r   r   r    rm   datar   r   r   r~   r   r   r   r   r   r   rS   r   r   r   r   r   r   )queryiteratorr   r   r   r   r   r   rg   instancer   r   r   r   r   r   r   r]   r   s                      r;   merge_resultr   g  sy   $ >>--LmmG (L)) **+

,
,
H
Hd I C !!I1&!))Ec#--.@A.E#--*L,F,FGG %-	 %- NN"11(;"00:!#%.0 #  %-  	 h &cmm44DAa!;!;< 4  
 F/2}}=}OO}D=&mmDms**mDK  c(Aay,$+NN&55fQi@&44VAY?!%')24 %3 %q	 ) k&12    ..v6 & <%W	 > E* &sW   A J) 4AJ9)J) " JJJ) J4J) 	J$
 J) A:J) 
J) J) )J1c                   U R                   R                  U5      nUb  [        R                  " U5      nUR                  (       a0  UR
                  R                  U5      (       d  [        R                  $ UR                  (       aV  U[        R                  -  (       d  [        R                  $ U[        R                  -  (       d  U$  UR                  XS5        U$ U$ g! [        R                   a    U R                  U/5         gf = f)ziLook up the given key in the given session's identity map,
check the object for expired state if found.

N)identity_mapr   r   r   inheritsmapperisaPASSIVE_CLASS_MISMATCHexpiredSQL_OKPASSIVE_NO_RESULTRELATED_OBJECT_OK_load_expiredorm_excObjectDeletedError_remove_newly_deleted)r   r   keypassiver   states         r;   get_from_identityr     s     ##'',H))(3??5<<#3#3F#;#;444 ==Z...!333z;;;
  ##E3 x -- --ug6s   
C   &D	D	NF)	r|   refresh_statewith_for_updateonly_load_propsno_autoflushbind_argumentsr   require_pk_colsis_user_refreshc       	        N    Ub  US   nUS   nOS=p[        U UUUUUUUUUU	U
US9$ )z.Load the given identity key from the database.Nr   r   
r|   r   r   r   identity_tokenr   r   r   r   r   )load_on_pk_identity)r   r   r   r|   r   r   r   r   r   r   r   r   identr   s                 r;   load_on_identr     sW      AQ!%%!#''%!%+'' r>   r   c       
   
     `   UnUR                  5       nUR                  (       a   eUc  [        R                  nUR                  [
        R                  L a  [        R                  nOUR                  nUb  UR                  S   nUR                  u  nnSU;   a  [        UR                  U5       VVs1 s H  u  nnUb  M  UU   R                  iM     nnn[        R                  " UU5      n[!        U5      [!        U5      :X  a  ["        R$                  " S5        [        R&                  " USS05      4Ul        [        UUR                  5       VVs0 s H  u  nnUU   R                  U_M     nnnOSnUb	  SnX^l        O#UR*                  b  SnUR*                  Ul        OSnU(       a  U(       a  U(       d  [,        R.                  " S5      eUR0                  R2                  nUR5                  U5       Vs1 s H3  nUR6                  U   R8                  R;                  5       (       d  M1  UiM5     nnU(       a'  [,        R<                  " SU S	UR0                   S
35      eUR0                  R>                  nU H*  nUU   R@                  (       d  M  URC                  U5      n  O   U(       aE  URD                  (       a4  USURF                  RH                  0-  nURJ                  " URD                  6 n[M        UUUUUUUS9u  nnUUl        SUl'        U(       a  USS0-  n["        RP                  RS                  U
SU05      n
U RU                  UUU
U	S9RW                  5       RY                  5       n  U R[                  5       $ s  snnf s  snnf s  snf ! [\        R^                   a     gf = f)z6Load the given primary key identity from the database.Nplugin_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_checkr   r   r   r   r   _sa_orm_load_options)paramsr   r   )0_clone_is_lambda_elementr   default_load_options_compile_optionsr%   default_select_compile_optionsr   default_compile_options_propagate_attrs_get_clauser   primary_keyr   sql_utiladapt_criterion_to_nullr~   r   warn_deep_annotate_where_criteria_for_update_argr8   ArgumentErrorr   _primary_key_propkeys
differenceattrshistoryhas_changesr9   _props_is_relationshipr   r|   	load_pathparentoptions_set_get_options	_order_byr&   
merge_withexecuteuniquescalarsoner   NoResultFound)!r   r   primary_key_identityr|   r   r   r   r   r   r   r   r   r   r   qcompile_optionsr   r   _get_paramscolvaluenonesid_valr   r   r   refresh_state_prokeysr   r  mppnew_compile_optionsr   s!                                    r;   r   r     s   $ EA#####88 	""55	6 *AA#44'''(89%+%7%7"k '' #&f&8&8:N"O"OJC %C $$"O   #::;NK5zS!566		 ##K,1EF
 (+$f&8&8(
(# $((&0( 	 
 "+				*!11?&&K  !. 4 4 J J -77H
H""3'//;;= H 	 

  ,,-|M,@,@+A B,, D !!(( A!u%%%"7"="=o"N !
 33O]-D-D-K-KLLII}112(8#'#%')% -AAKu--222LA 	/)	 	 	
 
	 zz|S&
2
|    s0   3
NNN:0N.N5N N-,N-c                    0 n0 n	U(       a  X9S'   U(       a  X)S'   U(       a	  XYS'   SUS'   U(       a  [        U5      US'   U(       a  XiS'   U(       a  XyS'   U	(       a  X-  nU(       a  X-  n X4$ )	N_version_check_populate_existing_refresh_stateT_for_refresh_state_only_load_props_identity_token_is_user_refresh)	frozenset)
compile_optload_optpopulate_existingr   r   r   r   r   r  r|   s
             r;   r  r    s     OL)6%&->)*)6%&04,-.7.H*+*8&'+:'( &  r>   c	           	        U(       a  UR                  U5      n
OUR                  n
0 nUR                  U R                  SU5        U=(       a$    [	        U5      S:H  =(       a    US   R
                  nU
 H7  nU(       a  UR                  U;  a  M  UR                  " U UUU4UUUUS.U	D6  M9     Ub:  XR                  La+  U(       a  UR                  U   nOUnUR                  U5        g g g )Nmemoized_setupsr   )r   column_collectionmemoized_populatorscheck_for_adapt)_iterate_polymorphic_properties_polymorphic_propertiessetr   r~   is_aliased_classr   setuppolymorphic_oncolumnsr   )rz   r   r   ra   adapterr+  with_polymorphicr   polymorphic_discriminatorkwpoly_propertiesquick_populatorsr-  r  pds                  r;   _setup_entity_queryr<    s      @@
 !88HH]%%'8:JK N#d)q.NT"X5N5NO uyy?	
	

 ,/ 0+
	
 
	
 !  	"-%-B-BB!:;B*B  $ C 	.r>   c                L    [         R                  " S[        U 5      < S35        g )NzLoading 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.)r   r   r   )r   s    r;   _warn_for_runid_changedr>    s    II !*% 0	3r>   c
                  ^^^^^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6 TR                   m"TR                  n
ST4nUR                  U
R                  US5      nUGc  TR                  nTb  UR                  U4S jT 5       5      nUR                  TR                  S[        5      n/ n/ / / / / / S.nTcD  TR                  nU(       a  U Vs/ s H  nUR                  U   PM     nnUR                  U5      m.OSm.UUT.S.nU GH@  nUU;   Ga$  UU   nU[        L a,  US   R                  UR                  UR                  45        ME  U[        L a"  US   R                  UR                  S	45        Mp  U[        L a,  US   R                  UR                  UR                   45        M  SnU(       a$  UR                  U   nUb  UR#                  US	5      nU(       d  UR#                  US	5      nU(       a#  US
   R                  UR                  U45        GM  UR%                  TU UTUUU5        GM/  UR                  U5        GMC     UR'                  U
R                  X5        US   nUR)                  5        VVs0 s H  u  nnU[+        U5      _M     snnm,US    H  nUR%                  TXTX5T,5        M     TR,                  m/TR                  R.                  R0                  (       a  TR                  R.                  U-   OUm(TR2                  R4                  m4TR6                  =(       d    TR8                  m+[;        TR<                  R>                  R@                  5      m'[;        TR<                  R>                  RB                  5      m0[;        TR2                  R>                  RD                  5      m*T*(       a   TR2                  R>                  RD                  m)[        RF                  m%[        RH                  m$TR2                  RJ                  m3TRL                  m2TRN                  m#TRP                  m5T5(       a9  TRR                  nUb(  U(       a  UR                  U   nUR#                  U5      m6OSm6T(       Gd+  U	Gb'  SUR0                  4nUTR                  ;   a:  TR                  U   RT                  S:X  a  TR                  U   RV                  S   nOSnTRY                  UU	5      nU(       a  UU	La  Tb   eURZ                  (       a<  / nUnU(       a0  UU	La+  UR                  U5        UR\                  nU(       a  UU	La  M+  OU/nU HT  n[^        Ra                  TT(U5      (       a  M!  [c        TUUU	U5      n[^        Re                  TT(URf                  UUU5        MV     [^        Ri                  TT(T5      m-T(       a!  TR                  m1T1c  TRk                  T5      m1OSm1US   m.TRl                  (       a  [n        Rp                  m&O[n        R
                  m&UU"U#U$U%U&U'U(U)UUU*U+U,U-U.U/U0U1UU2U3U4U5U64S jn TRr                  (       a*  U	(       d#  T(       d  U"U#U&U.4S jn![u        U TU TUUUUU!5	      n U $ s  snf s  snnf )zYProduce a mapper level row processor callable
which processes rows into mapped instances.gettersNc              3  B   >#    U  H  nTR                   U   v   M     g 7frl   )r  ).0kr   s     r;   	<genexpr>&_instance_processor.<locals>.<genexpr>U  s      '*9Qa /s   r)  )newquickdeferredexpireexistingeager)cached_populatorstodoprimary_key_getterrF  rI  FrG  rL  rM  loader))selectinload_polymorphicTentitiesrN  c                  > T(       a.  TnUR                  5       nT" U5      nUR                  T :g  nSnSnOTT" U 5      T4nT"R                  U5      nUbL  T" U5      nT" U5      nUR                  T :g  nU(       + nSnT#(       a  T$(       a  U(       d  [        TXU T$5        OfT" US   5      (       a  g SnSnSnTR                  R                  5       nT" U5      nT" U5      nXql        TUl        T!Ul        T"R                  X5        TnTUL a  SnU(       d  U(       Ga~  U(       a  T(       d  U(       d  TUl
        TUl        [        TU UUUTUUT5	        U(       Ga%  UR                  n	U(       a~  T(       aA  UR                  R                  R                  UT5        UR                  U	:w  a  [!        U5        T(       a.  T" TR"                  U5        UR                  U	:w  a  [!        U5        OIT(       aB  UR                  R                  R%                  UTT5        UR                  T :w  a  [!        U5        U(       d  UR&                  (       a3  T(       a  T(       a  UR)                  UT5        OUR+                  UT"5        T(       a  TR-                  US5        U$ UR.                  n
UTR0                  ;  nU(       a  U
(       d
  TS   (       a  [3        TU UUUTU
T5      nU(       af  T(       aN  UR                  n	UR                  R                  R%                  UTU5        UR                  U	:w  a  [!        U5        UR)                  X;5        T(       a#  TR4                  (       a  TR-                  US5        U$ )NTFr   rK  )rD   rx   r   _validate_version_idclass_managernew_instancer   r   
session_id_add_unpresentr|   r  _populate_fullmanagerdispatchr   r>  r   refreshmodified_commit_commit_all	add_stateunloadedrO   _populate_partialinvoke_all_eagers)%r]   r   r   dict_isnewcurrentloadloaded_instanceidentitykeyeffective_populate_existingexisting_runidr`  to_loadrc   identity_classr   r   r   is_not_primary_keyload_evtr  loaded_as_persistentr   r   persistent_evtr'  
populatorsrb   rN  propagated_loader_optionsrefresh_evtrefresh_identity_keyr   rx   rV  session_identity_mapr   version_id_getters%               r;   	_instance&_instance_processor.<locals>._instance+  s   !Eyy{H!(+EKK5(EK#O
 "3'K ,//<H#&x0%h/u,"'i"' %6{(c3D &k!n55""&!//<<>%h/&x0'	'5$ $. $33EG&7#E!*.'
 5 )1L%>""++
  "'"..33E7C ;;.83E:%,W__eD ;;.83E: MM**22w {{e+/6.%..$e_=))%1EF##E40J ? ~~H!1!11EH
7(;
 ,	 ")...66ugwO ;;.83E:MM%1W66##E51r>   c                @   > TT" U 5      T4nT" US   5      (       d  U$ g )Nr    )r]   rg  rk  r   rl  rN  s     r;   ensure_no_pk)_instance_processor.<locals>.ensure_no_pk  s2    "3'K
 &k!n55""r>   );_identity_classrz   r   r   	_prop_setintersectionr&   r   r4  _tuple_getterr   r   r   _deferred_column_loaderr   r   _raise_column_loader_gettercreate_row_processorr0  rU   rS   rq  current_pathra   r   r   r'  always_refreshboolrT  rZ  r   r[  rn  r   r   hash_keyrx   r   r   version_id_colstrategy
local_opts_should_selectin_load	is_mapperr   PostLoadpath_exists_load_subclass_via_incallable_for_pathr   for_context_identity_key_from_stateallow_partial_pksr   
issupersetpolymorphic_map_decorate_polymorphic_switch)7r   r   rc   r   ra   r5  r   r   r7  _polymorphic_fromrz   
getter_keyr@  propsr:  rM  rL  pk_colscpropr  getteradapted_colr   r  r  option_entitiesselectin_load_via_load_supers_endmost_mapper_selectinload_entity	callable_rv  rz  rk  r   r   r   rl  rm  r  rn  ro  r'  rp  rb   rN  rq  rr  rs  rx   rV  rt  r   ru  s7    ``   ``                          @@@@@@@@@@@@@@@@@@@@@r;   _instance_processorr  +  sT   * ++N))M V$Jhh}//TBG   &&& '*9' E  88 1:
 
  ((G7>?w!7??1-w?!'!5!5g!>!% "3"4

 D''&t,**%e,334#?#?@ 11 &h/66%7HI,,%e,334#<#<= "F* '.ooc&:&2%+^^K%GF!!'U!;)'299488V:LM
 11#( ""#- D!A D 	)):? 345F5L5L5NO5NzsE#tE{"5NOJ!!\*	
  
 !( A A   --22 	**T1  #??7711JV5J5JF((11667Hv++44<<=K'//22GGHN&77LL..N,,M))JMME++N))M..%!(!@ &~ > $.:#'$$$););C)@)I)I N
 *
 &005@@LO"O"88

 !2:K!K #*** **!"3#'/@@ ''8&5&>&>O	 $'/@@
 !22(4$''Y(<  1(%#	 **(//(( )5* $$WiII,00' $*#B#B$   $$%9:&11&33^ ^ ^ ^@ &7		 		 1%

	 s @` Ps   Y87Y=c                4  ^^^	^
^^ UR                   m
UR                   nUR                  S Ln[        T
R                  R                  5      S:H  mUR
                  (       d  U(       a  T
R                  X#5      u  mm	mOT
R                  u  mm	mUU	U
UUU4S jnU$ )Nr   c                D  > T(       dA  U VVs/ s H*  u  pVUR                   R                  T5      (       d  M'  XV4PM,     nnnU(       d  g U R                  nUR                  (       a#  TR	                  U5      nTR	                  U5      n	OTnTn	U4UR
                  -   U	4-   n
TR                  " U
6 nU R                  R                  Ul	        U=R                  SUR                  0-  sl	        U R                  (       a  UR                  SS9nU R                  R                  U[        U VVs/ s H-  u  pT(       a  UR                  S   S   OUR                  S   PM/     snnS95      R!                  5       R#                  5       R%                  5         g s  snnf s  snnf )Nr   T)r'  r   r   )primary_keys)r   +_would_selectin_load_only_from_given_mapperr   r  _prepend_path_with_optionsr  rz   r   r   r'  r   r   r  r   r   r  r  all)rc   ra   states	load_onlyeffective_entitysv
orig_queryenable_opt_lcldisable_opt_lclr  q2r   
load_attrsdisable_opt
enable_optr   r  r  zero_idxs                 r;   do_load&_load_subclass_via_in.<locals>.do_load  ss    #"DA88GGO "   ]]
;;'55d;N)77=O'N)O
 8 88O;MM 	 YY %33KK
==$$%%%=B .4-3) (0EIIaLOUYYq\A-3	
 &(779SSUK@s   &FF-4F)r   r   r~   base_mapperr   r1  _subclass_load_via_in_subclass_load_via_in_mapper)rc   ra   entitypolymorphic_fromr  polymorphic_from_mappernot_against_basemostr  r  r  r   r  r  s       `   @@@@@r;   r  r    s     ]]F
 /552;;4G6%%112a7H"6%+%A%A&
":{ &,%H%H":{,# ,#\ Nr>   c	                V   U(       a  U R                   Ul         US    H  u  pU
" U5      X9'   M     U(       aE  US    H;  u  pUR                  U	S 5        U(       d  M   UR                  R                  U	5        M=     O2US    H)  u  pU(       d  M  UR                  R                  U	5        M+     US    H  u  pU" X#U5        M     g XRR                  :w  a=  XRl        US    H  u  pX;  d  M  U
" U5      X9'   M     US    H  u  pU" X#U5        M     g US    H  u  pU" X#U5        M     g )NrG  rI  rF  rJ  )rx   popexpired_attributesaddr  )rc   r]   r   rc  rd  r  rf  r'  rp  r   r  set_callable	populators                r;   rX  rX  -  s%    mm%g.KCEJ /%/%9!		#t$<,,005 &:
 &0%9!<,,005 &: )/NCeC( 0 
oo	% $ &g.KC#C[
 /
 )4NCeC( 5 )4NCeC( 5r>   c                (   U(       dT  U(       a  US    H  u  pX;   d  M  U	" U5      X8'   M     U R                   U   n
US    H  u  pX;   d  M  U" X#U5        M     OUn
XR                   U'   US    H  u  pX;   d  M  U	" U5      X8'   M     US    HB  u  pX;   d  M  UR                  US 5        U(       d  M'  UR                  R                  U5        MD     US    H  u  pX;   d  M  U" X#U5        M     US    H  u  pX;  d  M  U" X#U5        M     U
$ )NrG  rJ  rI  rF  rK  )rO   r  r  r  )rc   r]   r   rc  rd  r  r`  rp  r   r  rj  r  r  s                r;   ra  ra  f  s    )'2?!'EJ  3 ""5)(4NC~%, 5 ")%g.KC~#C[
 / ",H!5C~		#t$<,,005	 "6
 )/NC~%, 0 %W-eC( . Nr>   c           
         U R                  XU R                  5      U" U5      :w  aL  [        R                  " S[	        U5      < SU R                  XU R                  5      < SU" U5      < S35      eg )Nz
Instance 'z' has version id 'z3' which does not match database-loaded version id 'z'.)_get_state_attr_by_columnr  r   StaleDataErrorr   )r   r   rc  r]   r  s        r;   rS  rS    sr    ''f++	 $$ % 00&"7"7 s

 
	
r>   c	                   ^ ^^^^^^^^^^ Ub  UmOTR                   mTc  T $ T(       a  TR                  T   mUUUUUU4S jn	[        R                  " U	5      mTR	                  T5      mUUU UUU4S jn
U
$ )Nc           
        >  TR                   U    nUTL a  g UR                  T5      (       d  g[        TUTTTTTS9$ ! [         a    [	        SU -  5      ef = f)NF)r  z*No such polymorphic_identity %r is defined)r  r   r  KeyErrorAssertionError)discriminator
sub_mapperr5  rc   r   ra   r   r   s     r;   configure_subclass_mapper?_decorate_polymorphic_switch.<locals>.configure_subclass_mapper  s    	//>J V#^^F++&"(   	 <}L 	s	   > Ac           
     @  > T" U 5      nUbd  TU   nU(       a  U" U 5      $ USL aC  T" U 5      nU(       a3  [         R                  " SU< ST	< STR                  U   < ST< 35      eg T" U 5      $ T" U 5      nU(       a  [         R                  " SU< ST	< S35      eg )NFzRow 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)r8   r9   r  )
r]   r  rv  rg  rz  r  instance_fnr   polymorphic_instancesr3  s
       r;   polymorphic_instance:_decorate_polymorphic_switch.<locals>.polymorphic_instance  s    s$-m<I ~%e#*3/ 44 (*"22=A"	   "3''&s+K00 *>;  r>   )r3  r4  r   PopulateDictr  )r  rc   r   r   r   ra   r7  r5  rz  r  r  r  r  r3  s   `````` ``  @@@r;   r  r    sx     !,2.. 8 . !--.GH^^N+F$ $L  r>   c                  ^    \ rS rSrSrSrS rS rS r\	S 5       r
\	S 5       r\	S	 5       rS
rg)r  i  z4Track loaders and states for "post load" operations.)loadersr  	load_keysc                T    0 U l         [        R                  " 5       U l        S U l        g rl   )r  r   OrderedDictr  r  )selfs    r;   __init__PostLoad.__init__  s     &&(r>   c                     X R                   U'   g rl   )r  )r  r   	overwrites      r;   r_  PostLoad.add_state  s    
 'Er>   c                   U R                   (       d  g [        R                  R                  U5      nU R                  R                  5        H  u  nnnnnnU R                   R                  5        V	V
s/ s H4  u  pU	R                  R                  R                  U5      (       d  M1  X4PM6     nn	n
U(       d  Mn  U" X2XR                  /UQ70 UD6  M     U R                   R                  5         g s  sn
n	f rl   )r  r   PathRegistrycoercer  valuesrU   rY  r   r   r  rV   )r  rc   ra   effective_contexttokenlimit_to_mapperrO  argr8  r   r  r  s               r;   rW   PostLoad.invoke  s    {{))006 \\  "
 )-(9(9(;(;$E==''++O< #"(;  
 v%V^^FIMO # 	s   30C0'C0c                p    UR                   R                  UR                  5      nUb  U(       a  X4l        U$ rl   )rT   r   ra   r  )clsrc   ra   r   pls        r;   r  PostLoad.for_context  s-    $$((3>o*L	r>   c                    UR                   UR                  ;   =(       a%    X1R                  UR                      R                  ;   $ rl   )ra   rT   r  )r  rc   ra   r   s       r;   r  PostLoad.path_exists$  s<     II000 B..tyy9AAA	
r>   c                    UR                   UR                  ;   a  UR                  UR                      nO"[        5       =oR                  UR                   '   UUUUUU4UR                  U'   g rl   )ra   rT   r  r  )	r  rc   ra   r  r  loader_callabler  r8  r  s	            r;   r  PostLoad.callable_for_path+  se     99///((3B6>j@B((3


5r>   )r  r  r  N)__name__
__module____qualname____firstlineno____doc__	__slots__r  r_  rW   classmethodr  r  r  __static_attributes__ry  r>   r;   r  r    sU    >0I
'.   
 
 
 
r>   r  c           	     p   UR                   nU(       d"  [        R                  " S[        U5      -  5      e[	        U[
        R                  -  5      nU(       a)  UR                  U R                  R                  5       5      nU R                  (       a>  U R                  (       d-  U R                  X5      nUb  [        X5      n[        UUSUUUS9$ [	        UR                  5      nU(       a  UR                  n	OU R                    V
s/ s H  oR"                  U
   R                  PM     nn
UR$                  R                  U5      (       a"  [&        R(                  " S[        U5      -  5      eU R+                  U5      n	[,        R.                  " U	5      (       a  U R0                  (       a  [,        R2                  " U	5      (       a!  [4        R6                  " S[        U5      5        g[        U[9        U 5      R;                  [<        5      U	UUUS9nU(       a  Uc  [        R>                  " U5      eggs  sn
f )z4initiate a column-based attribute refresh operation.zQInstance %s is not bound to a Session; attribute refresh operation cannot proceedN)r   r   r   z_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).)r   r   r   ) r   r   DetachedInstanceErrorr   r  r   NO_AUTOFLUSHr~  r   r   r   concrete_optimized_get_statementr   r   r   r   _columntopropertyr  r8   r9   r  r   issubsetr  r  r   warn_limitedr"   set_label_styler$   r   )r   r   attribute_namesr   r   r   r   stmthas_keyidentity_keyr  pk_attrsr   s                r;   load_scalar_attributesr  =  s    mmG++9<Ee<LN
 	

 *"9"99:L )66v||7H7H7JKv 33EK	  !3D  /#)  599oGyy :@9K9K
9K#$$S)--9K 	 
 ##00::,,.09%0@A 
 66u= 	<((1I1I			l	+	+2 e		
 	v&&'EF'!F 6>((// "wC
s   "H3)rd   zCursorResult[Any]rc   r   returnzResult[Any])T)r   z
Query[Any]r   z>Union[FrozenResult, Iterable[Sequence[Any]], Iterable[object]]r   r  r  z"Union[FrozenResult, Iterable[Any]])
r   r,   r   z
Mapper[_O]r   z_IdentityKeyType[_O]r   r   r  z)Union[LoaderCallableStatus, Optional[_O]])r   r,   r   Union[Select, FromStatement]r   zOptional[_IdentityKeyType]r|   Optional[Sequence[ORMOption]]r   Optional[InstanceState[Any]]r   Optional[ForUpdateArg]r   Optional[Iterable[str]]r   r  r   Mapping[str, Any]r   r/   r   r  r   r  )r   r,   r   r  r  zOptional[Tuple[Any, ...]]r|   r  r   r  r   r  r   r  r   zOptional[Any]r   r  r   r  r   r/   r   r  r   r  )NNNNNN)NNN)NNNN)\r  
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r    r   r   r   r   baser   r   r   r   rc   r   r   r   r   r   r   r8   enginer   engine.resultr   r    r!   sqlr"   r   sql.selectabler#   r$   r%   r&   _typingr'   r(   
interfacesr)   r   r*   r   r+   r   r,   r   r-   engine.cursorr.   engine.interfacesr/   r0   r1   r2   objectr4   counterrw   str_PopulatorDictr   preload_moduler   became_legacy_20r   r   r   r   r  r<  r>  r  r  rX  ra  rS  r  r  r  ry  r>   r;   <module>r(     sw   #                " " '  " $ !     ! 1 ( 0  " ) ; ( )*% $,3&TT \\^
 c4c3h001Zz -.8& /8&v F
 -. Q&Q&LQ& Q& (	Q& /Q&h### 
# 	#
 /#V 3726.2/3(,)-!!$$+$ 
$$
 0$ 0$ ,$ -$ $ &$ '$ $ $X 3726.2/3$((,)-!!uu+u 4u
 0u 0u ,u -u "u u &u 'u u uv !R "4%n	& "zzBJ3)r"J
"V rE
 E
PU0r>   