L i!$6ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlZddlmZddlmZe r ddlmZddlmZedeZedeZGddZGddeZddZy)) annotations)Any)cast)Dict)Iterable)Iterator)List)NoReturn)Optional)Set)Tuple) TYPE_CHECKING)TypeVarN)util)exc)_IdentityKeyType) InstanceState_T)bound_OceZdZUded<ded<ded<ddZddZdd Zdd Zd d Zd!d Z d"d Z d# d$dZ d%dZ d&dZ d'dZd(dZddZd!dZ d)dZd!dZd!dZd*dZd+dZd dZd,dZy)- IdentityMapzweakref.ref[IdentityMap]_wrz Dict[_IdentityKeyType[Any], Any]_dictSet[InstanceState[Any]] _modifiedcdi|_t|_tj||_yN)rsetrweakrefrefrselfs ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/orm/identity.py__init__zIdentityMap.__init__+s" ;;t$ct|_yr )_killed_add_unpresentr$s r&_killzIdentityMap._kill0s %r(ctr NotImplementedErrorr$s r& all_stateszIdentityMap.all_states3 !##r(ctr r.r%states r&contains_statezIdentityMap.contains_state6r1r(ctr r.r%keys r& __contains__zIdentityMap.__contains__9r1r(ctr r.r3s r& safe_discardzIdentityMap.safe_discard<r1r(ctr r.r7s r& __getitem__zIdentityMap.__getitem__?r1r(Nctr r.)r%r8defaults r&getzIdentityMap.getB "##r(ctr r.r7s r&fast_get_statezIdentityMap.fast_get_stateGrAr(c6|jjSr )rkeysr$s r&rEzIdentityMap.keysLszz  r(ctr r.r$s r&valueszIdentityMap.valuesOr1r(ctr r.r3s r&replacezIdentityMap.replaceRr1r(ctr r.r3s r&addzIdentityMap.addUr1r(ctr r.r3s r& _fast_discardzIdentityMap._fast_discardXr1r(c&|j|y)zUoptional inlined form of add() which can assume item isn't present in the mapN)rKr%r4r8s r&r+zIdentityMap._add_unpresent[s r(cv|j|_|jr|jj |yyr )r_instance_dictmodifiedrrKr3s r&_manage_incoming_statez"IdentityMap._manage_incoming_statebs,#xx >> NN  u % r(cX|`|jr|jj|yyr )rQrRrdiscardr3s r&_manage_removed_statez!IdentityMap._manage_removed_statehs&  >> NN " "5 ) r(c|jSr )rr$s r& _dirty_stateszIdentityMap._dirty_statesms ~~r(c,t|jS)z[return True if any InstanceStates present have been marked as 'modified'. )boolrr$s r&check_modifiedzIdentityMap.check_modifiedps DNN##r(c ||vSr r7s r&has_keyzIdentityMap.has_keyws d{r(c,t|jSr )lenrr$s r&__len__zIdentityMap.__len__zs4::r()returnNonerbzList[InstanceState[Any]]r4InstanceState[Any]rbrZr8_IdentityKeyType[Any]rbrZr4rfrbrcr8_IdentityKeyType[_O]rbrr r8rkr? Optional[_O]rbrmr8rkrbOptional[InstanceState[_O]])rbzIterable[_IdentityKeyType[Any]])rbzIterable[object])r4InstanceState[_O]rbror4rfr8rhrbrc)rbr)rbrZ)rbint)__name__ __module__ __qualname____annotations__r'r,r0r5r9r;r=r@rCrErGrIrKrMr+rSrVrXr[r^rar]r(r&rr%s !! ++&&% &$$$$$BF$'$2>$ $ $'$ $$ !$$$$'.C & * $r(rceZdZUded<ddZddZddZ ddZddZ ddZ dd Z d dd Z dd Z dd Z ddZddZddZddZddZy ) WeakInstanceDictz/Dict[_IdentityKeyType[Any], InstanceState[Any]]rcrtd|j|}|j}| t||SNrp)rrobjKeyErrorr%r8r4os r&r=zWeakInstanceDict.__getitem__s6($**S/: IIK 93- r(c ||jvr |j|}|j}ny |duS#t$rYywxYwNF)rr{r|r}s r&r9zWeakInstanceDict.__contains__sS !djj  3IIK D=   s.6 AAc|j|jvr0tr|jJ |j|j|uSy#t$rYywxYwr)r8rrr|r3s r&r5zWeakInstanceDict.contains_states[ 99 "yy,,, zz%)),55  sA AAc2|jJ|j|jvr3 |j|jx}}||ur|j|nyd}||j|j<|j ||S#t$rd}Y9wxYwr )r8rrVr|rS)r%r4existingexisting_non_nones r&rIzWeakInstanceDict.replacesyy$$$ 99 " /3zz%))/DD, %E1../@AH % 599 ##E*  sB BBc^|j}|J||jvr` |j|}||urK|j}|:tjdt j |d|jdy||j|<|j|y#t$rY,wxYw)NzCan't attach instance z; another instance with key z$ is already present in this session.FT) r8rr{sa_excInvalidRequestErrororm_util state_strr|rS)r%r4r8existing_stater~s r&rKzWeakInstanceDict.addsii $**  !!%C ".&**,A}$88 (11%8%))E! 3 ##E*#  sB B,+B,cD||j|<|j|_yr )rrrQrOs r&r+zWeakInstanceDict._add_unpresents  3#xxr(c8|jj|Sr )rr@r7s r&rCzWeakInstanceDict.fast_get_stateszz~~c""r(Nc||jvr|S td|j|}|j}||S|S#t$r|cYSwxYwrz)rrr{r|)r%r8r?r4r~s r&r@zWeakInstanceDict.getsa djj N ,djjo>E  AyH N sA AAc|j}g}|D]8}|j}|j}|J|&|j||f:|Sr )r0r{r8append)r%rGresultr4valuer8s r&itemszWeakInstanceDict.itemss]" ,EIIKE))C? "?  sEl+  ,  r(c|j}g}|D]&}|j}||j|(|Sr )r0r{r)r%rGrr4rs r&rGzWeakInstanceDict.valuessF" %EIIKE  e$ %  r(c4t|jSr )iterrEr$s r&__iter__zWeakInstanceDict.__iter__sDIIK  r(cHt|jjSr )listrrGr$s r&r0zWeakInstanceDict.all_statessDJJ%%'((r(c|j}|J |j|}||ur|jj|dyy#t$rYywxYwr )r8rpopr|r%r4r8sts r&rMzWeakInstanceDict._fast_discards]ii *CB U{ sD)    sA AAc&|j|yr )r;r3s r&rUzWeakInstanceDict.discards % r(c|j}||jvrG|J |j|}||ur.|jj|d|j|yyy#t$rYywxYwr )r8rrrVr|rs r&r;zWeakInstanceDict.safe_discardszii $** ? "? 6ZZ_ ;JJNN3-..u5   sA## A/.A/rjrgre)r4rfrbzOptional[InstanceState[Any]]rqrnr rl)rbz6List[Tuple[_IdentityKeyType[Any], InstanceState[Any]]])rbz List[object])rbzIterator[_IdentityKeyType[Any]]rdri)rsrtrurvr=r9r5rIrKr+rCr@rrGrr0rMrUr;r]r(r&rxrx~s :: ! ' %,4('(.C( (#'# $# BF'2>  !) *! 6r(rxc\tjdtj|zd)NzObject %s cannot be converted to 'persistent' state, as this identity map is no longer valid. Has the owning Session been closed?lkrp)code)rrrr)r4r8s r&r*r*&s4  $ $ !++E2 3  r()r4rfr8rhrbr ) __future__rtypingrrrrrr r r r r rrr"rrrr_typingrr4rrobjectrrrxr*r]r(r&rs{# )$ T T VVre6{e6Pr(