a
    `g
                     @  s   d dl mZ d dlZd dl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 ejrjddlmZ e ZedZed	Zd
ddddZddddddZdddddZdddddZdddddZdS )    )annotationsN)current_app)has_app_context)	Namespace   )Sessionzmodels-committedzbefore-models-committedzsa_orm.scoped_session[Session]None)sessionreturnc                 C  sR   t j| dtdd t j| dtdd t | dt t | dt t | dt d S )NZbefore_flushT)namedZbefore_commitZafter_commitZafter_rollback)sa_eventlisten_record_ops_before_commit_after_commit_after_rollbackr	    r   r/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/flask_sqlalchemy/track_modifications.py_listen    s
    r   r   zt.Any)r	   kwargsr
   c                 K  sx   t  s
d S tjd sd S | jdf| jdf| jdffD ]>\}}|D ]0}t|}|jrZ|j	nt
|}||f| j|< q@q4d S )NSQLALCHEMY_TRACK_MODIFICATIONSinsertupdatedelete)r   r   confignewZdirtyZdeletedsainspectZhas_identityZidentity_keyid_model_changes)r	   r   targetsZ	operationtargetstatekeyr   r   r   r   (   s    

r   c                 C  sF   t  s
d S t }|jd s d S | jrBt| j }tj||d d S Nr   )changes)	r   r   _get_current_objectr   r    listvaluesbefore_models_committedsendr	   Zappr&   r   r   r   r   :   s    
r   c                 C  sP   t  s
d S t }|jd s d S | jrLt| j }tj||d | j	  d S r%   )
r   r   r'   r   r    r(   r)   models_committedr+   clearr,   r   r   r   r   H   s    
r   c                 C  s   | j   d S )N)r    r.   r   r   r   r   r   W   s    r   )
__future__r   typingtZ
sqlalchemyr   Zsqlalchemy.eventeventr   Zsqlalchemy.ormZormZsa_ormZflaskr   r   Zflask.signalsr   TYPE_CHECKINGr	   r   Z_signalssignalr-   r*   r   r   r   r   r   r   r   r   r   <module>   s"   
	
