File: //proc/self/root/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyc
�
��4]c @ sx d Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d � Z
d
e f d � � YZ d e f d
� � YZ
d e
f d � � YZ d e f d � � YZ d e
e f d � � YZ d e f d � � YZ d e f d � � YZ d e f d � � YZ d e f d � � YZ d e f d � � YZ d e f d � � YZ d S(! s� The internals for the unit of work system.
The session's flush() process passes objects to a contextual object
here, which assembles flush tasks based on mappers and their properties,
organizes them in order of dependency, and executes.
i ( t
attributes( t exc( t persistence( t utili ( t event( t topologicalc s� | j � � f d � } � f d � } � f d � } t j | d | d t d t �t j | d | d t d t �t j | d | d t d t �d S(
s\ Establish event listeners on object attributes which handle
cascade-on-set/append.
c s� | d k r d S| j } | r� | j r8 | j d � n | j j j � } t j | � } | j j
r� | j s~ � | j k r� | j
| � r� | j | � q� n | S( Ns collection append( t Nonet sessiont _warn_on_eventst _flush_warningt managert mappert _propsR t instance_statet _cascadet save_updatet cascade_backrefst keyt _contains_statet _save_or_update_state( t statet itemt initiatort sesst propt
item_state( R ( sL /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt append s c s� | d k r d S| j } | j j j � } | rZ | j rZ | j | j rP d n d � n | d k r� | t j k r� | t j
k r� | j j r� t j
| � } | j j | � r� | r� | | j k r� | j | � q� t | _ q� n d S( Ns collection removes related attribute delete( R R R
R R R R t uselistR t NEVER_SETt PASSIVE_NO_RESULTR t
delete_orphanR
t
_is_orphant _newt expunget Truet _orphaned_outside_of_session( R R R R R R ( R ( sL /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt remove6 s"