%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/orm/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/orm/__pycache__/loading.cpython-37.pyc

B

��4]�}�@s4dZddlmZddlZddlmZddlmZddlmZddlm	Z	dd	l
mZdd
l
mZddl
mZddl
mZd
dlmZd
dlm
Z
d
dlm
Ze
��Zdd�Ze
�d�d-dd��Zdd�Zd.dd�Zd/dd�Zd0dd�Zd1dd�Zdd �Zd!d"�Zd#d$�Zd%d&�Z d'd(�Z!Gd)d*�d*e"�Z#d+d,�Z$dS)2z�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.

�)�absolute_importN�)�
attributes)�exc)�
path_registry)�strategy_options)�_DEFER_FOR_STATE)�_SET_DEFERRED_EXPIRED)�	_none_set)�	state_str�)�utilc

#szt��_i�_�j}�jo4t�j�dko4�jdj}|rP|rDt}n�fdd�}y�t	t
���fdd��jD���\�}|s�t�d|��x�i�_
�jr����j�}|s�Pn���}|rЈd��fdd�|D�}n��fd	d�|D�}x"�j��D]\}	}
|
��|	�q�W|�rt�||�}x|D]}|V�q W�js�Pq�WWn6tk
�rt}z���t�|�Wd
d
}~XYnXd
S)z$Return an ORM result as an iterator.rrcstdd�t�j|�D��S)Ncss$|]\}}|jrt|�n|VqdS)N)Zuse_id_for_hash�id)�.0�ent�item�r�I/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/orm/loading.py�	<genexpr>8sz/instances.<locals>.filter_fn.<locals>.<genexpr>)�tuple�zip�	_entities)�row)�queryrr�	filter_fn6szinstances.<locals>.filter_fncsg|]}|������qSr)Z
row_processor)r�query_entity)�context�cursorrrr�
<listcomp>@szinstances.<locals>.<listcomp>�resultcsg|]}�|��qSrr)rr)�procrrrUscs"g|]���fdd��D���qS)csg|]}|���qSrr)rr )rrrrXsz(instances.<locals>.<listcomp>.<listcomp>r)r)�keyed_tuple�process)rrrXsN)�
_new_runid�runid�post_load_pathsZ_has_mapper_entitiesZ_only_return_tuples�lenrZsupports_single_entityr�listrr
�lightweight_named_tuple�partialsZ
_yield_perZ	fetchmanyZfetchall�items�invokeZunique_list�	Exception�closeZraise_from_cause)
rrrZfiltered�
single_entityr�labelsZfetchZrows�path�	post_loadr�errr)rrr!r r"rr�	instances#sP

r3zsqlalchemy.orm.queryTc
	s|j��r����j}z�d�_t|j�dk}|rdt|jd�j�rZ��fdd�|D�}nt|�}n��fdd�t|j�D�}g}dd�|jD�}t	�
d|�}	xh|D]`}
t|
�}xD|D]<}||d	k	r��jt�
||�t�||��iid
�||<q�W|�|	|��q�Wt|�S|�_Xd	S)z:Merge a result into this :class:`.Query` object's Session.Frrc	s,g|]$}�jt�|�t�|��iid��qS))�load�
_recursive�_resolve_conflict_map)�_merger�instance_state�
instance_dict)r�instance)r4�sessionrrr|sz merge_result.<locals>.<listcomp>cs g|]\}}t|�j�r|�qSr)�
isinstance�
_MapperEntity)r�i�e)�querylibrrr�scSsg|]
}|j�qSr)Z_label_name)rrrrrr�srN)r4r5r6)r;Z
_autoflush�	autoflushr&rr<r=r'�	enumerater
r(r7rr8r9�append�iter)
r@r�iteratorr4rAr.rZmapped_entities�keysr!rZnewrowr>r)r4r@r;r�merge_resultls<




rGcCs�|j�|�}|dk	rzt�|�}|jrv|tj@s4tjS|tj@sB|Sy|�||�Wn"t	j
k
rt|�|g�dSX|SdSdS)zqLook up the given key in the given session's identity map,
    check the object for expired state if found.

    N)�identity_map�getrr8ZexpiredZSQL_OKZPASSIVE_NO_RESULTZRELATED_OBJECT_OKZ
_load_expired�orm_exc�ObjectDeletedErrorZ_remove_newly_deleted)r;�keyZpassiver:�staterrr�get_from_identity�s


rNcCs6|dk	r|d}|d}nd}}t||||||d�S)z.Load the given identity key from the database.Nrr)�
refresh_state�with_for_update�only_load_props�identity_token)�load_on_pk_identity)rrLrOrPrQZidentrRrrr�
load_on_ident�s
rTcs|dkr|��}|��n|��}|dk	r�|��}|j\}�d|krnt�fdd�t|j|�D��}	t�||	�}|�	|dd�}||_
t�fdd�t||j�D��}
|
|_|dk	r�d}||_
n|j
dk	r�d}|j
|_
nd}|jt|�||||d�d|_y|��Stjk
�rdSXdS)z6Load the given primary key identity from the database.Ncs"g|]\}}|dkr�|j�qS)N)rL)r�col�value)�_get_paramsrrr�sz'load_on_pk_identity.<locals>.<listcomp>TFcsg|]\}}�|j|f�qSr)rL)rZid_val�primary_key)rWrrr�s)�populate_existing�
version_checkrQrOrR)Z_cloneZ_get_conditionZ_mapper_zero�_get_clause�setrrX�sql_utilZadapt_criterion_to_nullZ
_adapt_clauseZ
_criterion�dictZ_paramsZ_for_update_argZ_get_options�boolZ	_order_byZonerJZ
NoResultFound)rZprimary_key_identityrOrPrQrR�q�mapperr[Znones�paramsrZr)rWrrS�sL





rSc	Ks�|r|�|�}
n|j}
i}|�|jd|�x<|
D]4}|rD|j|krDq0|j||||f|||d�|	��q0W|dk	r�||jk	r�|r�|j|}
n|}
|�|
�dS)N�memoized_setups)rQ�column_collectionZmemoized_populators)	Z_iterate_polymorphic_propertiesZ_polymorphic_propertiesr\rrLZsetup�polymorphic_on�columnsrC)rrarr0�adapterrdZwith_polymorphicrQ�polymorphic_discriminator�kwZpoly_properties�quick_populatorsrVZpdrrr�_setup_entity_querys0


rkc	s$�
j�
�r�fdd��
D��
�
j�t�t���
j}	�dk	rR|	��
fdd��D��}	|��jdt	�}
x�|	D]�}||
k�r$|
|}|t
kr��d�|j|j
f�n�|tkr��d�|jd	f�nfd}
�r�j|}|dk	r�|�|d	�}
|
s�|�|d	�}
|
�r�d
�|j|
f�n|��|�
|���qh|��|�
|���qhW�j��jjj�rZ�jj|n|��jj��j�pr�
j�t�
jjj��t�
jjj��t�jjj����r��jjj�	tj �tj!��jj"��j#��j$��j%���sr|dk	�rrd|jf}|�jk�r&�j|j&dk�r&�
�'�j|j(d
|�}n�
�'d|�}|�rr||k	�rr�dk�sPt)�t*�||�}t+�,��|j-|||�t+�.�������r��j��dk�r��
�/���nd��
j0�r�t	j1�nt	j�����������	�
���
�����������fdd�}�
j2�r |�s ��s t3|��
|||��}|S)z`Produce a mapper level row processor callable
       which processes rows into mapped instances.csg|]}�j|�qSr)rf)r�c)rgrrrhsz'_instance_processor.<locals>.<listcomp>Nc3s|]}�j|VqdS)N)Z_props)r�k)rarrrpsz&_instance_processor.<locals>.<genexpr>rc�new�expireF�quick�loader))Zselectinload_polymorphicTZentitiesc

sJ�r,�}|��}�|�}|j�k}d}d}n��t�fdd��D���f}��|�}|dk	r��|�}�|�}|j�k}|}d}�r�|s�t�||���nT�|d�r�dSd}d}d}�j��}�|�}�|�}||_�|_�|_	��
||�|s���r�|�r��s��s�|_�	|_t
��|||�	|���	|�r�|�rf��rN|jj�|���
�r~�
�j|���n��r~|jj�|�����s�|j�r���r���r�|�|��n|�|����rF��|d�n�|j}|�jk}|�r�|�s�d�r,t��|||�	|��}	|�r,��r |jj�|�|	�|�||	���rF�j�rF��|d�|S)NTFcsg|]}�|�qSrr)r�column)rrrr�sz:_instance_processor.<locals>._instance.<locals>.<listcomp>r�eager)�objr$rrI�_validate_version_id�
class_managerZnew_instancerLrR�
session_idZ_add_unpresentZload_options�	load_path�_populate_full�manager�dispatchr4r;�refreshZmodifiedZ_commitZ_commit_all�	add_state�unloadedr)�_populate_partialZinvoke_all_eagers)
rrMr:�dict_�isnewZcurrentload�loaded_instanceZidentitykeyr~�to_load)rgr�identity_classrRr9r8�is_not_primary_key�load_evtrx�loaded_as_persistentrarQ�persistent_evt�pk_colsrY�
populatorsr1�propagate_options�refresh_evt�refresh_identity_keyrOr$rw�session_identity_maprZ)rr�	_instance�s�






z&_instance_processor.<locals>._instance)4rXZ_identity_class�collections�defaultdictr'Z	_prop_set�intersectionrIrr
rrCrLZ_deferred_column_loaderr	rfZ_getterZcreate_row_processorr�rZ
_current_pathr0r;rHrYZalways_refreshr_rvr{r4r|r�r8r9Zhash_keyrZr$rRZstrategyZ_should_selectin_loadZ
local_opts�AssertionError�_load_subclass_via_in�PostLoad�callable_for_pathra�for_context�_identity_key_from_state�allow_partial_pks�
issuperset�polymorphic_map�_decorate_polymorphic_switch)rarrr0rgrQrOrh�_polymorphic_fromZpropsrjZproprU�getterZadapted_colrLZselectin_load_viaZ	callable_r�r)rgrr�rRr9r8r�r�rxr�rarQr�r�rYr�r1r�r�r�rOr$rwr�rZr�_instance_processorQs�






<
r�csP|j}t|jj�dk�|jr.|�|�\���n|j\�������fdd�}|S)Nrcsb|j}�j�f|j�f|j|d�}|jr:|�dd��||j�j�fdd�|D�d���dS)N)�
cache_pathcSs|��S)N)rY)r`rrr�<lambda>��z8_load_subclass_via_in.<locals>.do_load.<locals>.<lambda>cs,g|]$\}}�r|jddn|jd�qS)rr)rL)rrMZ
load_attrs)�zero_idxrrr�sz:_load_subclass_via_in.<locals>.do_load.<locals>.<listcomp>)Zprimary_keys)	rZ_with_lazyload_optionsZ
_with_options�parentZ_populate_existingZadd_criteriar;rb�all)rr0�statesZ	load_onlyZeffective_entityZ
orig_queryZq2)�disable_opt�
enable_optr`r�rr�do_load�s

z&_load_subclass_via_in.<locals>.do_load)rar&Zbase_mapperrXZis_aliased_classZ_subclass_load_via_inZ_subclass_load_via_in_mapper)rr0Zentityrar�r)r�r�r`r�rr��sr�c	
Cs\|r�|j|_x |dD]\}	}
|
|�||	<qW|rfxX|dD]$\}	}|�|	d�|r<|j�|	�q<Wn&x$|dD]\}	}|rp|j�|	�qpWx |dD]\}	}||||�q�Wx�|dD]\}	}||||�q�Wn�||jk�r4||_x(|dD]\}	}
|	|kr�|
|�||	<q�WxH|dD]\}	}||||��qWn$x"|dD]\}	}||||��q>WdS)Nrprorn�delayed�existing)r$�pop�expired_attributes�addrx)
rrrMr�r�rxr�rYr�rLr��set_callable�	populatorrrrry�s2ryc
Cs2|s:|j|}x�|dD]\}	}
|	|kr|
|||�qWn�|}||j|<x(|dD]\}	}|	|krR||�||	<qRWx8|dD],\}	}|	|kr||�|	d�|r||j�|	�q|Wx(|dD]\}	}
|	|kr�|
|||�q�Wx(|dD]\}	}
|	|kr�|
|||�q�Wx,|dD] \}	}
|	|k�r
|
|||��q
W|S)Nr�rprornr�rs)r)r�r�r�)
rrrMr�r�rxr~r�r�rLr�r�r�rrrr�s2


rc	Csd|j}|dkrdS|r |j|}|�|||j�||kr`t�dt|�|�|||j�||f��dS)NzWInstance '%s' has version id '%s' which does not match database-loaded version id '%s'.)�version_id_colrfZ_get_state_attr_by_columnrJZStaleDataErrorr)rarMr�rrgr�rrrrus


ruc	s`|dk	r|�n�j��dkr �S�r.�j�������fdd�}t�|�����fdd�}|S)NcsTy�j|}Wn tk
r.td|��Yn"X|�kr<dSt|�����d�SdS)Nz*No such polymorphic_identity %r is defined)r�)r��KeyErrorr�r�)�
discriminatorZ
sub_mapper)rgrrar0rrr�configure_subclass_mapper.sz?_decorate_polymorphic_switch.<locals>.configure_subclass_mappercs,|�}|dk	r$�|}|r$||�S�|�S)Nr)rr�r�)�instance_fn�polymorphic_instancesrerr�polymorphic_instanceDsz:_decorate_polymorphic_switch.<locals>.polymorphic_instance)rerfr
ZPopulateDict)	r�rrarr0rhrgr�r�r)rgrr�rar0r�rerrr�s	

r�c@sPeZdZdZdZdd�Zdd�Zdd�Zed	d
��Z	edd��Z
ed
d��ZdS)r�z:Track loaders and states for "post load" operations.

    )�loadersr��	load_keyscCsi|_t��|_d|_dS)N)r�r
�OrderedDictr�r�)�selfrrr�__init__Vs
zPostLoad.__init__cCs||j|<dS)N)r�)r�rM�	overwriterrrr}[szPostLoad.add_statecsv|js
dStj�|�}xP|j��D]B\}�}}}�fdd�|j��D�}|r"|||||jf|�|�q"W|j��dS)Ncs&g|]\}}|jj���r||f�qSr)rzraZisa)rrMr�)�limit_to_mapperrrrhsz#PostLoad.invoke.<locals>.<listcomp>)	r�rZPathRegistryZcoercer��valuesr*r��clear)r�rr0�tokenrq�argrir�r)r�rr+bs
zPostLoad.invokecCs$|j�|j�}|dk	r |r ||_|S)N)r%rIr0r�)�clsrr0rQ�plrrrr�pszPostLoad.for_contextcCs|j|jko||j|jjkS)N)r0r%r�)r�rr0rLrrr�path_existswszPostLoad.path_existsc	OsD|j|jkr|j|j}nt�}|j|j<|||||f|j|<dS)N)r0r%r�r�)	r�rr0r�r�Zloader_callabler�rir�rrrr�~szPostLoad.callable_for_pathN)�__name__�
__module__�__qualname__�__doc__�	__slots__r�r}r+�classmethodr�r�r�rrrrr�Osr�c	sB|j}|st�dt|���t|j�}d}|r>|��j���}�j	r��j
s���||�}|dk	r�t|�
���t����d���|�d||d�}|dk�r$|r�|j}n<�fdd��jD�}|j�|�r�t�dt|�����|�}t�|�r�jr�t�|��rt�d	t|��dSt|�
��|||d
�}|�r>|dk�r>t�|��dS)z4initiate a column-based attribute refresh operation.zQInstance %s is not bound to a Session; attribute refresh operation cannot proceedFN�*)rQrOcsg|]}�j|j�qSr)Z_columntopropertyrL)rrU)rarrr�sz*load_scalar_attributes.<locals>.<listcomp>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).)rOrQ)r;rJZDetachedInstanceErrorrr_rLr�ZattrsrFZinheritsZconcreteZ_optimized_get_statementrTrZoptionsrZLoadZundeferZfrom_statementrXr��sa_excZInvalidRequestErrorr�r
�issubsetr�r�r
Zwarn_limitedrK)	rarMZattribute_namesr;Zhas_keyrZ	statementZidentity_keyZpk_attrsr)rar�load_scalar_attributes�sR




r�)T)NNN)NNNN)NNN)NNNN)%r�Z
__future__rr��rrrJrr�baserr	r
r
rr�Zsqlr]Zcounterr#r3ZdependenciesrGrNrTrSrkr�r�ryrrur��objectr�r�rrrr�<module>sNI5

L
/
- 9"4:

Zerion Mini Shell 1.0