L i AddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z dd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZedeZedeZedeZedeZGddZGddee eefZGdd eeefZGd!d"eeZGd#d$Z d' d(d&Z!y%))) annotations) filterfalse) AbstractSet)Any)Callable)cast) Collection)Dict)Iterable)Iterator)List)Mapping)NoReturn)Optional)Set)Tuple) TYPE_CHECKING)TypeVar)Union)Self_T)bound_S_KT_VTc8eZdZdZddZddZd dZd dZd dZy) ReadOnlyContainercFtd|jjz)Nz&%s object is immutable and/or readonly TypeError __class____name__selfargkws e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/util/_py_collections.py _readonlyzReadOnlyContainer._readonly)s! 4t~~7N7N N  cFtd|jjz)Nz%s object is immutabler!r%s r) _immutablezReadOnlyContainer._immutable.s04>>3J3JJKKr+c$|jyNr*r&keys r) __delitem__zReadOnlyContainer.__delitem__1  r+c$|jyr/r0r&r2values r) __setitem__zReadOnlyContainer.__setitem__4r4r+c$|jyr/r0r6s r) __setattr__zReadOnlyContainer.__setattr__7r4r+Nr'rr(rreturnr)r2rr<r)r2rr7rr<r)r2strr7rr<r) r$ __module__ __qualname__ __slots__r*r-r3r8r:rr+r)rr&s!I Lr+rcTeZdZerd dZd dZd dZd dZdddZd dZ dddZ d d Z y)ImmutableDictBasecyr/rclsargss r)__new__zImmutableDictBase.__new__>r+cyr/rrDs r)__init__zImmutableDictBase.__init__@rHr+c$|jyr/)r-r%s r)r*zImmutableDictBase._readonlyBs  r+c$|jyr/r0r&s r)clearzImmutableDictBase.clearEr4r+Nc$|jyr/r0r&r2defaults r)popzImmutableDictBase.popHr4r+c$|jyr/r0rMs r)popitemzImmutableDictBase.popitemKr4r+c$|jyr/r0rPs r) setdefaultzImmutableDictBase.setdefaultNr4r+c$|jyr/r0r%s r)updatezImmutableDictBase.updateQr4r+)rFrr<r)rFrr;r<rr/)r2rrQz Optional[Any]r<r) r$r>r?rrGrJr*rNrRrTrVrXrr+r)rBrB;s)1*r+rBceZdZdZ d dZdZ d d dZ d ddZ ddZddZ ddZ dfd Z dfd Z xZ S) immutabledictc\tj|}tj|g||Sr/)rBrGdictrJ)rErFnews r)rGzimmutabledict.__new__Vs('', c!D! r+cyr/r)r&rFs r)rJzimmutabledict.__init__[s r+c&tt|ffSr/)r[r]rMs r) __reduce__zimmutabledict.__reduce__`stDzm++r+c|s|Stj|j}tj ||tj |||Sr/rBrGr#r]rJrX)r&_immutabledict__dr^s r)unionzimmutabledict.unioncsAK''7 c4  C r+c |s|s|Stj|j}tj |||rtj ||tj |||Sr/rc)r&rdr(r^s r) _union_w_kwzimmutabledict._union_w_kwnsT2K''7 c4  KKS ! C r+cd}|D]R}|s|5tj|j}tj ||tj ||T||S|Sr/rc)r&dictsr^ds r) merge_withzimmutabledict.merge_with|sa $A;+33DNNCCMM#t, C#  $ ;K r+c2dtj|zS)Nzimmutabledict(%s))r]__repr__rMs r)rmzimmutabledict.__repr__s"T]]4%888r+c$|jyr/r0)r&_immutabledict__values r)__ior__zimmutabledict.__ior__r4r+c4tt| |Sr/)r[super__or__r&ror#s r)rszimmutabledict.__or__s GN7 #  r+c4tt| |Sr/)r[rr__ror__rts r)rvzimmutabledict.__ror__s GOG $  r+)rFz3Union[Mapping[_KT, _VT], Iterable[Tuple[_KT, _VT]]]r/)rdOptional[Mapping[_KT, _VT]]r<immutabledict[_KT, _VT])rdrwr(rr<rx)rirwr<rxr<r=)rorr<r)rozMapping[_KT, _VT]r<rx)r$r>r?rGrJrarergrkrmrprsrv __classcell__r#s@r)r[r[Us  H ,26 .   26 . =@    1   9 (   (   r+r[c:eZdZUdZded<d d!fd Zd"dZd#fd Zd#fd Zd$fd Z d%fd Z d#fd Z d&fd Z d'd Z d(d Zd)dZd*dZeZd+fd Zd,dZd-dZd,dZd.dZd/dZd0dZd,dZd.fd Zd1dZd2fd Zd/dZd2fd Zd,dZd2fd Z d1dZ!xZ"S)3 OrderedSet_listList[_T]rcl|*t||_t| |jyg|_yr/) unique_listrrrrX)r&rjr#s r)rJzOrderedSet.__init__s* =$QDJ GN4:: &DJr+c|j}|jj|_tj ||j|Sr/)r#rcopysetrX)r&cps r)rzOrderedSet.copys7 ^^ ::??$ 2rxx  r+cb||vr|jj|t| |yr/rappendrraddr&elementr#s r)rzOrderedSet.adds) $  JJ  g &  Gr+cZt|||jj|yr/)rrremoverrs r)rzOrderedSet.removes! w '"r+c |jj}t|||S#t$r tddwxYw)Npop from an empty set)rrR IndexErrorKeyErrorrrr)r&r7r#s r)rRzOrderedSet.popsJ >JJNN$E u  >23 = >s .Acd||vr|jj||t| |yr/)rinsertrrr)r&posrr#s r)rzOrderedSet.inserts+ $  JJ  c7 +  Gr+cd||vr+|jj|t||yyr/)rrrrrs r)discardzOrderedSet.discards- d? JJ  g & GN7 # r+c0t|g|_yr/)rrrNr)r&r#s r)rNzOrderedSet.clears   r+c |j|Sr/r~r1s r) __getitem__zOrderedSet.__getitem__szz#r+c,t|jSr/)iterrrMs r)__iter__zOrderedSet.__iter__sDJJr+c$|j|Sr/rer&others r)__add__zOrderedSet.__add__zz%  r+cN|jjd|jdSN())r#r$rrMs r)rmzOrderedSet.__repr__s>>22DJJ??r+c|D]8}|D]1}||vs|jj|t| |3:yr/r)r& iterablesiterableer#s r)rXzOrderedSet.updatesE! #H #D=JJ%%a(GKN # #r+c(|j||Sr/)rXrs r)rpzOrderedSet.__ior__s E r+cD|j}|j||Sr/)rrX)r&rresults r)rezOrderedSet.unions ,0IIK u r+c$|j|Sr/rrs r)rszOrderedSet.__or__rr+cjtj||jfd|DS)Nc3,K|] }|vs| ywr/r.0a other_sets r) z*OrderedSet.intersection..s@Aia@ )rrXr#)r&rrs @r) intersectionzOrderedSet.intersections/!e  % ~~@@@@r+c$|j|Sr/)rrs r)__and__zOrderedSet.__and__s  ''r+ct|tr|x}n4t|tr|}t|nt|}t|j fdD}|j fd|D|S)Nc3,K|] }|vs| ywr/rrs r)rz2OrderedSet.symmetric_difference..sFa1I3EFrc3,K|] }|vs| ywr/r)rrr&s r)rz2OrderedSet.symmetric_difference..s=Aq}a=r) isinstancerr listr#rX)r&r collectionrrs` @r)symmetric_differencezOrderedSet.symmetric_differencesl eS !%* *J z *JE IeJJIF4FF === r+chtttttf|j |Sr/)rr}rrrrrs r)__xor__zOrderedSet.__xor__ s,JuRV}-t4II   r+cft|||jfd|jDS)Nc3,K|] }|vs| ywr/rrs r)rz(OrderedSet.difference..sFAqI~aFr)rr differencer#r)r&rrr#s @r)rzOrderedSet.differences+G&. ~~FFFFr+c$|j|Sr/)rrs r)__sub__zOrderedSet.__sub__su%%r+cpt|||jDcgc] }||vs| c}|_ycc}wr/)rrintersection_updaterr&rrr#s r)rzOrderedSet.intersection_updates/ #U+!%9AqDya9 9 33c(|j||Sr/)rrs r)__iand__zOrderedSet.__iand__s   ' r+c t|tr|n t|}t|||j Dcgc] }||vs| c}|_|xj |Dcgc] }||vs| c}z c_ycc}wcc}wr/)rr rrrsymmetric_difference_updater)r&rrrr#s r)rz&OrderedSet.symmetric_difference_updatesg( ;Ue  +J7!%9AqDya9  *:QT q:: ::s A;A;" B,Bcl|j|ttttt f|Sr/)rrr}rrrrs r)__ixor__zOrderedSet.__ixor__#s* ((/JuRV}-t44r+cpt|||jDcgc] }||vs| c}|_ycc}wr/)rrdifference_updaterrs r)rzOrderedSet.difference_update's/ !5)!%9AqDya9 9rc(|j||Sr/)rrs r)__isub__zOrderedSet.__isub__+s u% r+r/)rjzOptional[Iterable[_T]]r<None)r<OrderedSet[_T])rrr<r)r<r)rintrrr<rr<r)r2rr<r)r< Iterator[_T])rrr<rry)r Iterable[_T]r<r)rzAbstractSet[_S]r<OrderedSet[Union[_T, _S]])rz Iterable[_S]r<r)r Iterable[Any]r<r)rzAbstractSet[object]r<r)rrr<r)rzAbstractSet[Optional[_T]]r<r)rrr<r)#r$r>r?r@__annotations__rJrrrrRrrrNrrrrm__str__rXrprersrrrrrrrrrrrrrzr{s@r)r}r}sI O  # $  !@G# !A (  G&:; 5:r+r}cBeZdZUdZded<d)d*dZd+dZd,dZd+dZd+d Z d-d Z d.d Z d/d Z d/d Z d0dZd/dZd/dZd0dZd/dZd/dZd1dZd2dZd3dZd2dZd1dZd4dZd3dZd4dZd1dZd4dZd3dZd4dZd1d Z d4d!Z!d3d"Z"d4d#Z#d5d$Z$e$Z%d6d%Z&d7d&Z'd8d'Z(d9d(Z)y): IdentitySetzA set that considers only object id() for uniqueness. This strategy has edge cases for builtin types- it's possible to have two 'foo' strings in one of these sets, for example. Use sparingly. zDict[int, Any]_membersNcJt|_|r|j|yyr/)r]rrXr&rs r)rJzIdentitySet.__init__:s  KK ! r+c4||jt|<yr/ridr&r7s r)rzIdentitySet.add?s#( bi r+c0t||jvSr/)rrrs r) __contains__zIdentitySet.__contains__Bs%yDMM))r+c0|jt|=yr/rrs r)rzIdentitySet.removeEs MM"U) $r+cF |j|y#t$rYywxYwr/)rrrs r)rzIdentitySet.discardHs%  KK    s   cr |jj}|dS#t$r tdwxYw)Nr)rrTr)r&pairs r)rRzIdentitySet.popNs= 4==((*D7N 423 3 4s!6c8|jjyr/)rrNrMs r)rNzIdentitySet.clearUs r+cVt|tr|j|jk(Sy)NFrrrrs r)__eq__zIdentitySet.__eq__Xs" e[ )==ENN2 2r+cVt|tr|j|jk7Sy)NTrrs r)__ne__zIdentitySet.__ne__^s" e[ )==ENN2 2r+ct||jr|}n|j|}t|t|kDryt|jj t |jjD]}yyNFTrr#lenrrrrkeysr&rrms r)issubsetzIdentitySet.issubsetdsu h /ENN8,E t9s5z ! NN ' 'dmm.@.@.B)C  A r+cPt|tstS|j|Sr/)rrNotImplementedrrs r)__le__zIdentitySet.__le__rs!%-! !}}U##r+ct|tstSt|t|kxr|j |Sr/)rrrrrrs r)__lt__zIdentitySet.__lt__ws3%-! !4y3u:%>$--*>>r+ct||jr|}n|j|}t|t|kryt|jj t |jjD]}yyrrrs r) issupersetzIdentitySet.issuperset|su h /ENN8,E t9s5z ! MM & &U^^-@-@-B(C  A r+cPt|tstS|j|Sr/)rrrrrs r)__ge__zIdentitySet.__ge__!%-! !u%%r+ct|tstSt|t|kDxr|j |Sr/)rrrrrrs r)__gt__zIdentitySet.__gt__s3%-! !4y3u:%@$//%*@@r+c|j}|j}|jj||jjd|D|S)Nc36K|]}t||fywr/rrobjs r)rz$IdentitySet.union..sB#3~B)r#rrX)r&rrmemberss r)rezIdentitySet.unionsF!--w'BBB r+cPt|tstS|j|Sr/)rrrrers r)rszIdentitySet.__or__s!%-! !zz%  r+cH|jjd|Dy)Nc36K|]}t||fywr/r rs r)rz%IdentitySet.update..s@bgs^@r)rrXrs r)rXzIdentitySet.updates @x@@r+cTt|tstS|j||Sr/)rrrrXrs r)rpzIdentitySet.__ior__s#%-! ! E r+c8|j|j}t||jr |j}n|Dchc] }t |}}|jj Dcic] \}}||vs ||c}}|_|Scc}wcc}}wr/rGr#rrritemsr&rrrrkvs r)rzIdentitySet.differencesdnn- h /%%E(01RW1E1!]]002 QaunAqD  2 B4 BBcPt|tstS|j|Sr/)rrrrrs r)rzIdentitySet.__sub__rr+cD|j|j|_yr/)rrrs r)rzIdentitySet.difference_updates1:: r+cTt|tstS|j||Sr/)rrrrrs r)rzIdentitySet.__isub__s%%-! ! u% r+c8|j|j}t||jr |j}n|Dchc] }t |}}|jj Dcic] \}}||vs ||c}}|_|Scc}wcc}}wr/rrs r)rzIdentitySet.intersectionsdnn- h /%%E(01RW1E1!]]002 Qa5jAqD  2 rcPt|tstS|j|Sr/)rrrrrs r)rzIdentitySet.__and__s#%-! !  ''r+cD|j|j|_yr/)rrrs r)rzIdentitySet.intersection_updates))(3<< r+cTt|tstS|j||Sr/)rrrrrs r)rzIdentitySet.__iand__s%%-! !   ' r+cjj}t|jr |j}n|Dcic]}t ||}}jj Dcic] \}}||vs ||c}}|_|jj fd|j D|Scc}wcc}}w)Nc3JK|]\}}|jvs||fywr/)r)rrrr&s r)rz3IdentitySet.symmetric_difference..s) q!0FQF s# #)rGr#rrrrrXrs` r)rz IdentitySet.symmetric_differencesdnn- h /%%E-56cRWc\6E6!]]002 QaunAqD   ${{}   7 sC6 C C cPt|tstS|j|Sr/rrrrrs r)rzIdentitySet.__xor__s#%-! !((//r+cD|j|j|_yr/)rrrs r)rz'IdentitySet.symmetric_difference_updates11(;DD r+cTt|tstS|j||Sr/r'rs r)rzIdentitySet.__ixor__s%%-! ! !!%( r+cz|j|j}|jj|_|Sr/)rGr#rr)r&rs r)rzIdentitySet.copys-dnn---,,. r+c,t|jSr/)rrrMs r)__len__zIdentitySet.__len__s4==!!r+cHt|jjSr/)rrvaluesrMs r)rzIdentitySet.__iter__sDMM((*++r+ctd)Nzset objects are unhashable)r"rMs r)__hash__zIdentitySet.__hash__ s455r+czt|jdt|jj dSr)typer$rrr.rMs r)rmzIdentitySet.__repr__ s):..T]]5I5I5K0LMMr+r/)rzOptional[Iterable[Any]])r7rr<r)r7rr<bool)r<rr)rrr<r3)rrr<r3)rrr<r)rrr<r)rrr<r)rrr<r)r<r)r<r)r<z Iterator[Any]rYry)*r$r>r?__doc__rrJrrrrrRrNrrrrrrrr rersrXrprrrrrrrrrrrrr__copy__r,rr0rmrr+r)rr0s" )*% 4  $ ? & A ! A & ; ( = 0 E  H",6Nr+rNct}|j}|s|Dcgc]}||vs||r|c}S|Dcgc]}|||vr|||s|c}Scc}wcc}wr/)rr)seqhashfuncseenseen_addxs r)rrssUDxxH Da!4- DD {$&x /D   E s AAA!A$r/)r7rr8zOptional[Callable[[_T], int]]r<r)" __future__r itertoolsrtypingrrrrr r r r r rrrrrrrr util.typingrrrrrrrBr[r}rrrr+r)r@s#!  T T e3 e3*)4S>4I %c3h/I XLRL^^N^NDBF    !>     r+