HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/orm/__pycache__/identity.cpython-310.pyc
o

���g!$�@sddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm	Z	dd	lm
Z
dd
lmZddlmZddlm
Z
dd
lmZddlZddlmZddlmZe
rlddlmZddlmZeded�Zeded�ZGdd�d�ZGdd�de�Zd$d"d#�ZdS)%�)�annotations)�Any)�cast)�Dict)�Iterable)�Iterator)�List)�NoReturn)�Optional)�Set)�Tuple)�
TYPE_CHECKING)�TypeVarN�)�util�)�exc)�_IdentityKeyType)�
InstanceState�_T)�bound�_Oc@s�eZdZUded<ded<ded<dCd	d
�ZdCdd�ZdDdd�ZdEdd�ZdFdd�ZdGdd�Z	dHdd�Z
	dIdJd"d#�ZdKd%d&�ZdLd(d)�Z
dMd+d,�ZdNd.d/�ZdEd0d1�ZdGd2d3�ZdOd4d5�ZdGd6d7�ZdGd8d9�ZdPd:d;�ZdQd<d=�ZdFd>d?�ZdRdAdB�ZdS)S�IdentityMapzweakref.ref[IdentityMap]�_wrz Dict[_IdentityKeyType[Any], Any]�_dict�Set[InstanceState[Any]]�	_modified�return�NonecCsi|_t�|_t�|�|_dS�N)r�setr�weakref�refr��self�r%�B/usr/local/lib/python3.10/dist-packages/sqlalchemy/orm/identity.py�__init__+szIdentityMap.__init__cCs
t|_dSr)�_killed�_add_unpresentr#r%r%r&�_kill0�
zIdentityMap._kill�List[InstanceState[Any]]cC�t��r��NotImplementedErrorr#r%r%r&�
all_states3�zIdentityMap.all_states�state�InstanceState[Any]�boolcCr-rr.�r$r2r%r%r&�contains_state6r1zIdentityMap.contains_state�key�_IdentityKeyType[Any]cCr-rr.�r$r7r%r%r&�__contains__9r1zIdentityMap.__contains__cCr-rr.r5r%r%r&�safe_discard<r1zIdentityMap.safe_discard�_IdentityKeyType[_O]rcCr-rr.r9r%r%r&�__getitem__?r1zIdentityMap.__getitem__N�default�Optional[_O]cCr-rr.)r$r7r>r%r%r&�getB�zIdentityMap.get�Optional[InstanceState[_O]]cCr-rr.r9r%r%r&�fast_get_stateGrAzIdentityMap.fast_get_state�Iterable[_IdentityKeyType[Any]]cCs
|j��Sr)r�keysr#r%r%r&rELr+zIdentityMap.keys�Iterable[object]cCr-rr.r#r%r%r&�valuesOr1zIdentityMap.values�InstanceState[_O]cCr-rr.r5r%r%r&�replaceRr1zIdentityMap.replacecCr-rr.r5r%r%r&�addUr1zIdentityMap.addcCr-rr.r5r%r%r&�
_fast_discardXr1zIdentityMap._fast_discardcCs|�|�dS)zUoptional inlined form of add() which can assume item isn't present
        in the mapN)rJ�r$r2r7r%r%r&r)[szIdentityMap._add_unpresentcCs"|j|_|jr|j�|�dSdSr)r�_instance_dict�modifiedrrJr5r%r%r&�_manage_incoming_statebs�z"IdentityMap._manage_incoming_statecCs|`|jr
|j�|�dSdSr)rMrNr�discardr5r%r%r&�_manage_removed_statehs�z!IdentityMap._manage_removed_statecCs|jSr)rr#r%r%r&�
_dirty_statesmr1zIdentityMap._dirty_statescC�
t|j�S)z[return True if any InstanceStates present have been marked
        as 'modified'.

        )r4rr#r%r%r&�check_modifiedps
zIdentityMap.check_modifiedcCs||vSrr%r9r%r%r&�has_keywszIdentityMap.has_key�intcCrSr)�lenrr#r%r%r&�__len__zr+zIdentityMap.__len__)rr�rr,�r2r3rr4�r7r8rr4�r2r3rr�r7r<rrr�r7r<r>r?rr?�r7r<rrB)rrD)rrF)r2rHrrB�r2r3r7r8rr)rr)rr4)rrV)�__name__�
__module__�__qualname__�__annotations__r'r*r0r6r:r;r=r@rCrErGrIrJrKr)rOrQrRrTrUrXr%r%r%r&r%s4







�











rc@s�eZdZUded<d3dd�Zd4dd�Zd5dd�Zd6dd�Zd5dd�Zd7dd�Z	d8dd�Z
	d9d:dd �Zd;d"d#�Zd<d%d&�Z
d=d(d)�Zd>d+d,�Zd?d-d.�Zd?d/d0�Zd?d1d2�ZdS)@�WeakInstanceDictz/Dict[_IdentityKeyType[Any], InstanceState[Any]]rr7r<rrcCs,td|j|�}|��}|durt|��|S�NrH)rr�obj�KeyError�r$r7r2�or%r%r&r=�s
zWeakInstanceDict.__getitem__r8r4cCsDz||jvr|j|}|��}nWdSW|duSty!YdSw�NF)rrgrhrir%r%r&r:�s


���zWeakInstanceDict.__contains__r2r3cCsJ|j|jvr#tr|jdusJ�z	|j|j|uWSty"YdSwdSrk)r7rr
rhr5r%r%r&r6�s�zWeakInstanceDict.contains_state�Optional[InstanceState[Any]]cCs||jdusJ�|j|jvr/z
|j|j}}Wnty"d}Ynw||ur-|�|�ndSd}||j|j<|�|�|Sr)r7rrhrQrO)r$r2�existing�existing_non_noner%r%r&rI�s�
zWeakInstanceDict.replacecCs�|j}|dus	J�||jvr;z|j|}Wn	tyYnw||ur9|��}|dur8t�dt�|�|jf��ndS||j|<|�|�dS)NzZCan't attach instance %s; another instance with key %s is already present in this session.FT)	r7rrhrg�sa_exc�InvalidRequestError�orm_util�	state_strrO)r$r2r7�existing_staterjr%r%r&rJ�s*
����

zWeakInstanceDict.addrcCs||j|<|j|_dSr)rrrMrLr%r%r&r)�s
zWeakInstanceDict._add_unpresentrBcCs|j�|�Sr)rr@r9r%r%r&rC�szWeakInstanceDict.fast_get_stateNr>r?cCsR||jvr|Sz
td|j|�}Wnty|YSw|��}|dur'|S|Srf)rrrhrg)r$r7r>r2rjr%r%r&r@�s
�zWeakInstanceDict.get�6List[Tuple[_IdentityKeyType[Any], InstanceState[Any]]]cCsJ|��}g}|D]}|��}|j}|dusJ�|dur"|�||f�q|Sr)r0rgr7�append)r$rG�resultr2�valuer7r%r%r&�items�s�zWeakInstanceDict.items�List[object]cCs4|��}g}|D]}|��}|dur|�|�q|Sr)r0rgru)r$rGrvr2rwr%r%r&rG�s
�zWeakInstanceDict.values�Iterator[_IdentityKeyType[Any]]cCst|���Sr)�iterrEr#r%r%r&�__iter__szWeakInstanceDict.__iter__r,cCst|j���Sr)�listrrGr#r%r%r&r0�zWeakInstanceDict.all_statescCsT|j}|dus	J�z|j|}Wn
tyYdSw||ur(|j�|d�dSdSr)r7rrh�pop�r$r2r7�str%r%r&rKs��zWeakInstanceDict._fast_discardcCs|�|�dSr)r;r5r%r%r&rPr~zWeakInstanceDict.discardcCsl|j}||jvr2|dusJ�z|j|}Wn
tyYdSw||ur4|j�|d�|�|�dSdSdSr)r7rrhrrQr�r%r%r&r;s
��zWeakInstanceDict.safe_discardr]r[rZ)r2r3rrlr`r_rr^)rrt)rry)rrzrYr\)rarbrcrdr=r:r6rIrJr)rCr@rxrGr|r0rKrPr;r%r%r%r&re~s$







�






rer2r3r7r8rr	cCstjdt�|�dd��)Nz�Object %s cannot be converted to 'persistent' state, as this identity map is no longer valid.  Has the owning Session been closed?�lkrp)�code)rorprqrr)r2r7r%r%r&r(&s��r()r2r3r7r8rr	)�
__future__r�typingrrrrrrr	r
rrr
rr!�rrqrro�_typingrr2rr�objectrrrer(r%r%r%r&�<module>s2Y)