%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__/dynamic.cpython-37.pyc

B

��4]J9�@s
dZddlmZddlmZddlmZddlmZddlmZddlmZddlm	Z	dd	lm
Zdd
lm
Z
ddlmZddlmZdd	lm
Z
ejejjd
d�Gdd�de	j���ZGdd�dej�ZGdd�de�ZGdd�dee
�Zdd�ZGdd�de�ZdS)z�Dynamic collection API.

Dynamic collections act like Query() objects for read operations and support
basic add/delete mutation.

�)�
attributes)�exc)�
interfaces)�
object_mapper)�object_session)�
properties)�
strategies)�util)�Query�)�log�dynamic)Zlazyc@seZdZdd�ZdS)�
DynaLoaderc	Csld|_|jst�d|j��n$|jjtjtjfkrBt	�
d|j�tj|j|dt
|jj|jj|jjd�dS)NTztOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.z�On relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.  This warning will be an exception in a future release.)Z	useobjectZ
impl_class�
target_mapper�order_by�query_class)Zis_class_levelZuselistrZInvalidRequestErrorZparent_property�	directionrZ	ONETOMANYZ
MANYTOMANYr	�warnrZ_register_attribute�DynamicAttributeImpl�mapperrr)�selfr�r�I/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/orm/dynamic.py�init_class_attribute s&

zDynaLoader.init_class_attributeN)�__name__�
__module__�__qualname__rrrrrrsrcseZdZdZdZdZdZdZd&�fdd�	Ze	j
fdd�Zde	jfdd	�Z
ejd
d��Zejdd
��Zd'dd�Zd(dd�Zdd�Zde	j
dddfdd�Zdd�Zdd�Ze	j
fdd�Ze	jfdd�Ze	j
fdd�Ze	j
fd d!�Ze	j
fd"d#�Ze	j
fd$d%�Z�ZS))rTFNc	sTtt|�j||||f|�||_||_|s2t|_nt|��krF||_n
t	|�|_dS)N)
�superr�__init__rr�
AppenderQueryr�
AppenderMixin�mro�mixin_user_query)	rZclass_�keyZtypecallable�dispatchrrr�kw)�	__class__rrrEs
zDynamicAttributeImpl.__init__cCs*|tj@s|�|tj�jS|�||�SdS)N)r�SQL_OK�_get_collection_history�PASSIVE_NO_INITIALIZE�added_itemsr)r�state�dict_�passiverrr�get\s
zDynamicAttributeImpl.getcCs.|tj@s|�||�jS|�||�}|jSdS)N)rr'r(r*�added_plus_unchanged)rr+r,Z	user_datar-�historyrrr�get_collectionds
z#DynamicAttributeImpl.get_collectioncCst�|tj�S)N)r�EventZ	OP_APPEND)rrrr�
_append_tokenqsz"DynamicAttributeImpl._append_tokencCst�|tj�S)N)rr2Z	OP_REMOVE)rrrr�
_remove_tokenusz"DynamicAttributeImpl._remove_tokencCsh|dkr|�||�}|�|�x"|jjD]}||||p:|j�}q(W|jrd|dk	rd|�t�|�|d�dS)NT)	�_modified_event�	add_addedr$�appendr3�trackparent�sethasparentr�instance_state)rr+r,�value�	initiator�collection_history�fnrrr�fire_append_eventys
z&DynamicAttributeImpl.fire_append_eventcCsh|dkr|�||�}|�|�|jr@|dk	r@|�t�|�|d�x"|jjD]}||||p\|j�qJWdS)NF)	r5�add_removedr8r9rr:r$�remover4)rr+r,r;r<r=r>rrr�fire_remove_event�s
z&DynamicAttributeImpl.fire_remove_eventcCsD|j|jkrt||�|j|j<|�||tj�d||j<|j|jS)NT)r#�committed_state�CollectionHistoryr5rZ	NEVER_SET)rr+r,rrrr5�s

z$DynamicAttributeImpl._modified_eventc	Cs�|r|j|jkrdS|r$|dkr$dS|}	t|	�}
|jrHt�|�||��}|�||�}|jsb|j}n|�|j�}tj}
|�	|
�}|
|
��
|�}|�
|�}x(|
D] }||kr�|j|||d|d�q�Wx |D]}|j|||d|d�q�WdS)N)r=)
Zparent_token�list�has_identityr	ZIdentitySetr.r5r*�union�intersection�
differencer?rB)rr+r,r;r<r-Z	check_old�popZ_adapt�iterableZ
new_valuesZold_collectionr=ZidsetZ	constantsZ	additionsZremovals�memberrrr�set�s@



zDynamicAttributeImpl.setcOs
t��dS)N)�NotImplementedError)r�args�kwargsrrr�delete�szDynamicAttributeImpl.deletecCstd��dS)Nz7Dynamic attributes don't support collection population.)rN)rr+r,r;rrr�set_committed_value�sz(DynamicAttributeImpl.set_committed_valuecCs|�||�}|��S)N)r(�
as_history)rr+r,r-�crrr�get_history�sz DynamicAttributeImpl.get_historycCs|�||�}dd�|jD�S)NcSsg|]}t�|�|f�qSr)rr:)�.0�xrrr�
<listcomp>�sz8DynamicAttributeImpl.get_all_pending.<locals>.<listcomp>)r(�	all_items)rr+r,r-rTrrr�get_all_pending�sz$DynamicAttributeImpl.get_all_pendingcCsJ|j|jkr|j|j}n
t||�}|jrB|tj@rBt|||d�S|SdS)N)�apply_to)r#rCrDrFrZINIT_OK)rr+r-rTrrrr(�s
z,DynamicAttributeImpl._get_collection_historycCs||k	r|�||||�dS)N)r?)rr+r,r;r<r-rrrr7�szDynamicAttributeImpl.appendcCs||k	r|�||||�dS)N)rB)rr+r,r;r<r-rrrrA�szDynamicAttributeImpl.removecCs|j|||||d�dS)N)r-)rA)rr+r,r;r<r-rrrrJszDynamicAttributeImpl.pop)N)N)N)rrrZuses_objectsZdefault_accepts_scalar_loaderZsupports_populationZ
collectionr
rrZPASSIVE_OFFr.r)r1r	Zmemoized_propertyr3r4r?rBr5rMrQrRrUrZr(r7rArJ�
__classcell__rr)r&rr>s6



-rcspeZdZdZ�fdd�Zdd�Zeedd��Zdd	�Zd
d�Zdd
�Z	ddd�Z
dd�Zdd�Zdd�Z
�ZS)r Ncs~tt|��|jd�|��|_}||_t|�}|j|jj	}|j
dk	rX|jj|j
f|_
|j|dd�|_|jjrz|jj|_dS)NF)Zalias_secondary)rr rr�obj�instance�attrrZ_propsr#Z	secondaryrZ
selectable�	_from_objZ_with_parent�
_criterionr�	_order_by)rr_r+r^rZprop)r&rrr	s
zAppenderMixin.__init__cCsHt|j�}|dk	r0|jr0|jr0|j|kr0|��t�|j�s@dS|SdS)N)rr^�	autoflush�flush�orm_utilrF)r�sessrrr�sessions

zAppenderMixin.sessioncCsdS)Nr)�srWrrr�<lambda>-�zAppenderMixin.<lambda>cCs>|j}|dkr,t|j�t�|j�tj�j�St|�	|��SdS)N)
rg�iterr_r(rr:r^r)r*�_clone)rrfrrr�__iter__/s
zAppenderMixin.__iter__cCs@|j}|dkr,|j�t�|j�tj��|�S|�|��	|�SdS)N)
rgr_r(rr:r^r)�indexedrl�__getitem__)r�indexrfrrrro;s
zAppenderMixin.__getitem__cCs>|j}|dkr,t|j�t�|j�tj�j�S|�	|��
�SdS)N)rg�lenr_r(rr:r^r)r*rl�count)rrfrrrrrEs
zAppenderMixin.countcCs~|j}|dkr:t|�}|dkr:t�dt�|�|jjf��|jrT|j|jj	|d�}n|�
|jj	�}|j|_|j|_|j
|_
|S)Nz�Parent instance %s is not bound to a Session, and no contextual session is established; lazy load operation of attribute '%s' cannot proceed)rg)r^r�orm_excZDetachedInstanceErrorreZinstance_strr_r#rr�queryrar`rb)rrfr^rtrrrrlQszAppenderMixin._clonecCs4x.|D]&}|j�t�|j�t�|j�|d�qWdS)N)r_r7rr:r^�
instance_dict)r�iterator�itemrrr�extendks


zAppenderMixin.extendcCs&|j�t�|j�t�|j�|d�dS)N)r_r7rr:r^ru)rrwrrrr7ts


zAppenderMixin.appendcCs&|j�t�|j�t�|j�|d�dS)N)r_rArr:r^ru)rrwrrrrA|s


zAppenderMixin.remove)N)rrrrrrg�propertyrmrorrrlrxr7rAr\rr)r&rr s

	r c@seZdZdZdS)rzBA dynamic query that supports basic collection storage operations.N)rrr�__doc__rrrrr�srcCsd|j}t|t|fd|i�S)zAReturn a new class with AppenderQuery functionality layered over.ZAppenderr)r�typer )�cls�namerrrr"�s
r"c@sReZdZdZddd�Zedd��Zedd��Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)rDzDOverrides AttributeHistory to receive append/remove events directly.NcCs`|r8t||��d�}t�|�|_|j|_|j|_d|_n$t��|_t��|_t��|_d|_dS)NFT)rrcr	ZOrderedIdentitySet�unchanged_itemsr*�
deleted_items�_reconcile_collection)rr_r+r[Zcollrrrr�s


zCollectionHistory.__init__cCst|j�|j��S)N)rEr*rGr~)rrrrr/�sz&CollectionHistory.added_plus_unchangedcCst|j�|j��|j��S)N)rEr*rGr~r)rrrrrY�szCollectionHistory.all_itemscCs`|jr0|j�|j�}|j�|j�}|j�|�}n|j|j|j}}}t�t|�t|�t|��S)N)	r�r*rIr~rrHrZHistoryrE)rZaddedZdeletedZ	unchangedrrrrS�szCollectionHistory.as_historycCst|j�|S)N)rEr*)rrprrrrn�szCollectionHistory.indexedcCs|j�|�dS)N)r*�add)rr;rrrr6�szCollectionHistory.add_addedcCs(||jkr|j�|�n|j�|�dS)N)r*rArr�)rr;rrrr@�s
zCollectionHistory.add_removed)N)rrrrzrryr/rYrSrnr6r@rrrrrD�s


rDN)rz�rrrsrrrrrr	rertr
rZclass_loggerZRelationshipPropertyZstrategy_forZAbstractRelationshipLoaderrZ
AttributeImplr�objectr rr"rDrrrr�<module>
s*I

Zerion Mini Shell 1.0