HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyc
�
���ec	@@s�dZddlmZddlmZddlmZddlmZddlmZddl	m
Z
dd	l	mZdd
l	mZddl
mZddl
mZd
dlmZd
dlmZd
dlm
Z
d
dlmZd
dlmZd
dlmZd
dlmZd
dlm
Zd
dlmZd
dlmZe
j�Zd�Ze
j d�e!d��Z"e
j#dddde!�e
j d�e!d���Z$d�Z%e&e&e&e&e'e
j(e
j(d�Z)e&e&e&e&e&e'e
j(e
j(d �Z*e&e&e&e&e&d!�Z+e&e&e&d"�Z,d#�Z-e&e&e&e&d$�Z.d%�Z/d&�Z0d'�Z1d(�Z2d)�Z3d*e4fd+��YZ5d,�Z6d-S(.s�private 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.

i(tabsolute_importi(t
attributes(texc(t
path_registry(tstrategy_options(t_DEFER_FOR_STATE(t_RAISE_FOR_STATE(t_SET_DEFERRED_EXPIRED(t	_none_set(t	state_stri(tfuture(tutil(tresult_tuple(tChunkedIteratorResult(tFrozenResult(tSimpleResultMetaData(tLABEL_STYLE_TABLENAME_PLUS_COL(tSelectStatec
@s�t��_i�_�j}|j}�jjoVt|j�dkoV|jdj	�yqt
tg�jjD]}|j���^qo��\�}}�j
r��js��jr�tjd��nWn.tk
r�tj���j�WdQXnXd�}d�}�jjrkg�jjD]<}	�j
r;|n$|	jsV|	jsV|	jr\tnd^q&}
nbg�jjD]O}	�j
r�|n7|	jr�|	jr�||	jj�n|	jr�tnd^qx}
t||d|
�}����fd�}�jj d	t!�r3t
|d����fd
�}nt"||d�d�d
�j#j$�}
|
j%j&t'd|d���|
_%�jj(r�d�}d|f|
_)n�j
r�|
j
�j
�n|
S(s�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.

    iis�Can'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.NcS@stjd��dS(Ns@Can't use the ORM yield_per feature in conjunction with unique()(tsa_exctInvalidRequestError(tentry((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt
_no_unique[sc@s�fd�}|S(Nc@stjd���dS(NskCan't apply uniqueness to row tuple containing value of type %r; this datatype produces non-hashable values(RR(tobj(tdatatype(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytgoas((RR((RsG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt
_not_hashable`st_unique_filtersc3@s�x�tr�|}i�_|r:�j|�}|sFPqFn�j�}�rx�d}g|D]}||�^q]}n8g|D]+}tg�D]}||�^q��^q}x-�jj�D]\}}|j�|�q�W|V|sPqqWdS(Ni(tTruetpartialst	fetchmanyt
_raw_all_rowsttupletpost_load_pathstitemstinvoke(tsizet	yield_pertfetchtproctrowtrowstpatht	post_load(tcontexttcursortprocesst
single_entity(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytchunks�s"		
"8tprebuffer_rowsc@s
t��S(N(titer(R#(t_prebuffered(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR/�stsource_supports_scalarstrawtdynamic_yield_pertfilteredtis_single_entitycS@stjd��dS(Ns~The unique() method must be invoked on this Result, as it contains results that include joined eager loads against collections(RR(R((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytrequire_unique�s(*t
_new_runidtrunidR t
compile_statet_has_mapper_entitiestload_optionst_only_return_tuplestlent	_entitiestsupports_single_entitytlisttzipt
row_processorR$tloaders_require_bufferingtloaders_require_uniquingRRt	ExceptionRtsafe_reraisetcloset_legacy_uniquingtuse_id_for_hasht_non_hashable_valuet_null_column_typetidtNonetcolumnttypeRtexecution_optionstgettFalseR
R+t_is_server_sidet_attributestuniontdicttmulti_row_eager_loaderst_unique_filter_state(R,R+R;R6tquery_entitytlabelstextraRRtenttunique_filterstrow_metadataR/tresultR8((R2R+R,R-R.sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt	instances(s^			
7			

		
	O_			ssqlalchemy.orm.contextcC@s�tjj}|r|j�n|jj|dt�}|j}z1t|_gt|j	�D]$\}}t
||j�r\|^q\}	g|j	D]}
|
j^q�}t
|g|j	D]}
|
j^q��}g}
x�|j�D]}xc|	D][}||dk	r�|jtj||�tj||�d|didi�||<q�q�W|
j||��q�W|j|
�SWd||_XdS(szMerge 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`

    tlegacytloadt
_recursivet_resolve_conflict_mapN(Rt	preloadedtorm_contextt
_autoflushtORMSelectCompileStatet_create_entities_collectionRTt	autoflusht	enumerateR@t
isinstancet
_MapperEntityt_label_nameRt_extra_entitiestrewrite_rowsROt_mergeRtinstance_statet
instance_dicttappendt
with_new_rows(tsessiont	statementt
frozen_resultRdtquerycontexttctxRltitetmapped_entitiesR^tkeystkeyed_tupleRatnewrow((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytmerge_frozen_result�s6
			%
s:func:`_orm.merge_result`talternativesyThe function as well as the method on :class:`_orm.Query` is superseded by the :func:`_orm.merge_frozen_result` function.tbecomes_legacycC@sdtjj}|j}|r(|j�nt|t�rO|}t|j�}nd}|j
j|dt�}|j
}z�t|_
|o�t|j�dk}|rt|jd|j�r	g|D]<}	|jtj|	�tj|	�d|didi�^q�}
q5t|�}
ngt|j�D]$\}}t||j�r(|^q(}
g}
g|jD]}|j^qb}t|g|jD]}|j^q��}x�|D]�}t|�}xc|
D][}||dk	r�|jtj||�tj||�d|didi�||<q�q�W|
j||��q�W|rH|j|
�St|
�SWd||_
XdS(s�Merge a result into the given :class:`.Query` object's Session.

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

    RciiRdReRfN(RRgRhRxRiRnRR1tdataRORjRkRRlRTR?R@RoRsRRtRuRBRmRpRRqRvt	with_data(tquerytiteratorRdR{RxRzR|RlR.tinstanceRaR}R~RR^R�R�R'R�((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytmerge_resultsR	
			I%


cC@s�|jj|�}|dk	r�tj|�}|jrP|jj|�rPtjS|j	r�|tj
@smtjS|tj@s~|Sy|j
||�Wq�tjk
r�|j|g�dSXn|SdSdS(sqLook up the given key in the given session's identity map,
    check the object for expired state if found.

    N(tidentity_mapRSRORRttinheritstmappertisatPASSIVE_CLASS_MISMATCHtexpiredtSQL_OKtPASSIVE_NO_RESULTtRELATED_OBJECT_OKt
_load_expiredtorm_exctObjectDeletedErrort_remove_newly_deleted(RxR�tkeytpassiveR�tstate((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytget_from_identitybs"	

c
C@sm|dk	r#|d}
|d}n
d}
}t|||
d|d|d|d|d|d|d	|d
|	�S(s.Load the given identity key from the database.iiR=t
refresh_statetwith_for_updatetonly_load_propstidentity_tokentno_autoflushtbind_argumentsRRN(ROtload_on_pk_identity(RxRyR�R=R�R�R�R�R�RRtidentR�((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt
load_on_ident�s 



cC@s�|}|j�}|js"t�ddlm}
m}|dkrP|
j}n|jt	j
krn|j}n	|j}|dk	r�|jd}|j
\}}d|kr,tgt|j|�D]%\}}|dkr�||j^q��}tj||�}t|�t|�kr,tjd�q,ntj|itd6�f|_tgt||j�D]\}}||j|f^qa�}nd}|dk	r�t}||_n*|jdk	r�t}|j|_nt}|r|jr|i|jjd67}|j |j�}nt!||d|d|d	|d
|�\}}||_d|_"|rn|itd67}ntj#j$|
i|d6�}
|j%|d
|d|
d|	�j&�j'�}y|j(�SWnt)j*k
r�dSXdS(s6Load the given primary key identity from the database.i(tQueryContexttORMCompileStatetplugin_subjectsofully NULL primary key identity cannot load any object.  This condition may raise an error in a future release.t
_orm_adaptt
_current_patht
version_checkR�R�R�Rit_sa_orm_load_optionstparamsRRR�N(+t_clonet_is_lambda_elementtAssertionErrorR+R�R�ROtdefault_load_optionst_compile_optionsRtdefault_select_compile_optionstdefault_compile_optionst_propagate_attrst_get_clausetsetRCtprimary_keyR�tsql_utiltadapt_criterion_to_nullR?Rtwarnt_deep_annotateRt_where_criteriaRXt_for_update_argRTR=t	load_pathtparenttoptionst_set_get_optionst	_order_byt
EMPTY_DICTt
merge_withtexecutetuniquetscalarstoneR�t
NoResultFound(RxRytprimary_key_identityR=R�R�R�R�R�R�RRR�tqR�R�tcompile_optionsR�R�t_get_paramstcoltvaluetnonestid_valR�R�R�tnew_compile_optionsRa((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR��sz	
"
8			c	C@s�i}i}|r||d<n|r2||d<n|rO||d<t|d<n|rht|�|d<n|r{||d<n|r�||7}n|r�||7}n||fS(Nt_version_checkt_populate_existingt_refresh_statet_for_refresh_statet_only_load_propst_refresh_identity_token(Rt	frozenset(	tcompile_opttload_opttpopulate_existingR�R�R�R�R�R=((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR�"s$







c	K@s
|r|j|�}
n	|j}
i}|j|jd|�|o_t|�dko_|dj}xZ|
D]R}
|r�|
j|kr�qin|
j||||d|d|d|d||	�qiW|dk	r||j	k	r|r�|j
|}n|}|j|�ndS(Ntmemoized_setupsii����R�tcolumn_collectiontmemoized_populatorstcheck_for_adapt(t_iterate_polymorphic_propertiest_polymorphic_propertiesR�RR?tis_aliased_classR�tsetupROtpolymorphic_ontcolumnsRv(R;R�R[R)tadapterR�twith_polymorphicR�tpolymorphic_discriminatortkwtpoly_propertiestquick_populatorsR�R�tpd((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt_setup_entity_queryBs4
	%
cC@stjdt|�f�dS(NsmLoading context for %s 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.(RR�R	(R�((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt_warn_for_runid_changed|sc
@s*�	j��j}
d�	f}|j|
j|d�}|dkr��	j}
�
dk	ry|
j�	fd��
D��}
n|j�jdt�}g}igd6gd6gd6gd6gd6gd	6gd
6}�dkr�	j}|rg|D]}|j	|^q�}n|j
|��nd�i|d6|d6�d
6}xO|
D]G}||kr�||}|tkr�|dj|j
|jf�q�|tkr�|dj|j
tf�q�|tkr�|dj|j
|jf�q�d}|r |j	|}|dk	r |j|t�}q n|s;|j|t�}n|r^|dj|j
|f�q�|j�||�	|||�qF|j|�qFW|j|
j||�n|d}d�|j�D��
x1|dD]%}|j�||�	||�
�q�W�j��jjjr&�jj|n|��jj��jpG�	j�t�	jj j!��t�	jj j"��t�jj j#���r��jj j#�ntj$�tj%��jj&��j'��j(��j)��r&�	j*}|dk	r|r|j	|}n|j|��q&d�n�r|	dk	rd|jf}|�jkr��j|j+dt,ffkr��	j-�j|j.d|	�}n�	j-d|	�}|r||	k	r�
dks�t/�t0�||�}t1j2��|j3|||�qnt1j4���
���rK�j
��dkr[�	j5���q[nd�|d
��	j6rptj7�n	tj�����������	�
���
�����������fd�}�	j8r&|	r&�r&����fd�}t9|�|�	|||||�	}n|S(s]Produce a mapper level row processor callable
    which processes rows into mapped instances.tgettersc3@s|]}�j|VqdS(N(t_props(t.0tk(R�(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pys	<genexpr>�sR�tnewtquicktdeferredtexpiretdelayedtexistingteagertcached_populatorsttodotprimary_key_gettercS@s%i|]\}}t|�|�qS((RB(R�R�R�((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pys
<dictcomp>s	tloadertselectinload_polymorphictentitiesc
@s��rB�}|j�}�|�}|j�k}t}t}n��|��f}�j|�}|dk	r��|�}�|�}|j�k}|}t}�rM�rM|rMt�	|||��qMnx�|d�r�dSt}t}t}�	jj�}�|�}�|�}||_	�|_
�|_�j||��}�|krht}n|st|r�|r��s�|r��|_
�|_nt�||||�||�
�	|r�|j}	|rF�r|jjj|��|j|	krt|�qn�r���j|�|j|	krCt|�qCq�n>�r�|jjj|��
�|j�kr�t|�q�n|s�|jr��r��
r�|j|�
�q�|j|��q�n�r��j|t�q�n�|j}
|�jk}|s|
s�
dr�t�||||�|
�
�}|r��r�|j}	|jjj|�|�|j|	kr�t|�q�n|j||�q�n�r��jr��j|t�n|S(NiR�(RR:RRTRSROt_validate_version_idt
class_managertnew_instanceR�R�t
session_idt_add_unpresentR=R�t_populate_fulltmanagertdispatchRdR�Rxtrefreshtmodifiedt_committ_commit_allt	add_statetunloadedRt_populate_partialtinvoke_all_eagers(R'R�R�tdict_tisnewtcurrentloadtloaded_instancetidentitykeyteffective_populate_existingtexisting_runidRtto_load(R+tidentity_classR�RuRttis_not_primary_keytload_evtR�tloaded_as_persistentR�R�tpersistent_evtR�t
populatorsR*R�tpropagated_loader_optionstrefresh_evttrefresh_identity_keyR�R:Rtsession_identity_mapR�tversion_id_getter(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt	_instancess�							
		
			c@s1��|��f}�|d�s)|SdSdS(Ni(RO(R'R(RR�RR�(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytensure_no_pks		N(:t_identity_classR;RSRROt	_prop_settintersectionRR�R�t
_tuple_getterRRvR�t_deferred_column_loaderRRTRt_raise_column_loadert_gettertcreate_row_processorR�R!R tcurrent_pathR)RxR�R�talways_refreshtboolRR	RdR
RRtRuthash_keyR:R�R�tversion_id_coltstrategyRt_should_selectin_loadt
local_optsR�t_load_subclass_via_intPostLoadtcallable_for_pathR�tfor_contextt_identity_key_from_statetallow_partial_pkst
issupersettpolymorphic_mapt_decorate_polymorphic_switch(R[R�R+RaR)R�R�R�R�t_polymorphic_fromR;t
getter_keyR�tpropsR�R�R�tpk_colstctpropR�tgettertadapted_colR3R�tselectin_load_viat	callable_R%R&((R+RR�RuRtRRR�RR�R�RR�RR*R�R R!R"R�R:RR#R�R$sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt_instance_processor�s			
	#







								
	
		W�c@ss|j}t|jj�dk�|jrE|j|�\���n|j\�������fd�}|S(Nic
@s�|j}�f|j�f}�j|�}|jj|_|ji|jd67_|jru|jdt	�}n|j
j|tdg|D]0\}}	�r�|j
ddn
|j
d^q���j�j�j�dS(NR�R�tprimary_keysii(R�t
_with_optionsR�R;R�R�R�R�RRRRxR�RXR�R�R�tall(
R+R)tstatest	load_onlyteffective_entityt
orig_queryR�tq2R�t
load_attrs(tdisable_optt
enable_optR�tzero_idx(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytdo_load;s			(R�R?tbase_mapperR�R�t_subclass_load_via_int_subclass_load_via_in_mapper(R+R)tentityR�RW((RTRUR�RVsG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR71s		c	
C@s�|r|j|_x(|dD]\}	}
|
|�||	<qW|r�xx|dD]5\}	}|j|	d�|rN|jj|	�qNqNWn4x1|dD]%\}	}|r�|jj|	�q�q�Wx(|dD]\}	}||||�q�Wx�|dD]\}	}||||�q�Wn�||jkr�||_x7|dD]+\}	}
|	|kr:|
|�||	<q:q:WxV|dD]\}	}||||�qtWn+x(|dD]\}	}||||�q�WdS(NR�R�R�R�R�(R:tpopROtexpired_attributestaddR�(
R+R'R�RRR�RR�RR�RFtset_callablet	populator((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyRTs2	c
C@s�|sP|j|}xN|dD]+\}	}
|	|kr|
|||�qqWn|}||j|<x7|dD]+\}	}|	|krn||�||	<qnqnWxP|dD]D\}	}|	|kr�|j|	d�|r�|jj|	�q�q�q�Wx7|dD]+\}	}
|	|kr�|
|||�q�q�Wx7|dD]+\}	}
|	|kr5|
|||�q5q5Wx7|dD]+\}	}
|	|kro|
|||�qoqoW|S(NR�R�R�R�R�R�(RR\ROR]R^(
R+R'R�RRR�RRRR�R`RFR_((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR�s2

cC@se|j|||j�||�kratjdt|�|j|||j�||�f��ndS(NsWInstance '%s' has version id '%s' which does not match database-loaded version id '%s'.(t_get_state_attr_by_columnR3R�tStaleDataErrorR	(R�R�RR'RF((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR�s	c	@s�|dk	r|�n	�j��dkr.�S�rD�j��n�����	�
fd�}	tj|	���
j���������fd�}
|
S(Nc	@s{y�j|}Wn!tk
r4td|��nCX|�krEdS|j��sXtSt�|����d��SdS(Ns*No such polymorphic_identity %r is definedR@(R>tKeyErrorR�ROR�RTRJ(t
discriminatort
sub_mapper(R�R+R�R)R[Ra(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytconfigure_subclass_mapper�s"
c@s��|�}|dk	r��|}|r2||�S|tkr��|�}|rytjd|��j|�f��q�dSq��|�Sn2�|�}|r�tjd|�f��ndSdS(Ns�Row with identity key %s can't be loaded into an object; the polymorphic discriminator column '%s' refers to %s, which is not a sub-mapper of the requested %ssjRow with identity key %s can't be loaded into an object; the polymorphic discriminator column '%s' is NULL(RORTRRR>(R'RdR%R(R&RFtinstance_fnR�tpolymorphic_instancesR�(sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytpolymorphic_instance�s,



(ROR�R�RtPopulateDictR-(RgR+R[R�RaR)R�R�R&RfRi((R�R+R&RFRgR�R)RhR�R[RasG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR?�s		&R8cB@s\eZdZd
Zd�Zd�Zd�Zed��Zed��Z	ed	��Z
RS(s4Track loaders and states for "post load" operations.tloadersRNt	load_keyscC@s%i|_tj�|_d|_dS(N(RkRtOrderedDictRNRORl(tself((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt__init__ s	cC@s||j|<dS(N(RN(RnR�t	overwrite((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR%scC@s�|js
dStjj|�}x�|jj�D]}\}}}}}g|jj�D]-\}}	|jjj	|�rT||	f^qT}
|
r/||||
|j
||�q/q/W|jj�dS(N(RNRtPathRegistrytcoerceRktvaluesR!RR�R�Rltclear(RnR+R)ttokentlimit_to_mapperR�targR�R�RpRN((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR",s	%'#cC@s7|jj|j�}|dk	r3|r3||_n|S(N(R RSR)RORl(tclsR+R)R�tpl((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR::scC@s)|j|jko(||j|jjkS(N(R)R Rk(RnR+R)R�((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytpath_existsAsc	O@s\|j|jkr%|j|j}nt�}|j|j<|||||f|j|<dS(N(R)R R8Rk(	RxR+R)RvRutloader_callableRwR�Ry((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR9Hs(RkRNRl(t__name__t
__module__t__doc__t	__slots__RoRR"tclassmethodR:RzR9(((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR8s			c
C@s9|j}|s+tjdt|���nt|j�}t}t|tj@�p\|jj	}|r�|j
|jj��}n|j
r|jr|j||�}|d
k	rddlm}	|	||�jtj|�jd��}
t||
d
d|d|d|�}qn|tkr|r3|j}ncg|jD]}|j|j^q=}
|jj
|
�r�tjdt|���n|j|�}tj|�r�|j s�tj!|�r�t"j#d	t|��d
St|t$j%|�j&t'�|d|d|d|�}n|r5|d
kr5tj(|��nd
S(s4initiate a column-based attribute refresh operation.sQInstance %s is not bound to a Session; attribute refresh operation cannot proceedi(t
FromStatementt*R�R�R�s_Instance %s cannot be refreshed - it's not  persistent and does not contain a full primary key.swInstance %s to be refreshed doesn't contain a full primary key - can't be refreshed (and shouldn't be expired, either).N()RxR�tDetachedInstanceErrorR	R1R�RTRtNO_AUTOFLUSHt
autocommitR)tattrsR�R�tconcretet_optimized_get_statementROR�R�R�RtLoadtundeferR�R�t_columntopropertyR]RRR;RtissubsetR<R=Rtwarn_limitedR
tselecttset_label_styleRR�(R�R�tattribute_namesR�Rxthas_keyRaR�RyR�tstmttidentity_keyR�tpk_attrs((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytload_scalar_attributesSs`			&
N(7R~t
__future__RtRRR�RRtbaseRRRRRR	RR
tengineRt
engine.resultR
RRtsqlR�tsql.selectableRRtcounterR9Rbtpreload_moduleRR�t
deprecated_20R�R�RORTR�R�R�R�R�R�RJR7RRRR?tobjectR8R�(((sG/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt<module>s�	�;P	&t 1	��	#	:	"		Y8