
    jA	                         d dl Z G d d          Zd Zd Zej                            ej        j        de           dS )    Nc                   T    e Zd Zd Zed             Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )	ProxyDictc                 `    || _         || _        |j        | _        |j        | _        i | _        d S N)parentcollection_nameclass_child_classkeykey_namecache)selfr   r   mapping_attrs       e/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/sqlalchemy_utils/proxy_dict.py__init__zProxyDict.__init__   s1    .'.$(


    c                 6    t          | j        | j                  S r   )getattrr   r   )r   s    r   
collectionzProxyDict.collection   s    t{D$8999r   c                 ~    t          | j        | j                  }d | j                            |          D             S )Nc                     g | ]
}|d          S )r    ).0xs     r   
<listcomp>z"ProxyDict.keys.<locals>.<listcomp>   s    AAA!AAAr   )r   r
   r   r   values)r   
descriptors     r   keyszProxyDict.keys   s:    T-t}==
AAdo44Z@@AAAAr   c                 `    || j         v r| j         |         d uS |                     |          d uS r   )r   fetchr   r   s     r   __contains__zProxyDict.__contains__   s5    $*:c?$..zz#d**r   c                 ,    |                      |          S r   )r"   r!   s     r   has_keyzProxyDict.has_key   s      %%%r   c                    t           j                            | j                  }|r`t           j        j                            | j                  r9 | j        j        di | j        |i	                                }|| j
        |<   |S d S d S Nr   )saormobject_sessionr   utilhas_identityr   	filter_byr   firstr   )r   r   sessionobjs       r   r    zProxyDict.fetch   s    &''44 	rv{//<< 	+$/+CCt}c.BCCIIKKC!DJsOJ	 	 	 	r   c                 v     | j         di | j        |i}| j                            |           || j        |<   |S r&   )r
   r   r   appendr   r   r   values      r   create_new_instancezProxyDict.create_new_instance#   sG      88DM3#788u%%%
3r   c                     || j         v r| j         |         | j         |         S n|                     |          }|r|S |                     |          S r   )r   r    r4   r2   s      r   __getitem__zProxyDict.__getitem__)   s^    $*z#*z#& + JJsOOE '',,,r   c                     	 | |         }| j                             |           n# t          $ r Y nw xY w| j                             |           || j        |<   d S r   )r   removeKeyErrorr1   r   )r   r   r3   existings       r   __setitem__zProxyDict.__setitem__4   sn    	CyHO""8,,,, 	 	 	D	u%%%
3s   "% 
22N)__name__
__module____qualname__r   propertyr   r   r"   r$   r    r4   r6   r;   r   r   r   r   r      s           : : X:B B B+ + +
& & &    	- 	- 	-         r   r   c                     	 | j          n# t          $ r
 i | _         Y nw xY w	 | j         |         S # t          $ r t          | ||          | j         |<   Y nw xY w| j         |         S r   )_proxy_dictsAttributeErrorr9   r   )r   r   r   s      r   
proxy_dictrC   >   s    ! ! ! ! !
"?33 
 
 
/80
 0
O,,,
 //s   
 / #AAc                 8    t          | d          r	i | _        d S d S )NrA   )hasattrrA   )targetcontexts     r   expire_proxy_dictsrH   O   s,    v~&& ! ! !r   expire)	
sqlalchemyr'   r   rC   rH   eventlistenr(   Mapperr   r   r   <module>rN      s}       7  7  7  7  7  7  7  7 t0 0 0"! ! !
 x); < < < < <r   